Eyeon:Script/Reference/Language/Syntax
From VFXPedia
eyeonScript Syntax
chunk ::= {stat [`;’]} [laststat [`;’]]
block ::= chunk
stat ::= varlist1 `=’ explist1 | functioncall | 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 explist1 do block end | function funcname funcbody | local function Name funcbody | local namelist [`=’ explist1]
laststat ::= return [explist1] | break
funcname ::= Name {`.’ Name} [`:’ Name]
varlist1 ::= var {`,’ var}
var ::= Name | prefixexp `[’ exp `]’ | prefixexp `.’ Name
namelist ::= Name {`,’ Name}
explist1 ::= {exp `,’} exp
exp ::= nil | false | true | Number | String | `...’ | function | prefixexp | tableconstructor | exp binop exp | unop exp
prefixexp ::= var | functioncall | `(’ exp `)’
functioncall ::= prefixexp args | prefixexp `:’ Name args
args ::= `(’ [explist1] `)’ | tableconstructor | String
function ::= function funcbody
funcbody ::= `(’ [parlist1] `)’ block end
parlist1 ::= namelist [`,’ `...’] | `...’
tableconstructor ::= `{’ [fieldlist] `}’
fieldlist ::= field {fieldsep field} [fieldsep]
field ::= `[’ exp `]’ `=’ exp | Name `=’ exp | exp
fieldsep ::= `,’ | `;’
binop ::= `+’ | `-’ | `*’ | `/’ | `^’ | `%’ | `..’ | `<’ | `<=’ | `>’ | `>=’ | `==’ | `~=’ | and | or
unop ::= `-’ | not | `#’