📄 grammar.output
字号:
0 $accept : program $end 1 program : 2 | translation_unit 3 translation_unit : external_declaration 4 | translation_unit external_declaration 5 external_declaration : declaration 6 | function_definition 7 | ';' 8 | linkage_specification 9 | T_ASM T_ASMARG ';' 10 | error T_MATCHRBRACE 11 | error ';' 12 braces : T_LBRACE T_MATCHRBRACE 13 linkage_specification : T_EXTERN T_STRING_LITERAL braces 14 | T_EXTERN T_STRING_LITERAL declaration 15 declaration : decl_specifiers ';' 16 | decl_specifiers init_declarator_list ';' 17 $$1 : 18 declaration : any_typedef decl_specifiers $$1 opt_declarator_list ';' 19 any_typedef : T_EXTENSION T_TYPEDEF 20 | T_TYPEDEF 21 opt_declarator_list : 22 | declarator_list 23 declarator_list : declarator 24 | declarator_list ',' declarator 25 $$2 : 26 $$3 : 27 function_definition : decl_specifiers declarator $$2 opt_declaration_list T_LBRACE $$3 T_MATCHRBRACE 28 $$4 : 29 function_definition : declarator $$4 opt_declaration_list T_LBRACE T_MATCHRBRACE 30 opt_declaration_list : 31 | T_VA_DCL 32 | declaration_list 33 declaration_list : declaration 34 | declaration_list declaration 35 decl_specifiers : decl_specifier 36 | decl_specifiers decl_specifier 37 decl_specifier : storage_class 38 | type_specifier 39 | type_qualifier 40 storage_class : T_AUTO 41 | T_EXTERN 42 | T_REGISTER 43 | T_STATIC 44 | T_INLINE 45 | T_EXTENSION 46 type_specifier : T_CHAR 47 | T_DOUBLE 48 | T_FLOAT 49 | T_INT 50 | T_LONG 51 | T_SHORT 52 | T_SIGNED 53 | T_UNSIGNED 54 | T_VOID 55 | T_Bool 56 | T_Complex 57 | T_Imaginary 58 | T_TYPEDEF_NAME 59 | struct_or_union_specifier 60 | enum_specifier 61 type_qualifier : T_TYPE_QUALIFIER 62 | T_DEFINE_NAME 63 struct_or_union_specifier : struct_or_union any_id braces 64 | struct_or_union braces 65 | struct_or_union any_id 66 struct_or_union : T_STRUCT 67 | T_UNION 68 init_declarator_list : init_declarator 69 | init_declarator_list ',' init_declarator 70 init_declarator : declarator 71 $$5 : 72 init_declarator : declarator '=' $$5 T_INITIALIZER 73 enum_specifier : enumeration any_id braces 74 | enumeration braces 75 | enumeration any_id 76 enumeration : T_ENUM 77 any_id : T_IDENTIFIER 78 | T_TYPEDEF_NAME 79 declarator : pointer direct_declarator 80 | direct_declarator 81 direct_declarator : identifier_or_ref 82 | '(' declarator ')' 83 | direct_declarator T_BRACKETS 84 | direct_declarator '(' parameter_type_list ')' 85 | direct_declarator '(' opt_identifier_list ')' 86 pointer : '*' opt_type_qualifiers 87 | '*' opt_type_qualifiers pointer 88 opt_type_qualifiers : 89 | type_qualifier_list 90 type_qualifier_list : type_qualifier 91 | type_qualifier_list type_qualifier 92 parameter_type_list : parameter_list 93 | parameter_list ',' T_ELLIPSIS 94 parameter_list : parameter_declaration 95 | parameter_list ',' parameter_declaration 96 parameter_declaration : decl_specifiers declarator 97 | decl_specifiers abs_declarator 98 | decl_specifiers 99 opt_identifier_list : 100 | identifier_list 101 identifier_list : any_id 102 | identifier_list ',' any_id 103 identifier_or_ref : any_id 104 | '&' any_id 105 abs_declarator : pointer 106 | pointer direct_abs_declarator 107 | direct_abs_declarator 108 direct_abs_declarator : '(' abs_declarator ')' 109 | direct_abs_declarator T_BRACKETS 110 | T_BRACKETS 111 | direct_abs_declarator '(' parameter_type_list ')' 112 | direct_abs_declarator '(' ')' 113 | '(' parameter_type_list ')' 114 | '(' ')'state 0 $accept : . program $end (0) program : . (1) error shift 1 '(' shift 2 '*' shift 3 '&' shift 4 T_IDENTIFIER shift 5 T_TYPEDEF_NAME shift 6 T_DEFINE_NAME shift 7 T_AUTO shift 8 T_EXTERN shift 9 T_REGISTER shift 10 T_STATIC shift 11 T_TYPEDEF shift 12 T_INLINE shift 13 T_EXTENSION shift 14 T_CHAR shift 15 T_DOUBLE shift 16 T_FLOAT shift 17 T_INT shift 18 T_VOID shift 19 T_LONG shift 20 T_SHORT shift 21 T_SIGNED shift 22 T_UNSIGNED shift 23 T_ENUM shift 24 T_STRUCT shift 25 T_UNION shift 26 T_Bool shift 27 T_Complex shift 28 T_Imaginary shift 29 T_TYPE_QUALIFIER shift 30 T_ASM shift 31 ';' shift 32 $end reduce 1 program goto 33 decl_specifiers goto 34 decl_specifier goto 35 storage_class goto 36 type_specifier goto 37 type_qualifier goto 38 struct_or_union_specifier goto 39 enum_specifier goto 40 declarator goto 41 direct_declarator goto 42 struct_or_union goto 43 pointer goto 44 any_id goto 45 identifier_or_ref goto 46 enumeration goto 47 translation_unit goto 48 external_declaration goto 49 declaration goto 50 function_definition goto 51 linkage_specification goto 52 any_typedef goto 53state 1 external_declaration : error . T_MATCHRBRACE (10) external_declaration : error . ';' (11) T_MATCHRBRACE shift 54 ';' shift 55 . errorstate 2 direct_declarator : '(' . declarator ')' (82) '(' shift 2 '*' shift 3 '&' shift 4 T_IDENTIFIER shift 5 T_TYPEDEF_NAME shift 56 . error declarator goto 57 direct_declarator goto 42 pointer goto 44 any_id goto 45 identifier_or_ref goto 46state 3 pointer : '*' . opt_type_qualifiers (86) pointer : '*' . opt_type_qualifiers pointer (87) opt_type_qualifiers : . (88) T_DEFINE_NAME shift 7 T_TYPE_QUALIFIER shift 30 '(' reduce 88 '*' reduce 88 '&' reduce 88 T_IDENTIFIER reduce 88 T_TYPEDEF_NAME reduce 88 T_BRACKETS reduce 88 ',' reduce 88 ')' reduce 88 type_qualifier goto 58 opt_type_qualifiers goto 59 type_qualifier_list goto 60state 4 identifier_or_ref : '&' . any_id (104) T_IDENTIFIER shift 5 T_TYPEDEF_NAME shift 56 . error any_id goto 61state 5 any_id : T_IDENTIFIER . (77) . reduce 776: reduce/reduce conflict (reduce 58, reduce 78) on '('6: reduce/reduce conflict (reduce 58, reduce 78) on T_TYPEDEF_NAME6: reduce/reduce conflict (reduce 58, reduce 78) on T_DEFINE_NAME6: reduce/reduce conflict (reduce 58, reduce 78) on T_AUTO6: reduce/reduce conflict (reduce 58, reduce 78) on T_EXTERN6: reduce/reduce conflict (reduce 58, reduce 78) on T_REGISTER6: reduce/reduce conflict (reduce 58, reduce 78) on T_STATIC6: reduce/reduce conflict (reduce 58, reduce 78) on T_INLINE6: reduce/reduce conflict (reduce 58, reduce 78) on T_EXTENSION6: reduce/reduce conflict (reduce 58, reduce 78) on T_CHAR6: reduce/reduce conflict (reduce 58, reduce 78) on T_DOUBLE6: reduce/reduce conflict (reduce 58, reduce 78) on T_FLOAT6: reduce/reduce conflict (reduce 58, reduce 78) on T_INT6: reduce/reduce conflict (reduce 58, reduce 78) on T_VOID6: reduce/reduce conflict (reduce 58, reduce 78) on T_LONG6: reduce/reduce conflict (reduce 58, reduce 78) on T_SHORT6: reduce/reduce conflict (reduce 58, reduce 78) on T_SIGNED6: reduce/reduce conflict (reduce 58, reduce 78) on T_UNSIGNED6: reduce/reduce conflict (reduce 58, reduce 78) on T_ENUM6: reduce/reduce conflict (reduce 58, reduce 78) on T_STRUCT6: reduce/reduce conflict (reduce 58, reduce 78) on T_UNION6: reduce/reduce conflict (reduce 58, reduce 78) on T_Bool6: reduce/reduce conflict (reduce 58, reduce 78) on T_Complex6: reduce/reduce conflict (reduce 58, reduce 78) on T_Imaginary6: reduce/reduce conflict (reduce 58, reduce 78) on T_TYPE_QUALIFIER6: reduce/reduce conflict (reduce 58, reduce 78) on T_BRACKETS6: reduce/reduce conflict (reduce 58, reduce 78) on ';'6: reduce/reduce conflict (reduce 58, reduce 78) on ','6: reduce/reduce conflict (reduce 58, reduce 78) on ')'state 6 type_specifier : T_TYPEDEF_NAME . (58) any_id : T_TYPEDEF_NAME . (78) '(' reduce 58 '*' reduce 58 '&' reduce 58 T_IDENTIFIER reduce 58 T_TYPEDEF_NAME reduce 58 T_DEFINE_NAME reduce 58 T_AUTO reduce 58 T_EXTERN reduce 58 T_REGISTER reduce 58 T_STATIC reduce 58 T_TYPEDEF reduce 78 T_INLINE reduce 58 T_EXTENSION reduce 58 T_CHAR reduce 58 T_DOUBLE reduce 58 T_FLOAT reduce 58 T_INT reduce 58 T_VOID reduce 58 T_LONG reduce 58 T_SHORT reduce 58 T_SIGNED reduce 58 T_UNSIGNED reduce 58 T_ENUM reduce 58 T_STRUCT reduce 58 T_UNION reduce 58 T_Bool reduce 58 T_Complex reduce 58 T_Imaginary reduce 58 T_TYPE_QUALIFIER reduce 58 T_BRACKETS reduce 58 T_LBRACE reduce 78 T_VA_DCL reduce 78 ';' reduce 58 ',' reduce 58 '=' reduce 78 ')' reduce 58state 7 type_qualifier : T_DEFINE_NAME . (62) . reduce 62state 8 storage_class : T_AUTO . (40) . reduce 40state 9 linkage_specification : T_EXTERN . T_STRING_LITERAL braces (13) linkage_specification : T_EXTERN . T_STRING_LITERAL declaration (14) storage_class : T_EXTERN . (41) T_STRING_LITERAL shift 62 '(' reduce 41 '*' reduce 41 '&' reduce 41 T_IDENTIFIER reduce 41 T_TYPEDEF_NAME reduce 41 T_DEFINE_NAME reduce 41 T_AUTO reduce 41 T_EXTERN reduce 41 T_REGISTER reduce 41 T_STATIC reduce 41 T_INLINE reduce 41 T_EXTENSION reduce 41 T_CHAR reduce 41 T_DOUBLE reduce 41 T_FLOAT reduce 41 T_INT reduce 41 T_VOID reduce 41 T_LONG reduce 41 T_SHORT reduce 41 T_SIGNED reduce 41 T_UNSIGNED reduce 41 T_ENUM reduce 41 T_STRUCT reduce 41 T_UNION reduce 41 T_Bool reduce 41 T_Complex reduce 41 T_Imaginary reduce 41 T_TYPE_QUALIFIER reduce 41 ';' reduce 41state 10 storage_class : T_REGISTER . (42) . reduce 42state 11 storage_class : T_STATIC . (43) . reduce 43state 12 any_typedef : T_TYPEDEF . (20) . reduce 20state 13 storage_class : T_INLINE . (44) . reduce 44state 14 any_typedef : T_EXTENSION . T_TYPEDEF (19) storage_class : T_EXTENSION . (45) T_TYPEDEF shift 63 '(' reduce 45 '*' reduce 45 '&' reduce 45 T_IDENTIFIER reduce 45 T_TYPEDEF_NAME reduce 45 T_DEFINE_NAME reduce 45 T_AUTO reduce 45 T_EXTERN reduce 45 T_REGISTER reduce 45 T_STATIC reduce 45 T_INLINE reduce 45 T_EXTENSION reduce 45 T_CHAR reduce 45 T_DOUBLE reduce 45 T_FLOAT reduce 45 T_INT reduce 45 T_VOID reduce 45 T_LONG reduce 45 T_SHORT reduce 45 T_SIGNED reduce 45 T_UNSIGNED reduce 45 T_ENUM reduce 45 T_STRUCT reduce 45 T_UNION reduce 45 T_Bool reduce 45 T_Complex reduce 45 T_Imaginary reduce 45 T_TYPE_QUALIFIER reduce 45 ';' reduce 45state 15 type_specifier : T_CHAR . (46) . reduce 46state 16 type_specifier : T_DOUBLE . (47) . reduce 47state 17 type_specifier : T_FLOAT . (48) . reduce 48state 18 type_specifier : T_INT . (49) . reduce 49state 19 type_specifier : T_VOID . (54) . reduce 54state 20 type_specifier : T_LONG . (50) . reduce 50state 21 type_specifier : T_SHORT . (51) . reduce 51state 22 type_specifier : T_SIGNED . (52) . reduce 52state 23 type_specifier : T_UNSIGNED . (53) . reduce 53state 24 enumeration : T_ENUM . (76) . reduce 76state 25 struct_or_union : T_STRUCT . (66) . reduce 66state 26 struct_or_union : T_UNION . (67) . reduce 67state 27 type_specifier : T_Bool . (55) . reduce 55state 28 type_specifier : T_Complex . (56) . reduce 56state 29 type_specifier : T_Imaginary . (57) . reduce 57state 30 type_qualifier : T_TYPE_QUALIFIER . (61) . reduce 61state 31 external_declaration : T_ASM . T_ASMARG ';' (9) T_ASMARG shift 64 . errorstate 32 external_declaration : ';' . (7) . reduce 7state 33 $accept : program . $end (0) $end acceptstate 34 declaration : decl_specifiers . ';' (15) declaration : decl_specifiers . init_declarator_list ';' (16) function_definition : decl_specifiers . declarator $$2 opt_declaration_list T_LBRACE $$3 T_MATCHRBRACE (27) decl_specifiers : decl_specifiers . decl_specifier (36) '(' shift 2 '*' shift 3 '&' shift 4 T_IDENTIFIER shift 5 T_TYPEDEF_NAME shift 6 T_DEFINE_NAME shift 7 T_AUTO shift 8 T_EXTERN shift 65 T_REGISTER shift 10 T_STATIC shift 11 T_INLINE shift 13 T_EXTENSION shift 66 T_CHAR shift 15 T_DOUBLE shift 16 T_FLOAT shift 17 T_INT shift 18 T_VOID shift 19 T_LONG shift 20 T_SHORT shift 21 T_SIGNED shift 22 T_UNSIGNED shift 23 T_ENUM shift 24 T_STRUCT shift 25 T_UNION shift 26 T_Bool shift 27 T_Complex shift 28 T_Imaginary shift 29 T_TYPE_QUALIFIER shift 30 ';' shift 67 . error decl_specifier goto 68 storage_class goto 36 type_specifier goto 37 type_qualifier goto 38 struct_or_union_specifier goto 39 enum_specifier goto 40 init_declarator_list goto 69 init_declarator goto 70 declarator goto 71 direct_declarator goto 42 struct_or_union goto 43 pointer goto 44 any_id goto 45 identifier_or_ref goto 46 enumeration goto 47state 35 decl_specifiers : decl_specifier . (35) . reduce 35state 36 decl_specifier : storage_class . (37) . reduce 37state 37 decl_specifier : type_specifier . (38) . reduce 38state 38 decl_specifier : type_qualifier . (39) . reduce 39state 39 type_specifier : struct_or_union_specifier . (59) . reduce 59state 40 type_specifier : enum_specifier . (60) . reduce 60state 41 function_definition : declarator . $$4 opt_declaration_list T_LBRACE T_MATCHRBRACE (29) $$4 : . (28) . reduce 28 $$4 goto 72state 42 declarator : direct_declarator . (80) direct_declarator : direct_declarator . T_BRACKETS (83) direct_declarator : direct_declarator . '(' parameter_type_list ')' (84) direct_declarator : direct_declarator . '(' opt_identifier_list ')' (85) '(' shift 73 T_BRACKETS shift 74 T_TYPEDEF_NAME reduce 80 T_DEFINE_NAME reduce 80 T_AUTO reduce 80 T_EXTERN reduce 80 T_REGISTER reduce 80 T_STATIC reduce 80 T_TYPEDEF reduce 80 T_INLINE reduce 80 T_EXTENSION reduce 80 T_CHAR reduce 80 T_DOUBLE reduce 80 T_FLOAT reduce 80 T_INT reduce 80 T_VOID reduce 80 T_LONG reduce 80 T_SHORT reduce 80 T_SIGNED reduce 80 T_UNSIGNED reduce 80 T_ENUM reduce 80 T_STRUCT reduce 80 T_UNION reduce 80 T_Bool reduce 80 T_Complex reduce 80 T_Imaginary reduce 80 T_TYPE_QUALIFIER reduce 80 T_LBRACE reduce 80 T_VA_DCL reduce 80 ';' reduce 80 ',' reduce 80 '=' reduce 80 ')' reduce 80state 43 struct_or_union_specifier : struct_or_union . any_id braces (63) struct_or_union_specifier : struct_or_union . braces (64) struct_or_union_specifier : struct_or_union . any_id (65) T_IDENTIFIER shift 5 T_TYPEDEF_NAME shift 56 T_LBRACE shift 75 . error any_id goto 76 braces goto 77state 44 declarator : pointer . direct_declarator (79) '(' shift 2 '&' shift 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -