The language-lua package

[Tags: bsd3, library]

Lua 5.3 lexer, parser and pretty-printer.

[Skip to ReadMe]


Versions0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.3.0, 0.3.1, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.5.0, 0.6.0, 0.6.2,, 0.6.3,,, 0.7.0, 0.7.1, 0.8.0 (info)
Dependenciesarray (>=0.4 && <0.6), base (>=4.5 && <4.9), bytestring (==0.10.*), deepseq, mtl (>=2.0 && <2.3), parsec (>=3.1.3 && <3.2) [details]
AuthorÖmer Sinan Ağacan
MaintainerÖmer Sinan Ağacan <>, Eric Mertens <>
Home page
Bug tracker
Source repositoryhead: git clone git://
UploadedSat Oct 3 19:52:43 UTC 2015 by OmerAgacan
Downloads3523 total (140 in last 30 days)
0 []
StatusDocs available [build log]
Last success reported on 2015-10-03 [all 1 reports]




Maintainers' corner

For package maintainers and hackage trustees

Readme for language-lua-0.8.0

language-lua - Lua 5.3 lexer, parser and pretty-printer

Build Status Coverage Status Hackage

This package is just like any other language x packages. It provides lexer, parser and pretty-printer for Lua programming language.

Haddock documentation


This module provides 3 parsers.

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 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 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.