C语法归约之数组和指针(1)

上一篇,开始了语法归约,给出变量声明定义初始化归约过程,和c99文法图,请查阅这里,相关文法图在这里依然要使用

1、数组归约

1.1、示例代码
int a[10];
int a[2][3];
int a[2][3][4];

struct AA boy[100];
struct AA boy[100][100];
union BB girl[10];
1.2、归约过程
curr: int  next: a  
type-specifier 
declaration-specifiers 

curr: ID  next: [  
declaration-specifiers direct-declarator 

curr: [  next: 10  

curr: 10  next: ]  
declaration-specifiers direct-declarator [ primary-expression 
declaration-specifiers direct-declarator [ postfix-expression 
declaration-specifiers direct-declarator [ unary-expression 
declaration-specifiers direct-declarator [ cast-expression 
declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-specifiers direct-declarator [ additive-expression 
declaration-specifiers direct-declarator [ shift-expression 
declaration-specifiers direct-declarator [ relational-expression 
declaration-specifiers direct-declarator [ equality-expression 
declaration-specifiers direct-declarator [ AND-expression 
declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-specifiers direct-declarator [ conditional-expression 
declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-specifiers direct-declarator 
declaration-specifiers declarator 
declaration-specifiers init-declarator 
declaration-specifiers init-declarator-list 

curr: ;  next: int  
declaration 
declaration-list 

curr: int  next: a  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: ID  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 2  

curr: 2  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 3  

curr: 3  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: int  
declaration-list declaration 
declaration-list 

curr: int  next: a  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: ID  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 2  

curr: 2  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 3  

curr: 3  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 4  

curr: 4  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: struct  
declaration-list declaration 
declaration-list 

curr: struct  next: AA  

curr: boy  next: ID  
declaration-list struct-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: ID  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 100  

curr: 100  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: struct  
declaration-list declaration 
declaration-list 

curr: struct  next: AA  

curr: boy  next: ID  
declaration-list struct-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: ID  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 100  

curr: 100  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 100  

curr: 100  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: union  
declaration-list declaration 
declaration-list 

curr: union  next: BB  

curr: girl  next: ID  
declaration-list union-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: ID  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 10  

curr: 10  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: NULL  
declaration-list declaration 
declaration-list 
translation-unit 
1.3、总结说明
无论数组是多少维度,每个维度的归约过程都是一样一样的!没有区别。由于(expression),id, string, 常量会归约到primary-expression。因此,从文法上讲,数组的定义中可以出现表达式和变量。但是后期编译要为数组分配空间,而变量需要计算才能知道大小,因此是不能在数组定义时候使用变量的!

2、指针归约

2.1、示例代码
static int *ip;
signed char *str;
char **str;
void *vp;
int *a;
int ****a;
struct AA *boy;
struct AA **boy;
struct AA ****boy;
union BB *girl;
union BB **girl;
2.2、归约过程
curr: static  next: int  
storage-class-specifier 

curr: int  next: *  
storage-class-specifier type-specifier 
storage-class-specifier declaration-specifiers 
declaration-specifiers 

curr: *  next: ip  
declaration-specifiers pointer 

curr: ID  next: ;  
declaration-specifiers pointer direct-declarator 
declaration-specifiers declarator 
declaration-specifiers init-declarator 
declaration-specifiers init-declarator-list 

curr: ;  next: signed  
declaration 
declaration-list 

curr: signed  next: char  
declaration-list type-specifier 

curr: char  next: *  
declaration-list type-specifier type-specifier 
declaration-list type-specifier declaration-specifiers 
declaration-list declaration-specifiers 

curr: *  next: str  
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: char  
declaration-list declaration 
declaration-list 

curr: char  next: *  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: *  

curr: *  next: str  
declaration-list declaration-specifiers * pointer 
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: void  
declaration-list declaration 
declaration-list 

curr: void  next: *  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: vp  
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: int  
declaration-list declaration 
declaration-list 

curr: int  next: *  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: a  
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: int  
declaration-list declaration 
declaration-list 

curr: int  next: *  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: *  

curr: *  next: *  

curr: *  next: *  

curr: *  next: a  
declaration-list declaration-specifiers * * * pointer 
declaration-list declaration-specifiers * * pointer 
declaration-list declaration-specifiers * pointer 
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: struct  
declaration-list declaration 
declaration-list 

curr: struct  next: AA  

curr: ID  next: *  
declaration-list struct-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: boy  
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: struct  
declaration-list declaration 
declaration-list 

curr: struct  next: AA  

curr: ID  next: *  
declaration-list struct-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: *  

curr: *  next: boy  
declaration-list declaration-specifiers * pointer 
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: struct  
declaration-list declaration 
declaration-list 

curr: struct  next: AA  

curr: ID  next: *  
declaration-list struct-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: *  

curr: *  next: *  

curr: *  next: *  

curr: *  next: boy  
declaration-list declaration-specifiers * * * pointer 
declaration-list declaration-specifiers * * pointer 
declaration-list declaration-specifiers * pointer 
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: union  
declaration-list declaration 
declaration-list 

curr: union  next: BB  

curr: ID  next: *  
declaration-list union-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: girl  
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: union  
declaration-list declaration 
declaration-list 

curr: union  next: BB  

curr: ID  next: *  
declaration-list union-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: *  

curr: *  next: girl  
declaration-list declaration-specifiers * pointer 
declaration-list declaration-specifiers pointer 

curr: ID  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: NULL  
declaration-list declaration 
declaration-list 
translation-unit 
2.3、总结说明
指针定义前面挂多少个星都无妨,只要你愿意挂千万,文法照样解析。只是使用产生式poiner->*pointer迭代次数多点而已!

3、指针和数组的一起归约

3.1、示例代码
int *a[11];
int (**a)[5];
int (*a)[5][4];
int *a[11][22];
char **a[2];
char ***a[2];
struct AA *boy[11];
struct AA **boy[11][22];
struct AA (*boy)[11];
struct AA (**boy)[11];
union BB *girl[10][22];
union BB **girl[10];
3.2、归约过程
curr: int  next: *  
type-specifier 
declaration-specifiers 

curr: *  next: a  
declaration-specifiers pointer 

curr: ID  next: [  
declaration-specifiers pointer direct-declarator 

curr: [  next: 11  

curr: 11  next: ]  
declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-specifiers pointer direct-declarator 
declaration-specifiers declarator 
declaration-specifiers init-declarator 
declaration-specifiers init-declarator-list 

curr: ;  next: int  
declaration 
declaration-list 

curr: int  next: (  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: (  next: *  

curr: *  next: *  

curr: *  next: a  
declaration-list declaration-specifiers ( * pointer 
declaration-list declaration-specifiers ( pointer 

curr: ID  next: )  
declaration-list declaration-specifiers ( pointer direct-declarator 
declaration-list declaration-specifiers ( declarator 

curr: )  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 5  

curr: 5  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: int  
declaration-list declaration 
declaration-list 

curr: int  next: (  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: (  next: *  

curr: *  next: a  
declaration-list declaration-specifiers ( pointer 

curr: ID  next: )  
declaration-list declaration-specifiers ( pointer direct-declarator 
declaration-list declaration-specifiers ( declarator 

curr: )  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 5  

curr: 5  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 4  

curr: 4  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: int  
declaration-list declaration 
declaration-list 

curr: int  next: *  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: a  
declaration-list declaration-specifiers pointer 

curr: ID  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 11  

curr: 11  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 22  

curr: 22  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: char  
declaration-list declaration 
declaration-list 

curr: char  next: *  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: *  

curr: *  next: a  
declaration-list declaration-specifiers * pointer 
declaration-list declaration-specifiers pointer 

curr: ID  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 2  

curr: 2  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: char  
declaration-list declaration 
declaration-list 

curr: char  next: *  
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: *  

curr: *  next: *  

curr: *  next: a  
declaration-list declaration-specifiers * * pointer 
declaration-list declaration-specifiers * pointer 
declaration-list declaration-specifiers pointer 

curr: ID  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 2  

curr: 2  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: struct  
declaration-list declaration 
declaration-list 

curr: struct  next: AA  

curr: ID  next: *  
declaration-list struct-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: boy  
declaration-list declaration-specifiers pointer 

curr: ID  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 11  

curr: 11  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: struct  
declaration-list declaration 
declaration-list 

curr: struct  next: AA  

curr: ID  next: *  
declaration-list struct-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: *  

curr: *  next: boy  
declaration-list declaration-specifiers * pointer 
declaration-list declaration-specifiers pointer 

curr: ID  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 11  

curr: 11  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 22  

curr: 22  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: struct  
declaration-list declaration 
declaration-list 

curr: struct  next: AA  

curr: ID  next: (  
declaration-list struct-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: (  next: *  

curr: *  next: boy  
declaration-list declaration-specifiers ( pointer 

curr: ID  next: )  
declaration-list declaration-specifiers ( pointer direct-declarator 
declaration-list declaration-specifiers ( declarator 

curr: )  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 11  

curr: 11  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: struct  
declaration-list declaration 
declaration-list 

curr: struct  next: AA  

curr: ID  next: (  
declaration-list struct-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: (  next: *  

curr: *  next: *  

curr: *  next: boy  
declaration-list declaration-specifiers ( * pointer 
declaration-list declaration-specifiers ( pointer 

curr: ID  next: )  
declaration-list declaration-specifiers ( pointer direct-declarator 
declaration-list declaration-specifiers ( declarator 

curr: )  next: [  
declaration-list declaration-specifiers direct-declarator 

curr: [  next: 11  

curr: 11  next: ]  
declaration-list declaration-specifiers direct-declarator [ primary-expression 
declaration-list declaration-specifiers direct-declarator [ postfix-expression 
declaration-list declaration-specifiers direct-declarator [ unary-expression 
declaration-list declaration-specifiers direct-declarator [ cast-expression 
declaration-list declaration-specifiers direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers direct-declarator [ additive-expression 
declaration-list declaration-specifiers direct-declarator [ shift-expression 
declaration-list declaration-specifiers direct-declarator [ relational-expression 
declaration-list declaration-specifiers direct-declarator [ equality-expression 
declaration-list declaration-specifiers direct-declarator [ AND-expression 
declaration-list declaration-specifiers direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers direct-declarator [ conditional-expression 
declaration-list declaration-specifiers direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: union  
declaration-list declaration 
declaration-list 

curr: union  next: BB  

curr: ID  next: *  
declaration-list union-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: girl  
declaration-list declaration-specifiers pointer 

curr: ID  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 10  

curr: 10  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 22  

curr: 22  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: union  
declaration-list declaration 
declaration-list 

curr: union  next: BB  

curr: ID  next: *  
declaration-list union-specifier 
declaration-list type-specifier 
declaration-list declaration-specifiers 

curr: *  next: *  

curr: *  next: girl  
declaration-list declaration-specifiers * pointer 
declaration-list declaration-specifiers pointer 

curr: ID  next: [  
declaration-list declaration-specifiers pointer direct-declarator 

curr: [  next: 10  

curr: 10  next: ]  
declaration-list declaration-specifiers pointer direct-declarator [ primary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ postfix-expression 
declaration-list declaration-specifiers pointer direct-declarator [ unary-expression 
declaration-list declaration-specifiers pointer direct-declarator [ cast-expression 
declaration-list declaration-specifiers pointer direct-declarator [ multiplicative-expression 
declaration-list declaration-specifiers pointer direct-declarator [ additive-expression 
declaration-list declaration-specifiers pointer direct-declarator [ shift-expression 
declaration-list declaration-specifiers pointer direct-declarator [ relational-expression 
declaration-list declaration-specifiers pointer direct-declarator [ equality-expression 
declaration-list declaration-specifiers pointer direct-declarator [ AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ exclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ inclusive-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-AND-expression 
declaration-list declaration-specifiers pointer direct-declarator [ logical-OR-expression 
declaration-list declaration-specifiers pointer direct-declarator [ conditional-expression 
declaration-list declaration-specifiers pointer direct-declarator [ assignment-expression 

curr: ]  next: ;  
declaration-list declaration-specifiers pointer direct-declarator 
declaration-list declaration-specifiers declarator 
declaration-list declaration-specifiers init-declarator 
declaration-list declaration-specifiers init-declarator-list 

curr: ;  next: NULL  
declaration-list declaration 
declaration-list 
translation-unit 
3.3、总结说明
(*a)*a 都归约到direct-declarator。它的区分在归约过程上,以及后期类型解析上!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值