ReFreezed / DumbLuaParser

Lua parsing library capable of optimizing and minifying code.
http://refreezed.com/luaparser/
MIT License
33 stars 3 forks source link
abstract-syntax-tree library lua lua-module lua51 lua52 lua53 lua54 luajit minifier obfuscation optimizer parser pure-lua single-file tokenizer

Dumb Lua Parser

Dumb Lua Parser is a library for tokenizing Lua code or creating ASTs (Abstract Syntax Trees) and converting the data back to Lua. It can also optimize and minify code.

The library is a single Lua file with no dependencies other than Lua itself. It works with Lua 5.1, 5.2, 5.3 and 5.4. LuaJIT should work too. MIT license.

Download the latest stable release here or, if you're cloning the repository, checkout the last commit with a version tag. Also available on LuaRocks.

Basic usage

local parser = require("dumbParser")

local tokens = parser.tokenizeFile("cool.lua")
local ast    = parser.parse(tokens)

parser.simplify(ast)
parser.printTree(ast)

local lua = parser.toLua(ast, true)
print(lua)

Check out examples.lua for some examples.

Documentation

See the website or the top of the source file.