Skip to content

nougad/language-lua

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

language-lua - Lua 5.2 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 readFile path >>= return . parseText chunk.

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.

About

Lua parser and pretty-printer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 92.2%
  • Logos 7.7%
  • Lua 0.1%