本来想写个好点的,然而实际做起来发现没有那么简单,我还是太天真了,所以只能做阉割版的。
=========================
写下去的时候发现原来的架构不太好,写着写着就没有思路了,设置想不起之前是怎么存的,于是觉得这样拖下去不如重写,写个高聚合低耦合的。
=========================
所有的代码都上传在github
地址是:https://github.com/FieldSoft-HelloClyde/VimCCompiler
201506081545 语法分析语法文本载入完成。
201506081607 语法分析VN,VT集合获得。
201506081949 语法分析能否推出$表完成。
201506082200 语法分析推出First集合完成。
终于超越了原先的进度。不容易啊。
201506091306 语法分析推出Follow集合完成。
找了一万年的错误,终于发现之前的First集合就错了,然后一看竟然是语法少打了一个》符号.....
可见之前测试还是要细心啊。
201506091649 语法分析推出Select集合完成。
eclipse竟然出现了莫名其妙的错误,把所有东西重新打了一遍才好。还不能复制粘贴。shenmegui
201506091900 语法分析推出预测分析表完成。
惊闻体育考试已经错过,老师最后只答应给出勤分.....这不就是宣布我挂了吗....
201506092230 语法分析已经完成。已经能成功分析测试代码。
但是测试自己的代码出了问题,主要还是语法还不够完整。
201506100923 文法修改完成。
201506172217 有时候蛮不服的吧,由于排在班级后半部分,老师根本看不到后半部分的同学。只能内心狂喊,我要做的比那些所谓的“好学生”要好。我是要真正写一个编译器,是能够实际使用的,是有实际意义的。
201506180932 对语法分析进行修改,使其能生成语法树,通过语法树进行翻译就简单多了。
201506240957 语法树完成了!还有有人终于肯领我入新世界的大门了。可能大家都还在摸索中,但是未来还是美好的不是吗?
原始文法来自:
http://blog.youkuaiyun.com/niuox/article/details/8216186
修改后的文法为:
【函数定义】 》 【单个函数闭包】
【单个函数闭包】 》 【单个函数】 【单个函数闭包】
【单个函数闭包】 》 $
【单个函数】 》 【修饰词闭包】 【类型】 【变量】 ( 【参数声明】 ) { 【函数块】 }
【单个函数】 》 void 【变量】 ( 【参数声明】 ) { 【函数块】 }
【修饰词闭包】 》 【修饰词】 【修饰词闭包】
【修饰词闭包】 》 $
【修饰词】 》 describe
【类型】 》 type 【取地址】
【取地址】 》 【星号闭包】
【星号闭包】 》 【星号】 【星号闭包】
【星号闭包】 》 $
【星号】 》 *
【变量】 》 【标志符】 【数组下标】
【标志符】 》 id
【数组下标】 》 [ 【因式】 ]
【数组下标】 》 $
【因式】 》 ( 【表达式】 )
【因式】 》 【变量或函数调用】
【变量或函数调用】 》 【变量】 【函数调用后缀】
【函数调用后缀】 》 ( 【参数列表】 )
【函数调用后缀】 》 $
【因式】 》 【数字】
【数字】 》 digit
【表达式】 》 【因子】 【项】
【因子】 》 【因式】 【因式递归】
【因式递归】 》 * 【因式】 【因式递归】
【因式递归】 》 / 【因式】 【因式递归】
【因式递归】 》 % 【因式】 【因式递归】
【因式递归】 》 $
【项】 》 + 【因子】 【项】
【项】 》 - 【因子】 【项】
【项】 》 $
【参数声明】 》 【声明】 【声明闭包】
【参数声明】 》 $
【参数声明】 》 void
【声明】 》 【修饰词闭包】 【类型】 【变量】 【赋初值】
【赋初值】 》 = 【右值】
【赋初值】 》 $
【右值】 》 【表达式】
【右值】 》 { 【多个数据】 }
【多个数据】 》 【数字】 【数字闭包】
【数字闭包】 》 , 【数字】 【数字闭包】
【数字闭包】 》 $
【声明闭包】 》 , 【声明】 【声明闭包】
【声明闭包】 》 $
【函数块】 》 【声明语句闭包】 【函数块闭包】
【声明语句闭包】 》 【声明语句】 【声明语句闭包】
【声明语句闭包】 》 $
【声明语句】 》 【声明】 ;
【函数块闭包】 》 【赋值函数】 【函数块闭包】
【函数块闭包】 》 【for循环】 【函数块闭包】
【函数块闭包】 》 【条件语句】 【函数块闭包】
【函数块闭包】 》 【函数返回】 【函数块闭包】
【函数块闭包】 》 $
【赋值函数】 》 【变量】 【赋值或函数调用】
【赋值或函数调用】 》 = 【右值】 ;
【赋值或函数调用】 》 ( 【参数列表】 ) ;
【参数列表】 》 【参数】 【参数闭包】
【参数闭包】 》 , 【参数】 【参数闭包】
【参数闭包】 》 $
【参数】 》 【标志符】
【参数】 》 【数字】
【参数】 》 【字符串】
【字符串】 》 string
【for循环】 》 for ( 【赋值函数】 【逻辑表达式】 ; 【后缀表达式】 ) { 【函数块】 }
【多重逻辑表达式】 》 【逻辑表达式】 【多重逻辑表达式递归】
【多重逻辑表达式递归】 》 【高级逻辑运算符】 【逻辑表达式递归】
【多重逻辑表达式递归】 》 $
【高级逻辑运算符】 》 &&
【高级逻辑运算符】 》 ||
【逻辑表达式递归】 》 【逻辑表达式】
【逻辑表达式递归】 》 $
【逻辑表达式】 》 【表达式】 【逻辑表达式后缀】
【逻辑表达式后缀】 》 【逻辑运算符】 【表达式】
【逻辑表达式后缀】 》 $
【逻辑运算符】 》 <
【逻辑运算符】 》 >
【逻辑运算符】 》 ==
【逻辑运算符】 》 !=
【逻辑运算符】 》 >=
【逻辑运算符】 》 <=
【后缀表达式】 》 【变量】 【后缀运算符】
【后缀运算符】 》 ++
【后缀运算符】 》 --
【条件语句】 》 if ( 【多重逻辑表达式】 ) { 【函数块】 } 【否则语句】
【否则语句】 》 else { 【函数块】 }
【否则语句】 》 $
【函数返回】 》 return 【因式】 ;
测试代码:
void print(char* s){
vasm("OUT 2,s");
}
void println(char *s){
vasm("OUT 1,s");
}
int IsPrime(int n){
int i;
for (i = 2;i < n;i ++){
if (n % i == 0){
return 0;
}
}
return 1;
}
int main(void){
int n;
for (n = 3;n <= 100;n ++){
if (IsPrime(n)){
printf("%d\n",n);
}
}
return 0;
}
运行结果:
语法:
【函数定义】》 【单个函数闭包】 | 【单个函数闭包】 void
【单个函数闭包】》 【单个函数】 【单个函数闭包】 | $
【单个函数】》 【修饰词闭包】 【类型】 【变量】 ( 【参数声明】 ) { 【函数块】 } | void 【变量】 ( 【参数声明】 ) { 【函数块】 }
【修饰词闭包】》 【修饰词】 【修饰词闭包】 | $
【修饰词】》 describe
【类型】》 type 【取地址】
【取地址】》 【星号闭包】
【星号闭包】》 【星号】 【星号闭包】 | $
【星号】》 *
【变量】》 【标志符】 【数组下标】
【标志符】》 id
【数组下标】》 [ 【因式】 ] | $
【因式】》 ( 【表达式】 ) | 【变量或函数调用】 | 【数字】
【变量或函数调用】》 【变量】 【函数调用后缀】
【函数调用后缀】》 ( 【参数列表】 ) | $
【数字】》 digit
【表达式】》 【因子】 【项】
【因子】》 【因式】 【因式递归】
【因式递归】》 * 【因式】 【因式递归】 | / 【因式】 【因式递归】 | % 【因式】 【因式递归】 | $
【项】》 + 【因子】 【项】 | - 【因子】 【项】 | $
【参数声明】》 【声明】 【声明闭包】 | $ | void
【声明】》 【修饰词闭包】 【类型】 【变量】 【赋初值】
【赋初值】》 = 【右值】 | $
【右值】》 【表达式】 | { 【多个数据】 }
【多个数据】》 【数字】 【数字闭包】
【数字闭包】》 , 【数字】 【数字闭包】 | $
【声明闭包】》 , 【声明】 【声明闭包】 | $
【函数块】》 【声明语句闭包】 【函数块闭包】
【声明语句闭包】》 【声明语句】 【声明语句闭包】 | $
【声明语句】》 【声明】 ;
【函数块闭包】》 【赋值函数】 【函数块闭包】 | 【for循环】 【函数块闭包】 | 【条件语句】 【函数块闭包】 | 【函数返回】 【函数块闭包】 | $
【赋值函数】》 【变量】 【赋值或函数调用】
【赋值或函数调用】》 = 【右值】 ; | ( 【参数列表】 ) ;
【参数列表】》 【参数】 【参数闭包】
【参数闭包】》 , 【参数】 【参数闭包】 | $
【参数】》 【标志符】 | 【数字】 | 【字符串】
【字符串】》 string
【for循环】》 for ( 【赋值函数】 【逻辑表达式】 ; 【后缀表达式】 ) { 【函数块】 }
【多重逻辑表达式】》 【逻辑表达式】 【多重逻辑表达式递归】
【多重逻辑表达式递归】》 【高级逻辑运算符】 【逻辑表达式递归】 | $
【高级逻辑运算符】》 && | ||
【逻辑表达式递归】》 【逻辑表达式】 | $
【逻辑表达式】》 【表达式】 【逻辑表达式后缀】
【逻辑表达式后缀】》 【逻辑运算符】 【表达式】 | $
【逻辑运算符】》 < | > | == | != | >= | <=
【后缀表达式】》 【变量】 【后缀运算符】
【后缀运算符】》 ++ | --
【条件语句】》 if ( 【多重逻辑表达式】 ) { 【函数块】 } 【否则语句】
【否则语句】》 else { 【函数块】 } | $
【函数返回】》 return 【因式】 ;
终结符:
&&
||
<=
string
for
type
else
id
[
]
if
digit
==
++
--
void
$
%
(
)
*
+
,
-
/
{
describe
;
<
!=
}
=
>
return
>=
非终结符:
【逻辑表达式递归】
【单个函数闭包】
【参数闭包】
【项】
【声明】
【逻辑表达式后缀】
【因式】
【逻辑运算符】
【数字】
【数字闭包】
【类型】
【条件语句】
【星号】
【后缀运算符】
【逻辑表达式】
【后缀表达式】
【字符串】
【函数定义】
【单个函数】
【表达式】
【声明语句】
【因子】
【声明闭包】
【for循环】
【修饰词闭包】
【修饰词】
【声明语句闭包】
【赋值或函数调用】
【取地址】
【参数】
【变量或函数调用】
【变量】
【函数返回】
【赋初值】
【高级逻辑运算符】
【参数声明】
【参数列表】
【多重逻辑表达式递归】
【函数调用后缀】
【函数块闭包】
【标志符】
【多个数据】
【右值】
【赋值函数】
【函数块】
【因式递归】
【星号闭包】
【否则语句】
【多重逻辑表达式】
【数组下标】
$符推导表
&&不能导出$
||不能导出$
<=不能导出$
string不能导出$
for不能导出$
type不能导出$
else不能导出$
id不能导出$
[不能导出$
]不能导出$
if不能导出$
digit不能导出$
==不能导出$
++不能导出$
--不能导出$
void不能导出$
$不能导出$
%不能导出$
(不能导出$
)不能导出$
*不能导出$
+不能导出$
,不能导出$
-不能导出$
/不能导出$
{不能导出$
describe不能导出$
;不能导出$
<不能导出$
!=不能导出$
}不能导出$
=不能导出$
>不能导出$
return不能导出$
>=不能导出$
【逻辑表达式递归】能导出$
【单个函数闭包】能导出$
【参数闭包】能导出$
【项】能导出$
【声明】不能导出$
【逻辑表达式后缀】能导出$
【因式】不能导出$
【逻辑运算符】不能导出$
【数字】不能导出$
【数字闭包】能导出$
【类型】不能导出$
【条件语句】不能导出$
【星号】不能导出$
【后缀运算符】不能导出$
【逻辑表达式】不能导出$
【后缀表达式】不能导出$
【字符串】不能导出$
【函数定义】能导出$
【单个函数】不能导出$
【表达式】不能导出$
【声明语句】不能导出$
【因子】不能导出$
【声明闭包】能导出$
【for循环】不能导出$
【修饰词闭包】能导出$
【修饰词】不能导出$
【声明语句闭包】能导出$
【赋值或函数调用】不能导出$
【取地址】能导出$
【参数】不能导出$
【变量或函数调用】不能导出$
【变量】不能导出$
【函数返回】不能导出$
【赋初值】能导出$
【高级逻辑运算符】不能导出$
【参数声明】能导出$
【参数列表】不能导出$
【多重逻辑表达式递归】能导出$
【函数调用后缀】能导出$
【函数块闭包】能导出$
【标志符】不能导出$
【多个数据】不能导出$
【右值】不能导出$
【赋值函数】不能导出$
【函数块】能导出$
【因式递归】能导出$
【星号闭包】能导出$
【否则语句】能导出$
【多重逻辑表达式】不能导出$
【数组下标】能导出$
First集合
【逻辑表达式递归】 : $ ( id digit
【单个函数闭包】 : void $ describe type
【参数闭包】 : $ ,
【项】 : $ + -
【声明】 : describe type
【逻辑表达式后缀】 : == <= $ < != > >=
【因式】 : ( id digit
【逻辑运算符】 : == <= < != > >=
【数字】 : digit
【数字闭包】 : $ ,
【类型】 : type
【条件语句】 : if
【星号】 : *
【后缀运算符】 : ++ --
【逻辑表达式】 : ( id digit
【后缀表达式】 : id
【字符串】 : string
【函数定义】 : void $ describe type
【单个函数】 : void describe type
【表达式】 : ( id digit
【声明语句】 : describe type
【因子】 : ( id digit
【声明闭包】 : $ ,
【for循环】 : for
【修饰词闭包】 : $ describe
【修饰词】 : describe
【声明语句闭包】 : $ describe type
【赋值或函数调用】 : ( =
【取地址】 : $ *
【参数】 : string id digit
【变量或函数调用】 : id
【变量】 : id
【函数返回】 : return
【赋初值】 : $ =
【高级逻辑运算符】 : && ||
【参数声明】 : void $ describe type
【参数列表】 : string id digit
【多重逻辑表达式递归】 : && || $
【函数调用后缀】 : $ (
【函数块闭包】 : $ for id if return
【标志符】 : id
【多个数据】 : digit
【右值】 : ( { id digit
【赋值函数】 : id
【函数块】 : $ for describe id type if return
【因式递归】 : $ % * /
【星号闭包】 : $ *
【否则语句】 : $ else
【多重逻辑表达式】 : ( id digit
【数组下标】 : $ [
&& : &&
|| : ||
<= : <=
string : string
for : for
type : type
else : else
id : id
[ : [
] : ]
if : if
digit : digit
== : ==
++ : ++
-- : --
void : void
$ : $
% : %
( : (
) : )
* : *
+ : +
, : ,
- : -
/ : /
{ : {
describe : describe
; : ;
< : <
!= : !=
} : }
= : =
> : >
return : return
>= : >=
Follow集合
【逻辑表达式递归】 : )
【单个函数闭包】 : # void
【参数闭包】 : )
【项】 : == && || <= ) ; < != , > >=
【声明】 : ) ; ,
【逻辑表达式后缀】 : && || ) ;
【因式】 : == && || <= % ) * + , - / ; < != ] > >=
【逻辑运算符】 : ( id digit
【数字】 : == && || <= % ) * + , - / ; < != ] } > >=
【数字闭包】 : }
【类型】 : id
【条件语句】 : for id if } return
【星号】 : * id
【后缀运算符】 : )
【逻辑表达式】 : && || ) ;
【后缀表达式】 : )
【字符串】 : ) ,
【函数定义】 : #
【单个函数】 : void # describe type
【表达式】 : == && || <= ) ; < != , > >=
【声明语句】 : for describe id type if } return
【因子】 : == && || <= ) + , - ; < != > >=
【声明闭包】 : )
【for循环】 : for id if } return
【修饰词闭包】 : type
【修饰词】 : describe type
【声明语句闭包】 : for id if } return
【赋值或函数调用】 : for ( id if } return digit
【取地址】 : id
【参数】 : ) ,
【变量或函数调用】 : == && || <= % ) * + , - / ; < != ] > >=
【变量】 : ++ -- == && || <= % ( ) * + , - / ; < != ] = > >=
【函数返回】 : for id if } return
【赋初值】 : ) ; ,
【高级逻辑运算符】 : ( ) id digit
【参数声明】 : )
【参数列表】 : )
【多重逻辑表达式递归】 : )
【函数调用后缀】 : == && || <= % ) * + , - / ; < != ] > >=
【函数块闭包】 : }
【标志符】 : ++ -- == && || <= % ( ) * + , - / [ ; < != ] = > >=
【多个数据】 : }
【右值】 : ) ; ,
【赋值函数】 : for ( id if } return digit
【函数块】 : }
【因式递归】 : == && || <= ) + , - ; < != > >=
【星号闭包】 : id
【否则语句】 : for id if } return
【多重逻辑表达式】 : )
【数组下标】 : ++ -- == && || <= % ( ) * + , - / ; < != ] = > >=
Select集合
【函数定义】 》 【单个函数闭包】 : void # describe type
【函数定义】 》 【单个函数闭包】 void : void describe type
【单个函数闭包】 》 【单个函数】 【单个函数闭包】 : void describe type
【单个函数闭包】 》 $ : # void
【单个函数】 》 【修饰词闭包】 【类型】 【变量】 ( 【参数声明】 ) { 【函数块】 } : describe type
【单个函数】 》 void 【变量】 ( 【参数声明】 ) { 【函数块】 } : void
【修饰词闭包】 》 【修饰词】 【修饰词闭包】 : describe
【修饰词闭包】 》 $ : type
【修饰词】 》 describe : describe
【类型】 》 type 【取地址】 : type
【取地址】 》 【星号闭包】 : * id
【星号闭包】 》 【星号】 【星号闭包】 : *
【星号闭包】 》 $ : id
【星号】 》 * : *
【变量】 》 【标志符】 【数组下标】 : id
【标志符】 》 id : id
【数组下标】 》 [ 【因式】 ] : [
【数组下标】 》 $ : ++ -- == && || <= % ( ) * + , - / ; < != ] = > >=
【因式】 》 ( 【表达式】 ) : (
【因式】 》 【变量或函数调用】 : id
【因式】 》 【数字】 : digit
【变量或函数调用】 》 【变量】 【函数调用后缀】 : id
【函数调用后缀】 》 ( 【参数列表】 ) : (
【函数调用后缀】 》 $ : == && || <= % ) * + , - / ; < != ] > >=
【数字】 》 digit : digit
【表达式】 》 【因子】 【项】 : ( id digit
【因子】 》 【因式】 【因式递归】 : ( id digit
【因式递归】 》 * 【因式】 【因式递归】 : *
【因式递归】 》 / 【因式】 【因式递归】 : /
【因式递归】 》 % 【因式】 【因式递归】 : %
【因式递归】 》 $ : == && || <= ) + , - ; < != > >=
【项】 》 + 【因子】 【项】 : +
【项】 》 - 【因子】 【项】 : -
【项】 》 $ : == && || <= ) ; < != , > >=
【参数声明】 》 【声明】 【声明闭包】 : describe type
【参数声明】 》 $ : )
【参数声明】 》 void : void
【声明】 》 【修饰词闭包】 【类型】 【变量】 【赋初值】 : describe type
【赋初值】 》 = 【右值】 : =
【赋初值】 》 $ : ) ; ,
【右值】 》 【表达式】 : ( id digit
【右值】 》 { 【多个数据】 } : {
【多个数据】 》 【数字】 【数字闭包】 : digit
【数字闭包】 》 , 【数字】 【数字闭包】 : ,
【数字闭包】 》 $ : }
【声明闭包】 》 , 【声明】 【声明闭包】 : ,
【声明闭包】 》 $ : )
【函数块】 》 【声明语句闭包】 【函数块闭包】 : for describe id type if } return
【声明语句闭包】 》 【声明语句】 【声明语句闭包】 : describe type
【声明语句闭包】 》 $ : for id if } return
【声明语句】 》 【声明】 ; : describe type
【函数块闭包】 》 【赋值函数】 【函数块闭包】 : id
【函数块闭包】 》 【for循环】 【函数块闭包】 : for
【函数块闭包】 》 【条件语句】 【函数块闭包】 : if
【函数块闭包】 》 【函数返回】 【函数块闭包】 : return
【函数块闭包】 》 $ : }
【赋值函数】 》 【变量】 【赋值或函数调用】 : id
【赋值或函数调用】 》 = 【右值】 ; : =
【赋值或函数调用】 》 ( 【参数列表】 ) ; : (
【参数列表】 》 【参数】 【参数闭包】 : string id digit
【参数闭包】 》 , 【参数】 【参数闭包】 : ,
【参数闭包】 》 $ : )
【参数】 》 【标志符】 : id
【参数】 》 【数字】 : digit
【参数】 》 【字符串】 : string
【字符串】 》 string : string
【for循环】 》 for ( 【赋值函数】 【逻辑表达式】 ; 【后缀表达式】 ) { 【函数块】 } : for
【多重逻辑表达式】 》 【逻辑表达式】 【多重逻辑表达式递归】 : ( id digit
【多重逻辑表达式递归】 》 【高级逻辑运算符】 【逻辑表达式递归】 : && ||
【多重逻辑表达式递归】 》 $ : )
【高级逻辑运算符】 》 && : &&
【高级逻辑运算符】 》 || : ||
【逻辑表达式递归】 》 【逻辑表达式】 : ( id digit
【逻辑表达式递归】 》 $ : )
【逻辑表达式】 》 【表达式】 【逻辑表达式后缀】 : ( id digit
【逻辑表达式后缀】 》 【逻辑运算符】 【表达式】 : == <= < != > >=
【逻辑表达式后缀】 》 $ : && || ) ;
【逻辑运算符】 》 < : <
【逻辑运算符】 》 > : >
【逻辑运算符】 》 == : ==
【逻辑运算符】 》 != : !=
【逻辑运算符】 》 >= : >=
【逻辑运算符】 》 <= : <=
【后缀表达式】 》 【变量】 【后缀运算符】 : id
【后缀运算符】 》 ++ : ++
【后缀运算符】 》 -- : --
【条件语句】 》 if ( 【多重逻辑表达式】 ) { 【函数块】 } 【否则语句】 : if
【否则语句】 》 else { 【函数块】 } : else
【否则语句】 》 $ : for id if } return
【函数返回】 》 return 【因式】 ; : return
预测分析表
【逻辑表达式递归】&&:null
【逻辑表达式递归】||:null
【逻辑表达式递归】<=:null
【逻辑表达式递归】string:null
【逻辑表达式递归】for:null
【逻辑表达式递归】type:null
【逻辑表达式递归】else:null
【逻辑表达式递归】id:【逻辑表达式】
【逻辑表达式递归】[:null
【逻辑表达式递归】]:null
【逻辑表达式递归】if:null
【逻辑表达式递归】digit:【逻辑表达式】
【逻辑表达式递归】==:null
【逻辑表达式递归】++:null
【逻辑表达式递归】--:null
【逻辑表达式递归】void:null
【逻辑表达式递归】$:null
【逻辑表达式递归】%:null
【逻辑表达式递归】(:【逻辑表达式】
【逻辑表达式递归】):$
【逻辑表达式递归】*:null
【逻辑表达式递归】+:null
【逻辑表达式递归】,:null
【逻辑表达式递归】-:null
【逻辑表达式递归】/:null
【逻辑表达式递归】{:null
【逻辑表达式递归】describe:null
【逻辑表达式递归】;:null
【逻辑表达式递归】<:null
【逻辑表达式递归】!=:null
【逻辑表达式递归】}:null
【逻辑表达式递归】=:null
【逻辑表达式递归】>:null
【逻辑表达式递归】return:null
【逻辑表达式递归】>=:null
【逻辑表达式递归】#:null
【单个函数闭包】&&:null
【单个函数闭包】||:null
【单个函数闭包】<=:null
【单个函数闭包】string:null
【单个函数闭包】for:null
【单个函数闭包】type:【单个函数】 【单个函数闭包】
【单个函数闭包】else:null
【单个函数闭包】id:null
【单个函数闭包】[:null
【单个函数闭包】]:null
【单个函数闭包】if:null
【单个函数闭包】digit:null
【单个函数闭包】==:null
【单个函数闭包】++:null
【单个函数闭包】--:null
【单个函数闭包】void:【单个函数】 【单个函数闭包】
【单个函数闭包】$:null
【单个函数闭包】%:null
【单个函数闭包】(:null
【单个函数闭包】):null
【单个函数闭包】*:null
【单个函数闭包】+:null
【单个函数闭包】,:null
【单个函数闭包】-:null
【单个函数闭包】/:null
【单个函数闭包】{:null
【单个函数闭包】describe:【单个函数】 【单个函数闭包】
【单个函数闭包】;:null
【单个函数闭包】<:null
【单个函数闭包】!=:null
【单个函数闭包】}:null
【单个函数闭包】=:null
【单个函数闭包】>:null
【单个函数闭包】return:null
【单个函数闭包】>=:null
【单个函数闭包】#:$
【参数闭包】&&:null
【参数闭包】||:null
【参数闭包】<=:null
【参数闭包】string:null
【参数闭包】for:null
【参数闭包】type:null
【参数闭包】else:null
【参数闭包】id:null
【参数闭包】[:null
【参数闭包】]:null
【参数闭包】if:null
【参数闭包】digit:null
【参数闭包】==:null
【参数闭包】++:null
【参数闭包】--:null
【参数闭包】void:null
【参数闭包】$:null
【参数闭包】%:null
【参数闭包】(:null
【参数闭包】):$
【参数闭包】*:null
【参数闭包】+:null
【参数闭包】,:, 【参数】 【参数闭包】
【参数闭包】-:null
【参数闭包】/:null
【参数闭包】{:null
【参数闭包】describe:null
【参数闭包】;:null
【参数闭包】<:null
【参数闭包】!=:null
【参数闭包】}:null
【参数闭包】=:null
【参数闭包】>:null
【参数闭包】return:null
【参数闭包】>=:null
【参数闭包】#:null
【项】&&:$
【项】||:$
【项】<=:$
【项】string:null
【项】for:null
【项】type:null
【项】else:null
【项】id:null
【项】[:null
【项】]:null
【项】if:null
【项】digit:null
【项】==:$
【项】++:null
【项】--:null
【项】void:null
【项】$:null
【项】%:null
【项】(:null
【项】):$
【项】*:null
【项】+:+ 【因子】 【项】
【项】,:$
【项】-:- 【因子】 【项】
【项】/:null
【项】{:null
【项】describe:null
【项】;:$
【项】<:$
【项】!=:$
【项】}:null
【项】=:null
【项】>:$
【项】return:null
【项】>=:$
【项】#:null
【声明】&&:null
【声明】||:null
【声明】<=:null
【声明】string:null
【声明】for:null
【声明】type:【修饰词闭包】 【类型】 【变量】 【赋初值】
【声明】else:null
【声明】id:null
【声明】[:null
【声明】]:null
【声明】if:null
【声明】digit:null
【声明】==:null
【声明】++:null
【声明】--:null
【声明】void:null
【声明】$:null
【声明】%:null
【声明】(:null
【声明】):null
【声明】*:null
【声明】+:null
【声明】,:null
【声明】-:null
【声明】/:null
【声明】{:null
【声明】describe:【修饰词闭包】 【类型】 【变量】 【赋初值】
【声明】;:null
【声明】<:null
【声明】!=:null
【声明】}:null
【声明】=:null
【声明】>:null
【声明】return:null
【声明】>=:null
【声明】#:null
【逻辑表达式后缀】&&:$
【逻辑表达式后缀】||:$
【逻辑表达式后缀】<=:【逻辑运算符】 【表达式】
【逻辑表达式后缀】string:null
【逻辑表达式后缀】for:null
【逻辑表达式后缀】type:null
【逻辑表达式后缀】else:null
【逻辑表达式后缀】id:null
【逻辑表达式后缀】[:null
【逻辑表达式后缀】]:null
【逻辑表达式后缀】if:null
【逻辑表达式后缀】digit:null
【逻辑表达式后缀】==:【逻辑运算符】 【表达式】
【逻辑表达式后缀】++:null
【逻辑表达式后缀】--:null
【逻辑表达式后缀】void:null
【逻辑表达式后缀】$:null
【逻辑表达式后缀】%:null
【逻辑表达式后缀】(:null
【逻辑表达式后缀】):$
【逻辑表达式后缀】*:null
【逻辑表达式后缀】+:null
【逻辑表达式后缀】,:null
【逻辑表达式后缀】-:null
【逻辑表达式后缀】/:null
【逻辑表达式后缀】{:null
【逻辑表达式后缀】describe:null
【逻辑表达式后缀】;:$
【逻辑表达式后缀】<:【逻辑运算符】 【表达式】
【逻辑表达式后缀】!=:【逻辑运算符】 【表达式】
【逻辑表达式后缀】}:null
【逻辑表达式后缀】=:null
【逻辑表达式后缀】>:【逻辑运算符】 【表达式】
【逻辑表达式后缀】return:null
【逻辑表达式后缀】>=:【逻辑运算符】 【表达式】
【逻辑表达式后缀】#:null
【因式】&&:null
【因式】||:null
【因式】<=:null
【因式】string:null
【因式】for:null
【因式】type:null
【因式】else:null
【因式】id:【变量或函数调用】
【因式】[:null
【因式】]:null
【因式】if:null
【因式】digit:【数字】
【因式】==:null
【因式】++:null
【因式】--:null
【因式】void:null
【因式】$:null
【因式】%:null
【因式】(:( 【表达式】 )
【因式】):null
【因式】*:null
【因式】+:null
【因式】,:null
【因式】-:null
【因式】/:null
【因式】{:null
【因式】describe:null
【因式】;:null
【因式】<:null
【因式】!=:null
【因式】}:null
【因式】=:null
【因式】>:null
【因式】return:null
【因式】>=:null
【因式】#:null
【逻辑运算符】&&:null
【逻辑运算符】||:null
【逻辑运算符】<=:<=
【逻辑运算符】string:null
【逻辑运算符】for:null
【逻辑运算符】type:null
【逻辑运算符】else:null
【逻辑运算符】id:null
【逻辑运算符】[:null
【逻辑运算符】]:null
【逻辑运算符】if:null
【逻辑运算符】digit:null
【逻辑运算符】==:==
【逻辑运算符】++:null
【逻辑运算符】--:null
【逻辑运算符】void:null
【逻辑运算符】$:null
【逻辑运算符】%:null
【逻辑运算符】(:null
【逻辑运算符】):null
【逻辑运算符】*:null
【逻辑运算符】+:null
【逻辑运算符】,:null
【逻辑运算符】-:null
【逻辑运算符】/:null
【逻辑运算符】{:null
【逻辑运算符】describe:null
【逻辑运算符】;:null
【逻辑运算符】<:<
【逻辑运算符】!=:!=
【逻辑运算符】}:null
【逻辑运算符】=:null
【逻辑运算符】>:>
【逻辑运算符】return:null
【逻辑运算符】>=:>=
【逻辑运算符】#:null
【数字】&&:null
【数字】||:null
【数字】<=:null
【数字】string:null
【数字】for:null
【数字】type:null
【数字】else:null
【数字】id:null
【数字】[:null
【数字】]:null
【数字】if:null
【数字】digit:digit
【数字】==:null
【数字】++:null
【数字】--:null
【数字】void:null
【数字】$:null
【数字】%:null
【数字】(:null
【数字】):null
【数字】*:null
【数字】+:null
【数字】,:null
【数字】-:null
【数字】/:null
【数字】{:null
【数字】describe:null
【数字】;:null
【数字】<:null
【数字】!=:null
【数字】}:null
【数字】=:null
【数字】>:null
【数字】return:null
【数字】>=:null
【数字】#:null
【数字闭包】&&:null
【数字闭包】||:null
【数字闭包】<=:null
【数字闭包】string:null
【数字闭包】for:null
【数字闭包】type:null
【数字闭包】else:null
【数字闭包】id:null
【数字闭包】[:null
【数字闭包】]:null
【数字闭包】if:null
【数字闭包】digit:null
【数字闭包】==:null
【数字闭包】++:null
【数字闭包】--:null
【数字闭包】void:null
【数字闭包】$:null
【数字闭包】%:null
【数字闭包】(:null
【数字闭包】):null
【数字闭包】*:null
【数字闭包】+:null
【数字闭包】,:, 【数字】 【数字闭包】
【数字闭包】-:null
【数字闭包】/:null
【数字闭包】{:null
【数字闭包】describe:null
【数字闭包】;:null
【数字闭包】<:null
【数字闭包】!=:null
【数字闭包】}:$
【数字闭包】=:null
【数字闭包】>:null
【数字闭包】return:null
【数字闭包】>=:null
【数字闭包】#:null
【类型】&&:null
【类型】||:null
【类型】<=:null
【类型】string:null
【类型】for:null
【类型】type:type 【取地址】
【类型】else:null
【类型】id:null
【类型】[:null
【类型】]:null
【类型】if:null
【类型】digit:null
【类型】==:null
【类型】++:null
【类型】--:null
【类型】void:null
【类型】$:null
【类型】%:null
【类型】(:null
【类型】):null
【类型】*:null
【类型】+:null
【类型】,:null
【类型】-:null
【类型】/:null
【类型】{:null
【类型】describe:null
【类型】;:null
【类型】<:null
【类型】!=:null
【类型】}:null
【类型】=:null
【类型】>:null
【类型】return:null
【类型】>=:null
【类型】#:null
【条件语句】&&:null
【条件语句】||:null
【条件语句】<=:null
【条件语句】string:null
【条件语句】for:null
【条件语句】type:null
【条件语句】else:null
【条件语句】id:null
【条件语句】[:null
【条件语句】]:null
【条件语句】if:if ( 【多重逻辑表达式】 ) { 【函数块】 } 【否则语句】
【条件语句】digit:null
【条件语句】==:null
【条件语句】++:null
【条件语句】--:null
【条件语句】void:null
【条件语句】$:null
【条件语句】%:null
【条件语句】(:null
【条件语句】):null
【条件语句】*:null
【条件语句】+:null
【条件语句】,:null
【条件语句】-:null
【条件语句】/:null
【条件语句】{:null
【条件语句】describe:null
【条件语句】;:null
【条件语句】<:null
【条件语句】!=:null
【条件语句】}:null
【条件语句】=:null
【条件语句】>:null
【条件语句】return:null
【条件语句】>=:null
【条件语句】#:null
【星号】&&:null
【星号】||:null
【星号】<=:null
【星号】string:null
【星号】for:null
【星号】type:null
【星号】else:null
【星号】id:null
【星号】[:null
【星号】]:null
【星号】if:null
【星号】digit:null
【星号】==:null
【星号】++:null
【星号】--:null
【星号】void:null
【星号】$:null
【星号】%:null
【星号】(:null
【星号】):null
【星号】*:*
【星号】+:null
【星号】,:null
【星号】-:null
【星号】/:null
【星号】{:null
【星号】describe:null
【星号】;:null
【星号】<:null
【星号】!=:null
【星号】}:null
【星号】=:null
【星号】>:null
【星号】return:null
【星号】>=:null
【星号】#:null
【后缀运算符】&&:null
【后缀运算符】||:null
【后缀运算符】<=:null
【后缀运算符】string:null
【后缀运算符】for:null
【后缀运算符】type:null
【后缀运算符】else:null
【后缀运算符】id:null
【后缀运算符】[:null
【后缀运算符】]:null
【后缀运算符】if:null
【后缀运算符】digit:null
【后缀运算符】==:null
【后缀运算符】++:++
【后缀运算符】--:--
【后缀运算符】void:null
【后缀运算符】$:null
【后缀运算符】%:null
【后缀运算符】(:null
【后缀运算符】):null
【后缀运算符】*:null
【后缀运算符】+:null
【后缀运算符】,:null
【后缀运算符】-:null
【后缀运算符】/:null
【后缀运算符】{:null
【后缀运算符】describe:null
【后缀运算符】;:null
【后缀运算符】<:null
【后缀运算符】!=:null
【后缀运算符】}:null
【后缀运算符】=:null
【后缀运算符】>:null
【后缀运算符】return:null
【后缀运算符】>=:null
【后缀运算符】#:null
【逻辑表达式】&&:null
【逻辑表达式】||:null
【逻辑表达式】<=:null
【逻辑表达式】string:null
【逻辑表达式】for:null
【逻辑表达式】type:null
【逻辑表达式】else:null
【逻辑表达式】id:【表达式】 【逻辑表达式后缀】
【逻辑表达式】[:null
【逻辑表达式】]:null
【逻辑表达式】if:null
【逻辑表达式】digit:【表达式】 【逻辑表达式后缀】
【逻辑表达式】==:null
【逻辑表达式】++:null
【逻辑表达式】--:null
【逻辑表达式】void:null
【逻辑表达式】$:null
【逻辑表达式】%:null
【逻辑表达式】(:【表达式】 【逻辑表达式后缀】
【逻辑表达式】):null
【逻辑表达式】*:null
【逻辑表达式】+:null
【逻辑表达式】,:null
【逻辑表达式】-:null
【逻辑表达式】/:null
【逻辑表达式】{:null
【逻辑表达式】describe:null
【逻辑表达式】;:null
【逻辑表达式】<:null
【逻辑表达式】!=:null
【逻辑表达式】}:null
【逻辑表达式】=:null
【逻辑表达式】>:null
【逻辑表达式】return:null
【逻辑表达式】>=:null
【逻辑表达式】#:null
【后缀表达式】&&:null
【后缀表达式】||:null
【后缀表达式】<=:null
【后缀表达式】string:null
【后缀表达式】for:null
【后缀表达式】type:null
【后缀表达式】else:null
【后缀表达式】id:【变量】 【后缀运算符】
【后缀表达式】[:null
【后缀表达式】]:null
【后缀表达式】if:null
【后缀表达式】digit:null
【后缀表达式】==:null
【后缀表达式】++:null
【后缀表达式】--:null
【后缀表达式】void:null
【后缀表达式】$:null
【后缀表达式】%:null
【后缀表达式】(:null
【后缀表达式】):null
【后缀表达式】*:null
【后缀表达式】+:null
【后缀表达式】,:null
【后缀表达式】-:null
【后缀表达式】/:null
【后缀表达式】{:null
【后缀表达式】describe:null
【后缀表达式】;:null
【后缀表达式】<:null
【后缀表达式】!=:null
【后缀表达式】}:null
【后缀表达式】=:null
【后缀表达式】>:null
【后缀表达式】return:null
【后缀表达式】>=:null
【后缀表达式】#:null
【字符串】&&:null
【字符串】||:null
【字符串】<=:null
【字符串】string:string
【字符串】for:null
【字符串】type:null
【字符串】else:null
【字符串】id:null
【字符串】[:null
【字符串】]:null
【字符串】if:null
【字符串】digit:null
【字符串】==:null
【字符串】++:null
【字符串】--:null
【字符串】void:null
【字符串】$:null
【字符串】%:null
【字符串】(:null
【字符串】):null
【字符串】*:null
【字符串】+:null
【字符串】,:null
【字符串】-:null
【字符串】/:null
【字符串】{:null
【字符串】describe:null
【字符串】;:null
【字符串】<:null
【字符串】!=:null
【字符串】}:null
【字符串】=:null
【字符串】>:null
【字符串】return:null
【字符串】>=:null
【字符串】#:null
【函数定义】&&:null
【函数定义】||:null
【函数定义】<=:null
【函数定义】string:null
【函数定义】for:null
【函数定义】type:【单个函数闭包】
【函数定义】else:null
【函数定义】id:null
【函数定义】[:null
【函数定义】]:null
【函数定义】if:null
【函数定义】digit:null
【函数定义】==:null
【函数定义】++:null
【函数定义】--:null
【函数定义】void:【单个函数闭包】
【函数定义】$:null
【函数定义】%:null
【函数定义】(:null
【函数定义】):null
【函数定义】*:null
【函数定义】+:null
【函数定义】,:null
【函数定义】-:null
【函数定义】/:null
【函数定义】{:null
【函数定义】describe:【单个函数闭包】
【函数定义】;:null
【函数定义】<:null
【函数定义】!=:null
【函数定义】}:null
【函数定义】=:null
【函数定义】>:null
【函数定义】return:null
【函数定义】>=:null
【函数定义】#:【单个函数闭包】
【单个函数】&&:null
【单个函数】||:null
【单个函数】<=:null
【单个函数】string:null
【单个函数】for:null
【单个函数】type:【修饰词闭包】 【类型】 【变量】 ( 【参数声明】 ) { 【函数块】 }
【单个函数】else:null
【单个函数】id:null
【单个函数】[:null
【单个函数】]:null
【单个函数】if:null
【单个函数】digit:null
【单个函数】==:null
【单个函数】++:null
【单个函数】--:null
【单个函数】void:void 【变量】 ( 【参数声明】 ) { 【函数块】 }
【单个函数】$:null
【单个函数】%:null
【单个函数】(:null
【单个函数】):null
【单个函数】*:null
【单个函数】+:null
【单个函数】,:null
【单个函数】-:null
【单个函数】/:null
【单个函数】{:null
【单个函数】describe:【修饰词闭包】 【类型】 【变量】 ( 【参数声明】 ) { 【函数块】 }
【单个函数】;:null
【单个函数】<:null
【单个函数】!=:null
【单个函数】}:null
【单个函数】=:null
【单个函数】>:null
【单个函数】return:null
【单个函数】>=:null
【单个函数】#:null
【表达式】&&:null
【表达式】||:null
【表达式】<=:null
【表达式】string:null
【表达式】for:null
【表达式】type:null
【表达式】else:null
【表达式】id:【因子】 【项】
【表达式】[:null
【表达式】]:null
【表达式】if:null
【表达式】digit:【因子】 【项】
【表达式】==:null
【表达式】++:null
【表达式】--:null
【表达式】void:null
【表达式】$:null
【表达式】%:null
【表达式】(:【因子】 【项】
【表达式】):null
【表达式】*:null
【表达式】+:null
【表达式】,:null
【表达式】-:null
【表达式】/:null
【表达式】{:null
【表达式】describe:null
【表达式】;:null
【表达式】<:null
【表达式】!=:null
【表达式】}:null
【表达式】=:null
【表达式】>:null
【表达式】return:null
【表达式】>=:null
【表达式】#:null
【声明语句】&&:null
【声明语句】||:null
【声明语句】<=:null
【声明语句】string:null
【声明语句】for:null
【声明语句】type:【声明】 ;
【声明语句】else:null
【声明语句】id:null
【声明语句】[:null
【声明语句】]:null
【声明语句】if:null
【声明语句】digit:null
【声明语句】==:null
【声明语句】++:null
【声明语句】--:null
【声明语句】void:null
【声明语句】$:null
【声明语句】%:null
【声明语句】(:null
【声明语句】):null
【声明语句】*:null
【声明语句】+:null
【声明语句】,:null
【声明语句】-:null
【声明语句】/:null
【声明语句】{:null
【声明语句】describe:【声明】 ;
【声明语句】;:null
【声明语句】<:null
【声明语句】!=:null
【声明语句】}:null
【声明语句】=:null
【声明语句】>:null
【声明语句】return:null
【声明语句】>=:null
【声明语句】#:null
【因子】&&:null
【因子】||:null
【因子】<=:null
【因子】string:null
【因子】for:null
【因子】type:null
【因子】else:null
【因子】id:【因式】 【因式递归】
【因子】[:null
【因子】]:null
【因子】if:null
【因子】digit:【因式】 【因式递归】
【因子】==:null
【因子】++:null
【因子】--:null
【因子】void:null
【因子】$:null
【因子】%:null
【因子】(:【因式】 【因式递归】
【因子】):null
【因子】*:null
【因子】+:null
【因子】,:null
【因子】-:null
【因子】/:null
【因子】{:null
【因子】describe:null
【因子】;:null
【因子】<:null
【因子】!=:null
【因子】}:null
【因子】=:null
【因子】>:null
【因子】return:null
【因子】>=:null
【因子】#:null
【声明闭包】&&:null
【声明闭包】||:null
【声明闭包】<=:null
【声明闭包】string:null
【声明闭包】for:null
【声明闭包】type:null
【声明闭包】else:null
【声明闭包】id:null
【声明闭包】[:null
【声明闭包】]:null
【声明闭包】if:null
【声明闭包】digit:null
【声明闭包】==:null
【声明闭包】++:null
【声明闭包】--:null
【声明闭包】void:null
【声明闭包】$:null
【声明闭包】%:null
【声明闭包】(:null
【声明闭包】):$
【声明闭包】*:null
【声明闭包】+:null
【声明闭包】,:, 【声明】 【声明闭包】
【声明闭包】-:null
【声明闭包】/:null
【声明闭包】{:null
【声明闭包】describe:null
【声明闭包】;:null
【声明闭包】<:null
【声明闭包】!=:null
【声明闭包】}:null
【声明闭包】=:null
【声明闭包】>:null
【声明闭包】return:null
【声明闭包】>=:null
【声明闭包】#:null
【for循环】&&:null
【for循环】||:null
【for循环】<=:null
【for循环】string:null
【for循环】for:for ( 【赋值函数】 【逻辑表达式】 ; 【后缀表达式】 ) { 【函数块】 }
【for循环】type:null
【for循环】else:null
【for循环】id:null
【for循环】[:null
【for循环】]:null
【for循环】if:null
【for循环】digit:null
【for循环】==:null
【for循环】++:null
【for循环】--:null
【for循环】void:null
【for循环】$:null
【for循环】%:null
【for循环】(:null
【for循环】):null
【for循环】*:null
【for循环】+:null
【for循环】,:null
【for循环】-:null
【for循环】/:null
【for循环】{:null
【for循环】describe:null
【for循环】;:null
【for循环】<:null
【for循环】!=:null
【for循环】}:null
【for循环】=:null
【for循环】>:null
【for循环】return:null
【for循环】>=:null
【for循环】#:null
【修饰词闭包】&&:null
【修饰词闭包】||:null
【修饰词闭包】<=:null
【修饰词闭包】string:null
【修饰词闭包】for:null
【修饰词闭包】type:$
【修饰词闭包】else:null
【修饰词闭包】id:null
【修饰词闭包】[:null
【修饰词闭包】]:null
【修饰词闭包】if:null
【修饰词闭包】digit:null
【修饰词闭包】==:null
【修饰词闭包】++:null
【修饰词闭包】--:null
【修饰词闭包】void:null
【修饰词闭包】$:null
【修饰词闭包】%:null
【修饰词闭包】(:null
【修饰词闭包】):null
【修饰词闭包】*:null
【修饰词闭包】+:null
【修饰词闭包】,:null
【修饰词闭包】-:null
【修饰词闭包】/:null
【修饰词闭包】{:null
【修饰词闭包】describe:【修饰词】 【修饰词闭包】
【修饰词闭包】;:null
【修饰词闭包】<:null
【修饰词闭包】!=:null
【修饰词闭包】}:null
【修饰词闭包】=:null
【修饰词闭包】>:null
【修饰词闭包】return:null
【修饰词闭包】>=:null
【修饰词闭包】#:null
【修饰词】&&:null
【修饰词】||:null
【修饰词】<=:null
【修饰词】string:null
【修饰词】for:null
【修饰词】type:null
【修饰词】else:null
【修饰词】id:null
【修饰词】[:null
【修饰词】]:null
【修饰词】if:null
【修饰词】digit:null
【修饰词】==:null
【修饰词】++:null
【修饰词】--:null
【修饰词】void:null
【修饰词】$:null
【修饰词】%:null
【修饰词】(:null
【修饰词】):null
【修饰词】*:null
【修饰词】+:null
【修饰词】,:null
【修饰词】-:null
【修饰词】/:null
【修饰词】{:null
【修饰词】describe:describe
【修饰词】;:null
【修饰词】<:null
【修饰词】!=:null
【修饰词】}:null
【修饰词】=:null
【修饰词】>:null
【修饰词】return:null
【修饰词】>=:null
【修饰词】#:null
【声明语句闭包】&&:null
【声明语句闭包】||:null
【声明语句闭包】<=:null
【声明语句闭包】string:null
【声明语句闭包】for:$
【声明语句闭包】type:【声明语句】 【声明语句闭包】
【声明语句闭包】else:null
【声明语句闭包】id:$
【声明语句闭包】[:null
【声明语句闭包】]:null
【声明语句闭包】if:$
【声明语句闭包】digit:null
【声明语句闭包】==:null
【声明语句闭包】++:null
【声明语句闭包】--:null
【声明语句闭包】void:null
【声明语句闭包】$:null
【声明语句闭包】%:null
【声明语句闭包】(:null
【声明语句闭包】):null
【声明语句闭包】*:null
【声明语句闭包】+:null
【声明语句闭包】,:null
【声明语句闭包】-:null
【声明语句闭包】/:null
【声明语句闭包】{:null
【声明语句闭包】describe:【声明语句】 【声明语句闭包】
【声明语句闭包】;:null
【声明语句闭包】<:null
【声明语句闭包】!=:null
【声明语句闭包】}:$
【声明语句闭包】=:null
【声明语句闭包】>:null
【声明语句闭包】return:$
【声明语句闭包】>=:null
【声明语句闭包】#:null
【赋值或函数调用】&&:null
【赋值或函数调用】||:null
【赋值或函数调用】<=:null
【赋值或函数调用】string:null
【赋值或函数调用】for:null
【赋值或函数调用】type:null
【赋值或函数调用】else:null
【赋值或函数调用】id:null
【赋值或函数调用】[:null
【赋值或函数调用】]:null
【赋值或函数调用】if:null
【赋值或函数调用】digit:null
【赋值或函数调用】==:null
【赋值或函数调用】++:null
【赋值或函数调用】--:null
【赋值或函数调用】void:null
【赋值或函数调用】$:null
【赋值或函数调用】%:null
【赋值或函数调用】(:( 【参数列表】 ) ;
【赋值或函数调用】):null
【赋值或函数调用】*:null
【赋值或函数调用】+:null
【赋值或函数调用】,:null
【赋值或函数调用】-:null
【赋值或函数调用】/:null
【赋值或函数调用】{:null
【赋值或函数调用】describe:null
【赋值或函数调用】;:null
【赋值或函数调用】<:null
【赋值或函数调用】!=:null
【赋值或函数调用】}:null
【赋值或函数调用】=:= 【右值】 ;
【赋值或函数调用】>:null
【赋值或函数调用】return:null
【赋值或函数调用】>=:null
【赋值或函数调用】#:null
【取地址】&&:null
【取地址】||:null
【取地址】<=:null
【取地址】string:null
【取地址】for:null
【取地址】type:null
【取