diff options
Diffstat (limited to 'parser.lua')
-rw-r--r-- | parser.lua | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/parser.lua b/parser.lua index 4f4e166..12397ef 100644 --- a/parser.lua +++ b/parser.lua @@ -71,9 +71,15 @@ local function get_next_common(state, in_pos, token) recheck = true end end - for i, hook in ipairs(st) do - if hook then -- allow overriding/disabling hooks - hook(state, token, rule) + do -- post-hooks CANNOT USE ipairs HERE BECAUSE Lua 5.1/5.2 + local pos = 1 + local hook = st[pos] + while hook ~= nil do + if hook then + hook(state, token, rule) + end + pos = pos + 1 + hook = st[pos] end end state[STATE] = transition -- may be nil or false |