Safe Haskell | None |
---|
- parseText :: Parsec [LTok] () a -> String -> Either ParseError a
- parseFile :: FilePath -> IO (Either ParseError Block)
- llex :: String -> [LTok]
- llexFile :: FilePath -> IO [LTok]
- stat :: Parser Stat
- exp :: Parser Exp
- chunk :: Parser Block
- data Block = Block [Stat] (Maybe [Exp])
- data Stat
- = Assign [Var] [Exp]
- | FunCall FunCall
- | Label Name
- | Break
- | Goto Name
- | Do Block
- | While Exp Block
- | Repeat Block Exp
- | If [(Exp, Block)] (Maybe Block)
- | ForRange Name Exp Exp (Maybe Exp) Block
- | ForIn [Name] [Exp] Block
- | FunAssign FunName FunBody
- | LocalFunAssign Name FunBody
- | LocalAssign [Name] (Maybe [Exp])
- | EmptyStat
- data Exp
- pprint :: LPretty a => a -> Doc
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)Source
Parse a Lua file. You can use parseText chunk
to parse a file from a string.
A block is list of statements with optional return statement.
Assign [Var] [Exp] | var1, var2 .. = exp1, exp2 .. |
FunCall FunCall | function call |
Label Name | label for goto |
Break | break |
Goto Name | goto label |
Do Block | do .. end |
While Exp Block | while .. do .. end |
Repeat Block Exp | repeat .. until .. |
If [(Exp, Block)] (Maybe Block) | if .. then .. [elseif ..] [else ..] end |
ForRange Name Exp Exp (Maybe Exp) Block | for x=start, end [, step] do .. end |
ForIn [Name] [Exp] Block | for x in .. do .. end |
FunAssign FunName FunBody | function <var> (..) .. end |
LocalFunAssign Name FunBody | local function <var> (..) .. end |
LocalAssign [Name] (Maybe [Exp]) | local var1, var2 .. = exp1, exp2 .. |
EmptyStat | ; |