- local n2 = cfg.ntmp
- if cfg.ntmp then n2=cfg.ntmp+1; cfg.ntmp=n2 else cfg.ntmp, n2 = 1, 1 end
- return `Id{ tmpvar_base .. n2 }
+ assert (cfg.ntmp, "No cfg.ntmp imbrication level in the match compiler")
+ cfg.ntmp = cfg.ntmp+1
+ return `Id{ tmpvar_base .. cfg.ntmp }
-- term_seq.
function pattern_seq_builder (pattern_seq, term_seq, cfg)
if #pattern_seq ~= #term_seq then error ("Bad seq arity") end
-- term_seq.
function pattern_seq_builder (pattern_seq, term_seq, cfg)
if #pattern_seq ~= #term_seq then error ("Bad seq arity") end
for i = 1, #patterns_group do
local pattern_seq = patterns_group[i]
cfg.on_failure = mlp.gensym 'match_fail' [1]
for i = 1, #patterns_group do
local pattern_seq = patterns_group[i]
cfg.on_failure = mlp.gensym 'match_fail' [1]
- acc_stat(`Goto{on_success}, cfg)
- acc_stat(`Label{cfg.on_failure}, cfg)
+ acc_stat (`Goto{on_success}, cfg)
+ acc_stat (`Label{cfg.on_failure}, cfg)