@hackage language-lua0.11.0.2
Lua parser and pretty-printer
Installation
Tested Compilers
Dependencies (6)
- array >=0.4 && <0.6
- base >=4.5 && <4.21
- bytestring >=0.10 && <0.13
- deepseq
- text >=1.2 && <2.2
- alex-tools >=0.6 && <0.7 Show all…
Dependents (4)
@hackage/caffegraph, @hackage/hdiff, @hackage/language-lua-qq, @hackage/acme-everything
language-lua - Lua 5.3 lexer, parser and pretty-printer
This package is just like any other language x packages. It provides lexer, parser and pretty-printer for Lua programming language.
Usage
This module provides 3 parsers.
chunk
: Lua file parser.exp
: Lua expression parser.stat
: Lua statement parser.
Lexing is needed before running a parser. parseText
function runs lexer before parsing. So if you want to parse a Lua expression, you can call parseText exp string
, where string is the Lua expression to parse.
parseFile
is a helper to parse Lua files. Example: parseFile "/path/to/lua/file"
. This is same as parseText chunk `fmap` readFile path
.
Note that parseText
may result with failure, so it's return type is Either ParserError a
.
Lexer
Lexer is not exported by top-level Language.Lua module. You need to import Language.Lua.Lexer
. After that, llex string
scans the string and returns token list. Tokens are defined in Language.Lua.Token
.
Pretty-printer
Pretty-printer is still under development, and subject to lots of changes. It works, but lots of functionality will be added.
For now, you can use pprint syntax_tree
to pretty-print a Lua syntax tree.