Module:Sandbox/MarioGom/Multiple issues

local p = {}

local state_initial = 1 local state_first_open_brace = 2 local state_first_closing_brace = 3

local c_open_brace = string.byte("{") local c_close_brace = string.byte("}")

function p.number_of_templates(content) if content == nil then mw.log("content is nil") return 0 end local state = state_initial local count = 0 local level = 0 for i = 1, #content do       local c = content:byte(i) if state == state_initial then if c == c_open_brace then state = state_first_open_brace elseif c == c_close_brace then state = state_first_closing_brace end elseif state == state_first_open_brace then if c == c_open_brace then state = state_initial level = level + 1 else state = state_initial end elseif state == state_first_closing_brace then if c == c_close_brace then level = level - 1 if level == 0 then count = count + 1 end end state = state_initial end end return count end

function p.multiple_issues(frame) local frame = mw.getCurrentFrame local first = frame.args[1] local second = frame.args[2] if p.number_of_templates(first) > 1 then return second end return first end

return p