language-lua: Lua parser and pretty-printer

[ bsd3, language, library ] [ Propose Tags ]

Lua 5.3 lexer, parser and pretty-printer.


[Skip to Readme]
Versions [faq] 0.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.2.1, 0.6.3, 0.6.3.1, 0.6.3.2, 0.7.0, 0.7.1, 0.8.0, 0.8.1, 0.9.0, 0.10.0, 0.11.0 (info)
Change log CHANGELOG.md
Dependencies alex-tools (==0.4.*), array (>=0.4 && <0.6), base (>=4.5 && <4.12), bytestring (==0.10.*), deepseq, text (==1.2.*) [details]
License BSD-3-Clause
Author Ömer Sinan Ağacan, Eric Mertens
Maintainer Eric Mertens <emertens@gmail.com>
Category Language
Home page http://github.com/glguy/language-lua
Bug tracker http://github.com/glguy/language-lua/issues
Source repo head: git clone git://github.com/osa1/language-lua.git
Uploaded by EricMertens at Tue Jun 19 17:04:31 UTC 2018
Distributions NixOS:0.11.0
Downloads 11670 total (412 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for language-lua-0.11.0

[back to package description]

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

Build 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

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.