Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

Lua parser written in Lua. Parses to an abstract syntax tree representation. Call tostring() on the AST to get equivalent Lua code.

AST also contains some functions like flatten() for use with optimizing / auto-inlining Lua.

See the tests folder for example usage.

Dependencies:

while I was at it, I added a require() replacement for parsing Lua scripts and registering callbacks, so any other script can say "require 'parser.require'.callbacks:insert(function(tree) ... modify the parse tree ... end)" and viola, Lua preprocessor in Lua!

minify_tests.txt taken from the tests at https://github.com/stravant/LuaMinify

Known bugs:

  • still doesn't parse hex floating point precision numbers introduced in lua 5.2

I tested this by parsing itself, then using the parsed & reconstructed version to parse itself, then using the parsed & reconstructed version to parse the parsed & reconstructed version, then using the 2x parsed & reconstructed version to parse itself

About

Lua parser and abstract syntax tree in Lua

Resources

Releases

No releases published

Packages

No packages published

Languages