Die Dokumentation für dieses Modul kann unter Modul:Benutzer:Kpfiwa/calc/func/Doku erstellt werden
--- Grundidee von :en:Module:Sandbox/Lemondoge/Calc
---- Ausschließlich Berechnungen bei Bedarf
local p = {}
function templatevalues(t) -- processes all contained templates into values
--[[
frame:expandTemplate{ title = title, args = table } ?????
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/de#frame:expandTemplate
z, zr= string.gsub(t,reg,prep("%1") or nil);zz=zz+1
if zr > 0 then
return z, zr
end
while zzr do -- derzeit MIST
txt,zzr=filter(txt)
if zzr then print(txt,zzr) end
end --]]
return t
end
-- https://stackoverflow.com/questions/20598937/handling-cr-line-endings-in-lua >>
local function cr_lines(s)
--return s:gsub('\r\n?', '\n'):gmatch('(.-)\n')
return s:gsub('\n', '\n\nX')
end
function nowiex(txt,frame) --- unstrip nowiki & process all including templates
return frame:preprocess(mw.text.unstripNoWiki(txt))
end
local function RError(msg)
return mw.ustring.format('<b class="error">%s</b>', msg)
end
function p.add(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 + num2
end
function p.addition(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 + num2
end
function p.minus(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 - num2
end
function p.subtraction(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 - num2
end
function p.times(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
local errordetect = tonumber(frame.args[3])
if num2 == 0 and errordetect ~= 1 then
return RError("You cannot multiply a number by zero.")
else
return num1 * num2
end
end
function p.multiplication(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 * num2
end
function p.double(frame)
local num1 = tonumber(frame.args[1])
return num1 * 2
end
function p.div(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
local antinotanumber = tonumber(frame.args[3])
if num1 == 0 and num2 == 0 and antinotanumber == 1 then
return 1
else
return num1 / num2
end
end
function p.division(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
local antinotanumber = tonumber(frame.args[3])
if num1 == 0 and num2 == 0 and antinotanumber == 1 then
return 1
else
return num1 / num2
end
end
function p.mod(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 % num2
end
function p.modulo(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 % num2
end
function p.exp(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 ^ num2
end
function p.exponentiation(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 ^ num2
end
return p