metalua-parser
metalua-parser copied to clipboard
AST generated from local declarations does not match documentation
test.lua:
local parser = require "metalua.compiler".new()
local inspect = require "inspect"
local s = "local a"
print(inspect(parser:src_to_ast(s)))
Output(omitting lineinfo, etc):
{ { { { -- `Id "a"
"a",
tag = "Id"
}
}, {},
tag = "Local"
}
}
Note the extra empty table. It shouldn't be there according to the docs: Local{ {ident+} {expr+}? }
Either docs should be changed to Local{ {ident+} {expr*} }
or the empty table shouldn't be added when there is no rhs.