bnf field trip是什么意思4200 是什么

Pyin标准BNF(包括yacc版本),可以深入了解Pyin语言语法。
Pyin语言的官方BNF(共20条语法)chunk ::= {stat [`;&]} [last_stat [`;&]]&&&&&&&& &&&& block ::= chunk&&&&&&& &&& stat ::=& var `=& exp | &&& &&& &func_call | &&& &&& &kaishi ['(' main_args ')'] block jieshu | &&& &&& &zhidao exp chongfu block jieshu | &&& &&& &chongfu block zhidao exp jieshu | &&& &&& &ruguo exp name block {ranhou ruguo exp name block} [ranhou block] jieshu | &&& &&& &xunhuan '(' [NAME `=& exp] `,& [exp] `,& [exp] ')' block jieshu |& &&& &&& &hanshu func_name func_body | &&& &&& &jvbu hanshu NAME func_body | &&& &&& &jvbu NAME [`=& exp] &&&&&&&&&&&&&&&& lable ':' block |&&&&&&&&&&&&&&&& tiaozhuan lable &&& last_stat ::= fanhui [exp] | zhongduan&&& func_name ::= NAME | NAME `.& NAME&&& var ::=& NAME | NAME '.' NAME &&& exp ::=& kong | Buer | fudianshu | zhengshu | zifuchuan | `..& | hanshu | &&& &&& &var | shuzu | zidian | exp binop exp | unop exp |&&&&&&&&&&&&&&&& zidian '.' NAME | shuzu '[' zhengshu ']' |&&&&&&&&&&&&&&&& zidian '.' NAME '(' args ')'&&&&&&&&&&&&&&&& &&& func_call ::=& func_name args&& &&& args ::=& `(& [exp] `)&& &&& hanshu ::= hanshu func_body&&& func_body ::= `(& [argslist] `)& block jieshu&&& argslist ::= NAME {`,& NAME} [`,& `..&] | `..&&&&&&&&&& &&& zidian ::= `{& [fieldlist] `}&&&& fieldlist ::= field {`,& field}&&& field ::= NAME ':' exp `=& exp | NAME `=& exp | exp&&& shuzu ::= '{' [arrayfieldlist] '}'&&&& &&& arrayfieldlist ::= arrayfield {',' arrayfield}&&& arrayfield ::= fudianshu | zhengshu | zifuchuan&&& binop ::= `+& | `-& | `*& | `/& | `^& | `%& | `JIA& | CHENG |&&& &&& &`&& | `&=& | `&& | `&=& | `==& | `!=& | &&& &&& &'&' | '|'&&& unop ::= `-& | '~'&Pyin的BNF展开后(yacc版本):%token _BXY _BDY _BD _XD _HO _YU _FI _KG _ZN _JA _SD %token _RG _NM _RH _CF _ZD _XH %token _KS _JS _TZ _CL _JB _FH _ZDN %token _BH _CL
%token _FDS%token _HS _ZFC _ZDAN _CS _BE _SZ _WJ%token _BSF& %token _ZS _ZCS
%left _HO _YU '&' '&'%left _BDY _BXY _BD _XD%left _JIA _CG%left '+' '-' '*' '/' %left _FI _QF '^'
%start program
%%program& : chunk& ;chunk & : stat ';' last_stat ';'& | stat ';'&
& |&&&&&&&&&&&&&&&&&& ;chunk&: block&;stat & : exp_stat&&&&&&&&&&&&&&&&&&&& & | lable_stat&&&&&&&&&&&&&&& & | func_call&&&&&&&&&&&&&&&&&&&&&& & | do_block&&&&&&&&&&&&&&&&& & | args_block&&&& & | repeat_stat&&&&& & | while_stat&&& & | if_stat&&&&&&&&&&&&&&&&&&&& & | goto_stat&&&&&&&&&&&&&&&&&&&&& & | loop_stat&&&&&&&&&&&&&&&&&&&&&& & | func_stat&&&&&&&&& & | local_stat&&&&&&&&&&&&&&&& & ;exp_stat& : var '=' exp& ;lable_stat& : lable ':' block& ;do_block& : _KS block _JS& ;args_block& : _KS '(' main_args ')' block _JS& ;repeat_stat& : _CF block _ZD exp _JS& ;while_stat& : _ZD exp _CF block _JS& ;goto_stat& : _TZ lable& ;if_stat&: _RG exp _NM block _JS&&&&&&&&&&&&&&&&& &| _RG exp _NM block _RH block _JS&&&&&&& &;&loop_stat&: _XH '(' ';' ';' ')' block _JS&&&&&&&&&&&&& &| _XH '(' ';' ';' exp ')' block _JS&&&&&&&&& &| _XH '(' ';' exp ';' ')' block _JS&&&&&&&&& &| _XH '(' ';' exp ';' exp ')' block _JS&&&&& &| _XH '(' exp ';' ';' ')' block _JS&&&&&&&&& &| _XH '(' exp ';' ';' exp ')' block _JS&&&&& &| _XH '(' exp ';'exp ';' ')' block _JS&&&&&& &| _XH '(' exp ';' exp ';' exp ')' block _JS& &;last_stat & : _FH exp & | _ZDN& | _FH exp ';' _ZDN &&& & ;func_stat & : _HS func_name funcbody& ;local_stat& : _JB _HS func_name funcbody& | _JB var '=' exp& ;func_name & : name&&& & ;lable & : name&&& & ;var & : name&&&&&&&&&&& & | dict_name& | dict_name '.' key&& & ;exp & : _KG&&&&&&&&&& & | bool &&&&&&&& & | integer&&&&&& & | float&&&&&&&& & | string&&&&&&& & | array&&&&&&&& & | array_call&&& & | array_element& & | function&& & | dictionary&& & | dict_call&&& & | binop&&&&&&& & | unop&&&&&&&& & ;function& : func_name func_body& | func_body& ;func_call & : func_name '(' args ')'&&&&&&&&&&& & | func_name&&&&&&&&&&&&&&&&&&&&&&&&& & | dict_name '.' key '(' args ')'&&&& & | dict_name '.' key&&&&&&&&&&&&&&&&& & ;func_body & : '(' args ')' block _JS&&&&&&&&&&& & ;args & : exp&&&&&&&& & | exp ',' _SD & | exp ',' args&&&&&&&&&&&&&&&&&&&&& & ;array& : array_name '=' '{' array_element '}'&&&& & ;arrayn_call&&&&&&&&&&&&&&&&&& & :& array_name& ;array_element&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & : array_element ',' integer&&&&&&&&&&&&&&&& & | array_element ',' float&&&&&&&&&&&&&& & | array_element ',' string&&&&&&&&&&&&& & | integer&&&&&&&&&&&&&&&&&&&&&&&&& & | float&&&&&&&&&&&&&&&&&&&&&&&&&&& & | string&&&&&&&&&&&&&&&&&&&&&&&&&& & ;array_name& : array_name '[' integer ']'& | name&&&&&&&&&&&&&&&&&&&&&&& & ;dictionary & : dict_name '=' '{'& field_list '}'& & ;field_list && : key ':' value ','& field_list&&& && | key ':' value&&&&&&&&&&&&&&&&&& && ;key && : name&&&&&&&&&&&&&&&&&&&&&&&&&&& && ;value& : exp&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & ;dict_call& : dict_name& | dict_name '.' key& | dict_name '.' key '(' args ')' & ;dict_name& : name& ;binop & : exp '+' exp& & | exp '-' exp& & | exp '*' exp&& & | exp '/' exp&& & | exp '^' exp&& & | exp '%' exp&& & | exp '&' exp&& & | exp '&' exp& & | exp _BDY exp& & | exp _BXY exp & | exp _XD exp&& & | exp _BD exp& & | exp _YU exp&& & | exp _HO exp& & ;unop & : '-' exp&&&&& & | _FI exp&&&&& & ;bool& : _BE& ;dictionary& : _ZDAN& ;array& : _SZ& ;name& : _BSF& ;string& :_ZFC & ; integer& : _ZS& ;float& :_FDS& ;main_args& : _ZCS& ;%%lua语言的官方BNF(共22条语法):
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 | `#&
&&最后修改于
作者已禁止网友对该文进行评论

我要回帖

更多关于 noisefield.apk是什么 的文章

 

随机推荐