diff options
-rw-r--r-- | parser.lua | 12 | ||||
-rw-r--r-- | test.lua | 2 |
2 files changed, 10 insertions, 4 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 diff --git a/test.lua b/test.lua index ef0a586..f9648eb 100644 --- a/test.lua +++ b/test.lua @@ -315,7 +315,7 @@ end -- keywords do -- FUCK local luatokens = require "luatokens" - local luatokens_file = io.open("./luatokens.lua", "r"):read((_VERSION == "5.1" or _VERSION == "5.2") and "*a" or "a") + local luatokens_file = io.open("./luatokens.lua", "r"):read((_VERSION == "Lua 5.1" or _VERSION == "Lua 5.2") and "*a" or "a") local tokens = luatokens.defs local state, err, etoken, estate = parser.parse(tokens, luatokens_file) local case = case() |