language-lua-0.2.3: Lua parser and pretty-printer

Safe HaskellNone

Language.Lua

Synopsis

Documentation

parseText :: Parsec [LTok] () a -> String -> Either ParseError aSource

Runs Lua lexer before parsing. Use parseText stat to parse statements, and parseText exp to parse expressions.

parseFile :: FilePath -> IO (Either ParseError (Block SourcePos))Source

Parse a Lua file. You can use parseText chunk to parse a file from a string.

llex :: String -> [LTok]Source

Lua lexer.

llexFile :: FilePath -> IO [LTok]Source

Run Lua lexer on a file.

stat :: Parser (Stat SourcePos)Source

Statement parser.

exp :: Parser (Exp SourcePos)Source

Expression parser.

chunk :: Parser (Block SourcePos)Source

Lua file parser.

data Block a Source

A block is list of statements with optional return statement.

Constructors

Block a [Stat a] (Maybe [Exp a]) 

Instances

Functor Block 
Annotated Block 
Eq a => Eq (Block a) 
Show a => Show (Block a) 
LPretty (Block a) 

data Stat a Source

Constructors

Assign a [Var a] [Exp a]

var1, var2 .. = exp1, exp2 ..

FunCall a (FunCall a)

function call

Label a (Name a)

label for goto

Break a

break

Goto a (Name a)

goto label

Do a (Block a)

do .. end

While a (Exp a) (Block a)

while .. do .. end

Repeat a (Block a) (Exp a)

repeat .. until ..

If a [(Exp a, Block a)] (Maybe (Block a))

if .. then .. [elseif ..] [else ..] end

ForRange a (Name a) (Exp a) (Exp a) (Maybe (Exp a)) (Block a)

for x=start, end [, step] do .. end

ForIn a [Name a] [Exp a] (Block a)

for x in .. do .. end

FunAssign a (FunName a) (FunBody a)

function <var> (..) .. end

LocalFunAssign a (Name a) (FunBody a)

local function <var> (..) .. end

LocalAssign a [Name a] (Maybe [Exp a])

local var1, var2 .. = exp1, exp2 ..

EmptyStat a

;

Instances

Functor Stat 
Annotated Stat 
Eq a => Eq (Stat a) 
Show a => Show (Stat a) 
LPretty (Stat a) 

data Exp a Source

Constructors

Nil a 
Bool a Bool 
Number a String 
String a String 
Vararg a

...

EFunDef a (FunDef a)

function (..) .. end

PrefixExp a (PrefixExp a) 
TableConst a (Table a)

table constructor

Binop a (Binop a) (Exp a) (Exp a)

binary operators, + - * ^ % .. < <= > >= == ~= and or

Unop a (Unop a) (Exp a)

unary operators, - not #

Instances

Functor Exp 
Annotated Exp 
Eq a => Eq (Exp a) 
Show a => Show (Exp a) 
LPretty (Exp a) 

pprint :: LPretty a => a -> DocSource