]> git.lizzy.rs Git - metalua.git/commitdiff
better error msg when walking malformed trees
authorFabien Fleutot <fabien@macfabien.local>
Sun, 27 Jan 2008 19:56:29 +0000 (20:56 +0100)
committerFabien Fleutot <fabien@macfabien.local>
Sun, 27 Jan 2008 19:56:29 +0000 (20:56 +0100)
src/lib/walk.mlua

index ae66ef801d6aa2f4d8023824ea318edd9511c399..9f9e09ea50137ea8d8c9ddd4795d2197aaf6aa75 100644 (file)
@@ -181,6 +181,8 @@ function walk.traverse.stat (cfg, x, ...)
                                     if #x%2 == 1 then B(x[#x]) end\r
    | `Call{...}|`Invoke{...}|`Return{...} -> EL(x)\r
    | `Break | `Goto{ _ } | `Label{ _ }    -> -- nothing\r
+   | {...} if walk.tags.stat[x.tag]-> \r
+      printf("Warning: walk: malformed %s stat node: %s", x.tag, table.tostring(x,80))\r
    | {...} -> print("Warning: walk: unknown stat node: "..table.tostring(x,80))\r
    | _     -> print("Warning: walk: unexpected stat node of type "..type(x)\r
                     ..": "..table.tostring(x,80))\r
@@ -208,6 +210,8 @@ function walk.traverse.expr (cfg, x, ...)
          | v            -> E(v)\r
       end end\r
    |`Nil|`Dots|`True|`False|`Number{_}|`String{_}|`Id{_} -> -- nothing \r
+   | {...} if walk.tags.expr[x.tag]-> \r
+      printf("Warning: walk: malformed %s expr node: %s", x.tag, table.tostring(x,80))\r
    | {...} -> print("Warning: walk: unknown expr node: "..table.tostring(x,80))\r
    | _     -> print("Warning: walk: unexpected expr node of type "..type(x)\r
                     ..": "..table.tostring(x,80))\r