Module ast

Source

Structs§

Assignment
varlist ‘=’ explist
BinExp
exp binop exp
Block
block ::= {stat} [retstat]
ElseIf
elseif exp then block
ForIn
for namelist in explist do block end
ForRange
for Name ‘=’ exp ‘,’ exp [‘,’ exp] do block end
FuncBody
funcbody ::= ‘(’ [parlist] ‘)’ block end
FuncName
funcname ::= Name {‘.’ Name} [‘:’ Name]
FunctionCall
functioncall ::= prefixexp args | prefixexp ‘:’ Name args
FunctionDef
function funcname funcbody
IfBlock
if exp then block {elseif exp then block} [else block] end
IndexExpr
prefixexp ‘[’ exp ‘]’
LocalAssignment
local namelist [‘=’ explist]
LocalFunctionDef
local function Name funcbody
Name
Name
Params
parlist ::= namelist [‘,’ ‘…’] | ‘…’
PropertyAccess
prefixexp ‘.’ Name
RepeatBlock
repeat block until exp
TableConstructor
tableconstructor ::= ‘{’ [fieldlist] ‘}’
UnExp
unop exp
WhileBlock
while exp do block end

Enums§

Args
args ::= ‘(’ [explist] ‘)’ | tableconstructor | LiteralString
BinOp
binop ::= ‘+’ | ‘-’ | ‘*’ | ‘/’ | ‘//’ | ‘^’ | ‘%’ | ‘&’ | ‘’ | ‘|’ | ‘>>’ | ‘<<’ | ‘..’ | ‘<’ | ‘<=’ | ‘>’ | ‘>=’ | ‘==’ | ‘=’ | and | or
Expr
exp ::= nil | false | true | Numeral | LiteralString | ‘…’ | functiondef | prefixexp | tableconstructor | exp binop exp | unop exp
Field
field ::= ‘[’ exp ‘]’ ‘=’ exp | Name ‘=’ exp | exp
PrefixExpr
prefixexp ::= var | functioncall | ‘(’ exp ‘)’
Stat
stat ::= ‘;’ | varlist ‘=’ explist | functioncall | label | break | goto Name | do block end | while exp do block end | repeat block until exp | if exp then block {elseif exp then block} [else block] end | for Name ‘=’ exp ‘,’ exp [‘,’ exp] do block end | for namelist in explist do block end | function funcname funcbody | local function Name funcbody | local namelist [‘=’ explist]
Unop
unop ::= ‘-’ | not | ‘#’ | ‘~’
Var
var ::= Name | prefixexp ‘[’ exp ‘]’ | prefixexp ‘.’ Name