Module luis::ast

source ·

Structs

varlist ‘=’ explist
exp binop exp
block ::= {stat} [retstat]
elseif exp then block
for namelist in explist do block end
for Name ‘=’ exp ‘,’ exp [‘,’ exp] do block end
funcbody ::= ‘(’ [parlist] ‘)’ block end
funcname ::= Name {‘.’ Name} [‘:’ Name]
functioncall ::= prefixexp args | prefixexp ‘:’ Name args
function funcname funcbody
if exp then block {elseif exp then block} [else block] end
prefixexp ‘[’ exp ‘]’
local namelist [‘=’ explist]
local function Name funcbody
Name
parlist ::= namelist [‘,’ ‘…’] | ‘…’
prefixexp ‘.’ Name
repeat block until exp
tableconstructor ::= ‘{’ [fieldlist] ‘}’
unop exp
while exp do block end

Enums

args ::= ‘(’ [explist] ‘)’ | tableconstructor | LiteralString
binop ::= ‘+’ | ‘-’ | ‘*’ | ‘/’ | ‘//’ | ‘^’ | ‘%’ | ‘&’ | ‘~’ | ‘|’ | ‘>>’ | ‘<<’ | ‘..’ | ‘<’ | ‘<=’ | ‘>’ | ‘>=’ | ‘==’ | ‘~=’ | and | or
exp ::= nil | false | true | Numeral | LiteralString | ‘…’ | functiondef | prefixexp | tableconstructor | exp binop exp | unop exp
field ::= ‘[’ exp ‘]’ ‘=’ exp | Name ‘=’ exp | exp
prefixexp ::= var | functioncall | ‘(’ exp ‘)’
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 ::= ‘-’ | not | ‘#’ | ‘~’
var ::= Name | prefixexp ‘[’ exp ‘]’ | prefixexp ‘.’ Name