luaparse
A Lua 5.3 parser. Preserves insignificant tokens (whitespace and comments) in the syntax tree.
Example
use InputCursor;
use Error;
use Lexer;
use Parser;
use HasSpan;
let buf = r#"
local a = 42
local b = 24
for i = 1, 100, 1 do
b = a - b + i
end
print(b)
"#;
let mut parser = new;
match parser.chunk