Eyeon:Script/Reference/Language/Syntax

From VFXPedia

Jump to: navigation, search

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 | `#


Tips for Syntax (edit)

EyeonTips:Script/Reference/Language/Syntax