Jump to content

Module:LogicUtils

From Logic World Wiki
Revision as of 01:37, 7 September 2025 by Felipe (talk | contribs)

Documentation for this module may be created at Module:LogicUtils/doc

local p = {}

p.truth_table = function(frame, args)
	local args = args or frame:getParent().args
	local html = "<table class=\"wikitable\"><tr>"

	local nInputs = tonumber(args[1])
	local nOutputs = tonumber(args[2])

	for i=1,nInputs do
		html = html.."<th>Input"
		if nInputs > 1 then
			html = html..string.format(" %i", i)
		end
		html = html.."</th>"
	end
	for i=1,nOutputs do
		html = html.."<th>Output"
		if nOutputs > 1 then
			html = html..string.format(" %i", i)
		end
		html = html.."</th>"
	end
	html = html.."</tr>"
	
	local i = 3
	while args[i] ~= nil do
		mw.log(args[i])
		html = html.."<tr>"
		for token in string.gmatch(args[i], "[^%s]+") do
			if token == "0" then
				html = html.."<td style=\"color:red; font-weight:bold\">0</td>"
			elseif token == "1" then
				html = html.."<td style=\"color:green; font-weight:bold\">1</td>"
			else
				html = html.."<td>"..token.."</td>"
			end
		end
		html = html.."</tr>"
		
		i = i + 1
	end

	html = html.."</table>"	
	return html
end

return p