| Safe Haskell | None |
|---|
Language.Lua
- 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.
Constructors
| 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 | ; |