summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--parser.lua12
-rw-r--r--test.lua2
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()