编译原理实验:miniC语言编译器

时间:2022-03-08 15:16:18

本来想写个好点的,然而实际做起来发现没有那么简单,我还是太天真了,所以只能做阉割版的。

=========================

写下去的时候发现原来的架构不太好,写着写着就没有思路了,设置想不起之前是怎么存的,于是觉得这样拖下去不如重写,写个高聚合低耦合的。

=========================

所有的代码都上传在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.csdn.net/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
【取地址】else:null
【取地址】id:【星号闭包】
【取地址】[: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:【字符串】
【参数】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
【参数】{: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: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: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:null
【函数返回】;:null
【函数返回】<:null
【函数返回】!=:null
【函数返回】}:null
【函数返回】=:null
【函数返回】>:null
【函数返回】return: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
【赋初值】return: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: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:void
【参数声明】$:null
【参数声明】%:null
【参数声明】(:null
【参数声明】):$
【参数声明】*:null
【参数声明】+:null
【参数声明】,:null
【参数声明】-:null
【参数声明】/:null
【参数声明】{:null
【参数声明】describe:【声明】 【声明闭包】
【参数声明】;:null
【参数声明】<:null
【参数声明】!=:null
【参数声明】}:null
【参数声明】=:null
【参数声明】>:null
【参数声明】return:null
【参数声明】>=:null
【参数声明】#:null
【参数列表】&&:null
【参数列表】||:null
【参数列表】<=:null
【参数列表】string:【参数】 【参数闭包】
【参数列表】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
【参数列表】{:null
【参数列表】describe:null
【参数列表】;:null
【参数列表】<:null
【参数列表】!=:null
【参数列表】}:null
【参数列表】=:null
【参数列表】>:null
【参数列表】return: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
【函数调用后缀】&&:$
【函数调用后缀】||:$
【函数调用后缀】<=:$
【函数调用后缀】string:null
【函数调用后缀】for:null
【函数调用后缀】type:null
【函数调用后缀】else:null
【函数调用后缀】id:null
【函数调用后缀】[:null
【函数调用后缀】]:$
【函数调用后缀】if:null
【函数调用后缀】digit:null
【函数调用后缀】==:$
【函数调用后缀】++:null
【函数调用后缀】--:null
【函数调用后缀】void:null
【函数调用后缀】$:null
【函数调用后缀】%:$
【函数调用后缀】(:( 【参数列表】 )
【函数调用后缀】):$
【函数调用后缀】*:$
【函数调用后缀】+:$
【函数调用后缀】,:$
【函数调用后缀】-:$
【函数调用后缀】/:$
【函数调用后缀】{:null
【函数调用后缀】describe:null
【函数调用后缀】;:$
【函数调用后缀】<:$
【函数调用后缀】!=:$
【函数调用后缀】}:null
【函数调用后缀】=:null
【函数调用后缀】>:$
【函数调用后缀】return:null
【函数调用后缀】>=:$
【函数调用后缀】#:null
【函数块闭包】&&:null
【函数块闭包】||:null
【函数块闭包】<=:null
【函数块闭包】string:null
【函数块闭包】for:【for循环】 【函数块闭包】
【函数块闭包】type:null
【函数块闭包】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
【函数块闭包】>:null
【函数块闭包】return:【函数返回】 【函数块闭包】
【函数块闭包】>=:null
【函数块闭包】#:null
【标志符】&&:null
【标志符】||:null
【标志符】<=:null
【标志符】string:null
【标志符】for:null
【标志符】type:null
【标志符】else:null
【标志符】id: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: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
【多个数据】}: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
【右值】{:{ 【多个数据】 }
【右值】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: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
【因式递归】&&:$
【因式递归】||:$
【因式递归】<=:$
【因式递归】string:null
【因式递归】for:null
【因式递归】type:null
【因式递归】else:null
【因式递归】id:null
【因式递归】[:null
【因式递归】]:null
【因式递归】if:null
【因式递归】digit:null
【因式递归】==:$
【因式递归】++:null
【因式递归】--:null
【因式递归】void: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
【星号闭包】--: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:$
【否则语句】type:null
【否则语句】else:else { 【函数块】 }
【否则语句】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
【否则语句】>: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
【数组下标】&&:$
【数组下标】||:$
【数组下标】<=:$
【数组下标】string:null
【数组下标】for:null
【数组下标】type:null
【数组下标】else:null
【数组下标】id:null
【数组下标】[:[ 【因式】 ]
【数组下标】]:$
【数组下标】if:null
【数组下标】digit:null
【数组下标】==:$
【数组下标】++:$
【数组下标】--:$
【数组下标】void:null
【数组下标】$:null
【数组下标】%:$
【数组下标】(:$
【数组下标】):$
【数组下标】*:$
【数组下标】+:$
【数组下标】,:$
【数组下标】-:$
【数组下标】/:$
【数组下标】{:null
【数组下标】describe:null
【数组下标】;:$
【数组下标】<:$
【数组下标】!=:$
【数组下标】}:null
【数组下标】=:$
【数组下标】>:$
【数组下标】return:null
【数组下标】>=:$
【数组下标】#:null
语法不是LL(1)!
1# 【函数定义】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type ( id void 【单个函数闭包】
2# 【单个函数闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type ( id void 【单个函数】 【单个函数闭包】
3# 【单个函数闭包】 【单个函数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type ( id void void 【变量】 ( 【参数声明】 ) { 【函数块】 }
4# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 void # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type ( id void void匹配
5# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type ( id 【标志符】 【数组下标】
6# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type ( id id
7# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type ( id id匹配
8# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type ( $
9# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type ( (匹配
10# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type 【声明】 【声明闭包】
11# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【声明】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type 【修饰词闭包】 【类型】 【变量】 【赋初值】
12# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【类型】 【修饰词闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type $
13# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【类型】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type type 【取地址】
14# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【取地址】 type # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * type type匹配
15# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【取地址】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * 【星号闭包】
16# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【星号闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * 【星号】 【星号闭包】
17# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【星号闭包】 【星号】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * *
18# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【星号闭包】 * # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id * *匹配
19# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【星号闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id $
20# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id 【标志符】 【数组下标】
21# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id id
22# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) id id匹配
23# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) $
24# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) $
25# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) $
26# 【单个函数闭包】 } 【函数块】 { ) # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { ) )匹配
27# 【单个函数闭包】 } 【函数块】 { # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id { {匹配
28# 【单个函数闭包】 } 【函数块】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id 【声明语句闭包】 【函数块闭包】
29# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id $
30# 【单个函数闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id 【赋值函数】 【函数块闭包】
31# 【单个函数闭包】 } 【函数块闭包】 【赋值函数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id 【变量】 【赋值或函数调用】
32# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id 【标志符】 【数组下标】
33# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id id
34# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( id id匹配
35# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( $
36# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( ( 【参数列表】 ) ;
37# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数列表】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string ( (匹配
38# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数列表】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string 【参数】 【参数闭包】
39# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数闭包】 【参数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string 【字符串】
40# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数闭包】 【字符串】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string string
41# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数闭包】 string # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) string string匹配
42# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) $
43# 【单个函数闭包】 } 【函数块闭包】 ; ) # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ) )匹配
44# 【单个函数闭包】 } 【函数块闭包】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } ; ;匹配
45# 【单个函数闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } $
46# 【单个函数闭包】 } # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void } }匹配
47# 【单个函数闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void 【单个函数】 【单个函数闭包】
48# 【单个函数闭包】 【单个函数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void void 【变量】 ( 【参数声明】 ) { 【函数块】 }
49# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 void # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id void void匹配
50# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id 【标志符】 【数组下标】
51# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id id
52# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( id id匹配
53# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( $
54# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type ( (匹配
55# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type 【声明】 【声明闭包】
56# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【声明】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type 【修饰词闭包】 【类型】 【变量】 【赋初值】
57# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【类型】 【修饰词闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type $
58# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【类型】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type type 【取地址】
59# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【取地址】 type # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * type type匹配
60# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【取地址】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * 【星号闭包】
61# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【星号闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * 【星号】 【星号闭包】
62# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【星号闭包】 【星号】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * *
63# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【星号闭包】 * # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id * *匹配
64# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【星号闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id $
65# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id 【标志符】 【数组下标】
66# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id id
67# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) id id匹配
68# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) $
69# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) $
70# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) $
71# 【单个函数闭包】 } 【函数块】 { ) # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { ) )匹配
72# 【单个函数闭包】 } 【函数块】 { # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id { {匹配
73# 【单个函数闭包】 } 【函数块】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id 【声明语句闭包】 【函数块闭包】
74# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id $
75# 【单个函数闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id 【赋值函数】 【函数块闭包】
76# 【单个函数闭包】 } 【函数块闭包】 【赋值函数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id 【变量】 【赋值或函数调用】
77# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id 【标志符】 【数组下标】
78# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id id
79# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( id id匹配
80# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( $
81# 【单个函数闭包】 } 【函数块闭包】 【赋值或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( ( 【参数列表】 ) ;
82# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数列表】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string ( (匹配
83# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数列表】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string 【参数】 【参数闭包】
84# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数闭包】 【参数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string 【字符串】
85# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数闭包】 【字符串】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string string
86# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数闭包】 string # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) string string匹配
87# 【单个函数闭包】 } 【函数块闭包】 ; ) 【参数闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) $
88# 【单个函数闭包】 } 【函数块闭包】 ; ) # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ) )匹配
89# 【单个函数闭包】 } 【函数块闭包】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } ; ;匹配
90# 【单个函数闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } $
91# 【单个函数闭包】 } # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type } }匹配
92# 【单个函数闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type 【单个函数】 【单个函数闭包】
93# 【单个函数闭包】 【单个函数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type 【修饰词闭包】 【类型】 【变量】 ( 【参数声明】 ) { 【函数块】 }
94# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【类型】 【修饰词闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type $
95# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【类型】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type type 【取地址】
96# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【取地址】 type # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id type type匹配
97# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【取地址】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id 【星号闭包】
98# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【星号闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id $
99# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id 【标志符】 【数组下标】
100# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id id
101# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( id id匹配
102# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( $
103# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type ( (匹配
104# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type 【声明】 【声明闭包】
105# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【声明】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type 【修饰词闭包】 【类型】 【变量】 【赋初值】
106# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【类型】 【修饰词闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type $
107# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【类型】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type type 【取地址】
108# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【取地址】 type # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id type type匹配
109# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【取地址】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id 【星号闭包】
110# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 【星号闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id $
111# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id 【标志符】 【数组下标】
112# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id id
113# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) id id匹配
114# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) $
115# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 【赋初值】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) $
116# 【单个函数闭包】 } 【函数块】 { ) 【声明闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) $
117# 【单个函数闭包】 } 【函数块】 { ) # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { ) )匹配
118# 【单个函数闭包】 } 【函数块】 { # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type { {匹配
119# 【单个函数闭包】 } 【函数块】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type 【声明语句闭包】 【函数块闭包】
120# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type 【声明语句】 【声明语句闭包】
121# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 【声明语句】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type 【声明】 ;
122# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【声明】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type 【修饰词闭包】 【类型】 【变量】 【赋初值】
123# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【类型】 【修饰词闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type $
124# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【类型】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type type 【取地址】
125# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【取地址】 type # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id type type匹配
126# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【取地址】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id 【星号闭包】
127# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【星号闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id $
128# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id 【标志符】 【数组下标】
129# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id id
130# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; id id匹配
131# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; $
132# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; $
133# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for ; ;匹配
134# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for $
135# 【单个函数闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for 【for循环】 【函数块闭包】
136# 【单个函数闭包】 } 【函数块闭包】 【for循环】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for for ( 【赋值函数】 【逻辑表达式】 ; 【后缀表达式】 ) { 【函数块】 }
137# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值函数】 ( for # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( for for匹配
138# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值函数】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id ( (匹配
139# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值函数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id 【变量】 【赋值或函数调用】
140# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id 【标志符】 【数组下标】
141# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id id
142# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = id id匹配
143# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = $
144# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = = 【右值】 ;
145# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【右值】 = # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit = =匹配
146# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【右值】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit 【表达式】
147# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit 【因子】 【项】
148# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因子】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit 【因式】 【因式递归】
149# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit 【数字】
150# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因式递归】 【数字】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit digit
151# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因式递归】 digit # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; digit digit匹配
152# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; $
153# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; $
154# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id ; ;匹配
155# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id 【表达式】 【逻辑表达式后缀】
156# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id 【因子】 【项】
157# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因子】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id 【因式】 【因式递归】
158# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id 【变量或函数调用】
159# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【变量或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id 【变量】 【函数调用后缀】
160# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id 【标志符】 【数组下标】
161# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id id
162# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < id id匹配
163# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < $
164# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < $
165# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < $
166# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < $
167# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < 【逻辑运算符】 【表达式】
168# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【表达式】 【逻辑运算符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < <
169# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【表达式】 < # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id < <匹配
170# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id 【因子】 【项】
171# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因子】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id 【因式】 【因式递归】
172# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id 【变量或函数调用】
173# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 【变量或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id 【变量】 【函数调用后缀】
174# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 【函数调用后缀】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id 【标志符】 【数组下标】
175# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 【函数调用后缀】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id id
176# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 【函数调用后缀】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; id id匹配
177# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 【函数调用后缀】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; $
178# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 【函数调用后缀】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; $
179# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; $
180# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; $
181# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id ; ;匹配
182# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id 【变量】 【后缀运算符】
183# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id 【标志符】 【数组下标】
184# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id id
185# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ id id匹配
186# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ $
187# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ ++
188# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) ++ # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) ++ ++匹配
189# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { ) )匹配
190# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if { {匹配
191# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if 【声明语句闭包】 【函数块闭包】
192# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if $
193# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if 【条件语句】 【函数块闭包】
194# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【条件语句】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if if ( 【多重逻辑表达式】 ) { 【函数块】 } 【否则语句】
195# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式】 ( if # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( if if匹配
196# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id ( (匹配
197# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id 【逻辑表达式】 【多重逻辑表达式递归】
198# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id 【表达式】 【逻辑表达式后缀】
199# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id 【因子】 【项】
200# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因子】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id 【因式】 【因式递归】
201# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id 【变量或函数调用】
202# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【变量或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id 【变量】 【函数调用后缀】
203# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id 【标志符】 【数组下标】
204# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id id
205# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % id id匹配
206# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % $
207# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % $
208# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % % 【因式】 【因式递归】
209# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【因式】 % # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id % %匹配
210# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id 【变量或函数调用】
211# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【变量或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id 【变量】 【函数调用后缀】
212# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id 【标志符】 【数组下标】
213# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id id
214# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == id id匹配
215# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == $
216# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == $
217# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == $
218# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == $
219# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == 【逻辑运算符】 【表达式】
220# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【表达式】 【逻辑运算符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == ==
221# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【表达式】 == # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit == ==匹配
222# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit 【因子】 【项】
223# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【项】 【因子】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit 【因式】 【因式递归】
224# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit 【数字】
225# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【项】 【因式递归】 【数字】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit digit
226# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【项】 【因式递归】 digit # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) digit digit匹配
227# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) $
228# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【项】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) $
229# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) $
230# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { ) )匹配
231# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return { {匹配
232# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return 【声明语句闭包】 【函数块闭包】
233# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return $
234# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return 【函数返回】 【函数块闭包】
235# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 【函数返回】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return return 【因式】 ;
236# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; 【因式】 return # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit return return匹配
237# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit 【数字】
238# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; 【数字】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit digit
239# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; digit # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; digit digit匹配
240# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } ; ;匹配
241# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } $
242# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } } }匹配
243# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } $
244# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } $
245# 【单个函数闭包】 } 【函数块闭包】 } # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return } }匹配
246# 【单个函数闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return 【函数返回】 【函数块闭包】
247# 【单个函数闭包】 } 【函数块闭包】 【函数返回】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return return 【因式】 ;
248# 【单个函数闭包】 } 【函数块闭包】 ; 【因式】 return # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit return return匹配
249# 【单个函数闭包】 } 【函数块闭包】 ; 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit 【数字】
250# 【单个函数闭包】 } 【函数块闭包】 ; 【数字】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit digit
251# 【单个函数闭包】 } 【函数块闭包】 ; digit # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; digit digit匹配
252# 【单个函数闭包】 } 【函数块闭包】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } ; ;匹配
253# 【单个函数闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } $
254# 【单个函数闭包】 } # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type } }匹配
255# 【单个函数闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type 【单个函数】 【单个函数闭包】
256# 【单个函数闭包】 【单个函数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type 【修饰词闭包】 【类型】 【变量】 ( 【参数声明】 ) { 【函数块】 }
257# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【类型】 【修饰词闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type $
258# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【类型】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type type 【取地址】
259# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【取地址】 type # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id type type匹配
260# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【取地址】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id 【星号闭包】
261# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 【星号闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id $
262# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id 【标志符】 【数组下标】
263# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id id
264# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( id id匹配
265# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( $
266# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void ( (匹配
267# 【单个函数闭包】 } 【函数块】 { ) 【参数声明】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void void
268# 【单个函数闭包】 } 【函数块】 { ) void # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) void void匹配
269# 【单个函数闭包】 } 【函数块】 { ) # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { ) )匹配
270# 【单个函数闭包】 } 【函数块】 { # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type { {匹配
271# 【单个函数闭包】 } 【函数块】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type 【声明语句闭包】 【函数块闭包】
272# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type 【声明语句】 【声明语句闭包】
273# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 【声明语句】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type 【声明】 ;
274# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【声明】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type 【修饰词闭包】 【类型】 【变量】 【赋初值】
275# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【类型】 【修饰词闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type $
276# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【类型】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type type 【取地址】
277# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【取地址】 type # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id type type匹配
278# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【取地址】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id 【星号闭包】
279# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 【星号闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id $
280# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id 【标志符】 【数组下标】
281# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id id
282# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; id id匹配
283# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; $
284# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; 【赋初值】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; $
285# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for ; ;匹配
286# 【单个函数闭包】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for $
287# 【单个函数闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for 【for循环】 【函数块闭包】
288# 【单个函数闭包】 } 【函数块闭包】 【for循环】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for for ( 【赋值函数】 【逻辑表达式】 ; 【后缀表达式】 ) { 【函数块】 }
289# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值函数】 ( for # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( for for匹配
290# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值函数】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id ( (匹配
291# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值函数】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id 【变量】 【赋值或函数调用】
292# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id 【标志符】 【数组下标】
293# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id id
294# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = id id匹配
295# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = $
296# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 【赋值或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = = 【右值】 ;
297# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【右值】 = # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit = =匹配
298# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【右值】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit 【表达式】
299# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit 【因子】 【项】
300# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因子】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit 【因式】 【因式递归】
301# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit 【数字】
302# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因式递归】 【数字】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit digit
303# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因式递归】 digit # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; digit digit匹配
304# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; $
305# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; 【项】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; $
306# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id ; ;匹配
307# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id 【表达式】 【逻辑表达式后缀】
308# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id 【因子】 【项】
309# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因子】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id 【因式】 【因式递归】
310# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id 【变量或函数调用】
311# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【变量或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id 【变量】 【函数调用后缀】
312# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id 【标志符】 【数组下标】
313# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id id
314# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= id id匹配
315# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= $
316# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= $
317# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= $
318# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 【项】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= $
319# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【逻辑表达式后缀】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= 【逻辑运算符】 【表达式】
320# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【表达式】 【逻辑运算符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= <=
321# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【表达式】 <= # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit <= <=匹配
322# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit 【因子】 【项】
323# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因子】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit 【因式】 【因式递归】
324# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit 【数字】
325# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 【数字】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit digit
326# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 digit # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; digit digit匹配
327# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; $
328# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; 【项】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; $
329# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 ; # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id ; ;匹配
330# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id 【变量】 【后缀运算符】
331# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id 【标志符】 【数组下标】
332# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id id
333# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ id id匹配
334# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ $
335# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) 【后缀运算符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ ++
336# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) ++ # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) ++ ++匹配
337# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { ) # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { ) )匹配
338# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 { # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if { {匹配
339# 【单个函数闭包】 } 【函数块闭包】 } 【函数块】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if 【声明语句闭包】 【函数块闭包】
340# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if $
341# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if 【条件语句】 【函数块闭包】
342# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【条件语句】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if if ( 【多重逻辑表达式】 ) { 【函数块】 } 【否则语句】
343# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式】 ( if # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( if if匹配
344# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( id ( (匹配
345# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id 【逻辑表达式】 【多重逻辑表达式递归】
346# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id 【表达式】 【逻辑表达式后缀】
347# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【表达式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id 【因子】 【项】
348# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因子】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id 【因式】 【因式递归】
349# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【因式】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id 【变量或函数调用】
350# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【变量或函数调用】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id 【变量】 【函数调用后缀】
351# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【变量】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id 【标志符】 【数组下标】
352# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id ( id id
353# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 id # } ; digit return } } ; ) id , string ( id { ) ) id ( id id匹配
354# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 【数组下标】 # } ; digit return } } ; ) id , string ( id { ) ) id ( $
355# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 【函数调用后缀】 # } ; digit return } } ; ) id , string ( id { ) ) id ( ( 【参数列表】 )
356# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 ) 【参数列表】 ( # } ; digit return } } ; ) id , string ( id { ) ) id ( (匹配
357# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 ) 【参数列表】 # } ; digit return } } ; ) id , string ( id { ) ) id 【参数】 【参数闭包】
358# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 ) 【参数闭包】 【参数】 # } ; digit return } } ; ) id , string ( id { ) ) id 【标志符】
359# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 ) 【参数闭包】 【标志符】 # } ; digit return } } ; ) id , string ( id { ) ) id id
360# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 ) 【参数闭包】 id # } ; digit return } } ; ) id , string ( id { ) ) id id匹配
361# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 ) 【参数闭包】 # } ; digit return } } ; ) id , string ( id { ) ) $
362# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 ) # } ; digit return } } ; ) id , string ( id { ) ) )匹配
363# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 【因式递归】 # } ; digit return } } ; ) id , string ( id { ) $
364# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 【项】 # } ; digit return } } ; ) id , string ( id { ) $
365# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 【逻辑表达式后缀】 # } ; digit return } } ; ) id , string ( id { ) $
366# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) 【多重逻辑表达式递归】 # } ; digit return } } ; ) id , string ( id { ) $
367# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { ) # } ; digit return } } ; ) id , string ( id { ) )匹配
368# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 { # } ; digit return } } ; ) id , string ( id { {匹配
369# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块】 # } ; digit return } } ; ) id , string ( id 【声明语句闭包】 【函数块闭包】
370# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 【声明语句闭包】 # } ; digit return } } ; ) id , string ( id $
371# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 # } ; digit return } } ; ) id , string ( id 【赋值函数】 【函数块闭包】
372# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 【赋值函数】 # } ; digit return } } ; ) id , string ( id 【变量】 【赋值或函数调用】
373# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 【赋值或函数调用】 【变量】 # } ; digit return } } ; ) id , string ( id 【标志符】 【数组下标】
374# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 【赋值或函数调用】 【数组下标】 【标志符】 # } ; digit return } } ; ) id , string ( id id
375# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 【赋值或函数调用】 【数组下标】 id # } ; digit return } } ; ) id , string ( id id匹配
376# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 【赋值或函数调用】 【数组下标】 # } ; digit return } } ; ) id , string ( $
377# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 【赋值或函数调用】 # } ; digit return } } ; ) id , string ( ( 【参数列表】 ) ;
378# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数列表】 ( # } ; digit return } } ; ) id , string ( (匹配
379# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数列表】 # } ; digit return } } ; ) id , string 【参数】 【参数闭包】
380# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数闭包】 【参数】 # } ; digit return } } ; ) id , string 【字符串】
381# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数闭包】 【字符串】 # } ; digit return } } ; ) id , string string
382# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数闭包】 string # } ; digit return } } ; ) id , string string匹配
383# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数闭包】 # } ; digit return } } ; ) id , , 【参数】 【参数闭包】
384# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数闭包】 【参数】 , # } ; digit return } } ; ) id , ,匹配
385# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数闭包】 【参数】 # } ; digit return } } ; ) id 【标志符】
386# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数闭包】 【标志符】 # } ; digit return } } ; ) id id
387# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数闭包】 id # } ; digit return } } ; ) id id匹配
388# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) 【参数闭包】 # } ; digit return } } ; ) $
389# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; ) # } ; digit return } } ; ) )匹配
390# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 ; # } ; digit return } } ; ;匹配
391# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } 【函数块闭包】 # } ; digit return } } $
392# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 } # } ; digit return } } }匹配
393# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 【否则语句】 # } ; digit return } $
394# 【单个函数闭包】 } 【函数块闭包】 } 【函数块闭包】 # } ; digit return } $
395# 【单个函数闭包】 } 【函数块闭包】 } # } ; digit return } }匹配
396# 【单个函数闭包】 } 【函数块闭包】 # } ; digit return 【函数返回】 【函数块闭包】
397# 【单个函数闭包】 } 【函数块闭包】 【函数返回】 # } ; digit return return 【因式】 ;
398# 【单个函数闭包】 } 【函数块闭包】 ; 【因式】 return # } ; digit return return匹配
399# 【单个函数闭包】 } 【函数块闭包】 ; 【因式】 # } ; digit 【数字】
400# 【单个函数闭包】 } 【函数块闭包】 ; 【数字】 # } ; digit digit
401# 【单个函数闭包】 } 【函数块闭包】 ; digit # } ; digit digit匹配
402# 【单个函数闭包】 } 【函数块闭包】 ; # } ; ;匹配
403# 【单个函数闭包】 } 【函数块闭包】 # } $
404# 【单个函数闭包】 } # } }匹配
405# 【单个函数闭包】 # $
406# # #匹配
匹配成功!