(*some choose:1. does not support ++ and -- operator, and use -- to begin comment, like lua.2. integral division use 'div', modular division use 'mod'BTW, 'div' and 'mod' can also use as nomal, for example 'math.div'*)module ::= statsstats ::= {stat [';']}block ::= '{' stats '}'stat ::= block| 'if' exp block {'elseif' exp block} ['else' block]| 'while' exp block| 'do' block 'while' exp| 'for' Name '=' exp ',' exp [',' exp] block| 'for' Name [',' Name] 'in' exp block| 'for' block| 'break'| 'continue'| 'try' block ['catch' [Name] block] ['finally' block]| 'throw' [explist]| scope_head+ block| 'fn' funcname funcbody| 'return' [explist]| ('global'|'local') namelist ['=' explist]| ('global'|'local') 'fn' Name funcbody| varlist '=' explist| var self_assign exp| funccallscope_head ::= 'scope' '(' (namelist '=' explist | explist) ')'# 语法糖,支持一部分吧self_assign ::= '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '.='namelist ::= Name {',' Name}varlist ::= var {',' var}var ::= Name [{index | args } index]funccall ::= Name {index | args} args [String]funcname ::= Name {'.' Name}funcbody ::= ['(' [paramlist [',']] ')'] blockparamlist ::= Name (',' Name )* [',' '*' Name] | '*' Nameexplist ::= {exp ','} exparray_def ::= '[' [exp {',' exp} [',']] ']'table_def ::= '{' [field {',' field} [',']] '}'field ::= '[' exp ']' '=' exp | Name '=' expexp_or_stat ::= exp | 'throw' [explist] | 'break' | 'continue' | 'return' [explist]exp ::= q_exp | exp binop exp | unop exp | main_expprimary_exp ::= 'nil' | 'false' | 'true' | Number | String| fn funcbody | table_def | array_def| '(' exp ')'| Namemain_exp ::= primary_exp {index | args} [String]q_exp ::= exp '?' exp ':' exp_or_stat| exp '?:' exp_or_stat | exp '??' exp_or_statfunction ::= 'fn' funcbodyindex ::= '[' exp ']' | '.' Nameargs ::= '(' [(args_three | args_two | args_one) [','] ] ')'args_one ::= exp {',' exp}args_two ::= [args_one ','] '*' expargs_three ::= [args_two ','] Name ':' exp {',' Name ':' exp }binop ::= 'or' | 'and'| '<' | '<=' | '>' | '>=' | '==' | '!='| '..'| '|' | '~' | '&' | '<<' | '>>' | '>>>'| '+' | '-'| '*' | '/' | 'div' | 'mod'| '^'unop ::= '-' | 'not' | '~'
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。