state 0 $accept: .specification $end CONST shift 11 ENUM shift 10 STRUCT shift 13 TYPEDEF shift 12 UNION shift 14 PROGRAM shift 15 . error specification goto 1 definition_list goto 2 definition goto 3 enum_definition goto 4 const_definition goto 5 typedef_definition goto 6 struct_definition goto 7 union_definition goto 8 program_definition goto 9 state 1 $accept: specification.$end $end accept . error state 2 specification: definition_list. (1) . reduce 1 (src line 63) state 3 definition_list: definition.';' definition_list: definition.';' definition_list ';' shift 16 . error state 4 definition: enum_definition. (6) . reduce 6 (src line 77) state 5 definition: const_definition. (7) . reduce 7 (src line 79) state 6 definition: typedef_definition. (8) . reduce 8 (src line 80) state 7 definition: struct_definition. (9) . reduce 9 (src line 81) state 8 definition: union_definition. (10) . reduce 10 (src line 82) state 9 definition: program_definition. (11) . reduce 11 (src line 83) state 10 enum_definition: ENUM.enum_ident '{' enum_value_list '}' IDENTIFIER shift 18 . error enum_ident goto 17 state 11 const_definition: CONST.const_ident '=' IDENTIFIER const_definition: CONST.const_ident '=' CONSTANT IDENTIFIER shift 20 . error const_ident goto 19 state 12 typedef_definition: TYPEDEF.$$23 declaration $$23: . (23) . reduce 23 (src line 145) $$23 goto 21 state 13 struct_definition: STRUCT.struct_ident '{' $$50 declaration_list '}' IDENTIFIER shift 23 . error struct_ident goto 22 state 14 union_definition: UNION.union_ident $$55 SWITCH '(' simple_declaration ')' '{' case_list '}' IDENTIFIER shift 25 . error union_ident goto 24 state 15 program_definition: PROGRAM.program_ident '{' version_list '}' '=' value IDENTIFIER shift 27 . error program_ident goto 26 state 16 definition_list: definition ';'. (4) definition_list: definition ';'.definition_list CONST shift 11 ENUM shift 10 STRUCT shift 13 TYPEDEF shift 12 UNION shift 14 PROGRAM shift 15 . reduce 4 (src line 72) definition_list goto 28 definition goto 3 enum_definition goto 4 const_definition goto 5 typedef_definition goto 6 struct_definition goto 7 union_definition goto 8 program_definition goto 9 state 17 enum_definition: ENUM enum_ident.'{' enum_value_list '}' '{' shift 29 . error state 18 enum_ident: IDENTIFIER. (18) . reduce 18 (src line 119) state 19 const_definition: CONST const_ident.'=' IDENTIFIER const_definition: CONST const_ident.'=' CONSTANT '=' shift 30 . error state 20 const_ident: IDENTIFIER. (22) . reduce 22 (src line 141) state 21 typedef_definition: TYPEDEF $$23.declaration BOOL shift 41 DOUBLE shift 40 ENUM shift 10 FLOAT shift 39 OPAQUE shift 43 STRING shift 42 STRUCT shift 13 UNION shift 14 UNSIGNED shift 38 HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 IDENTIFIER shift 47 . error enum_definition goto 44 struct_definition goto 45 union_definition goto 46 declaration goto 31 simple_declaration goto 32 fixed_array_declaration goto 33 variable_array_declaration goto 34 pointer_declaration goto 35 type_specifier goto 36 int_spec goto 37 state 22 struct_definition: STRUCT struct_ident.'{' $$50 declaration_list '}' '{' shift 52 . error state 23 struct_ident: IDENTIFIER. (52) . reduce 52 (src line 206) state 24 union_definition: UNION union_ident.$$55 SWITCH '(' simple_declaration ')' '{' case_list '}' $$55: . (55) . reduce 55 (src line 215) $$55 goto 53 state 25 union_ident: IDENTIFIER. (57) . reduce 57 (src line 219) state 26 program_definition: PROGRAM program_ident.'{' version_list '}' '=' value '{' shift 54 . error state 27 program_ident: IDENTIFIER. (65) . reduce 65 (src line 237) state 28 definition_list: definition ';' definition_list. (5) . reduce 5 (src line 74) state 29 enum_definition: ENUM enum_ident '{'.enum_value_list '}' IDENTIFIER shift 59 METADATACOMMENT shift 58 . error enum_value_list goto 55 enum_value goto 56 enum_value_ident goto 57 state 30 const_definition: CONST const_ident '='.IDENTIFIER const_definition: CONST const_ident '='.CONSTANT IDENTIFIER shift 60 CONSTANT shift 61 . error state 31 typedef_definition: TYPEDEF $$23 declaration. (24) . reduce 24 (src line 146) state 32 declaration: simple_declaration. (25) . reduce 25 (src line 149) state 33 declaration: fixed_array_declaration. (26) . reduce 26 (src line 151) state 34 declaration: variable_array_declaration. (27) . reduce 27 (src line 152) state 35 declaration: pointer_declaration. (28) . reduce 28 (src line 153) state 36 simple_declaration: type_specifier.variable_ident fixed_array_declaration: type_specifier.variable_ident '[' value ']' variable_array_declaration: type_specifier.variable_ident '<' value '>' variable_array_declaration: type_specifier.variable_ident '<' '>' pointer_declaration: type_specifier.'*' variable_ident IDENTIFIER shift 64 '*' shift 63 . error variable_ident goto 62 state 37 type_specifier: int_spec. (30) . reduce 30 (src line 160) state 38 type_specifier: UNSIGNED.int_spec HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 . error int_spec goto 65 state 39 type_specifier: FLOAT. (32) . reduce 32 (src line 163) state 40 type_specifier: DOUBLE. (33) . reduce 33 (src line 164) state 41 type_specifier: BOOL. (34) . reduce 34 (src line 165) state 42 type_specifier: STRING. (35) . reduce 35 (src line 166) state 43 type_specifier: OPAQUE. (36) . reduce 36 (src line 167) state 44 type_specifier: enum_definition. (37) . reduce 37 (src line 168) state 45 type_specifier: struct_definition. (38) . reduce 38 (src line 169) state 46 type_specifier: union_definition. (39) . reduce 39 (src line 170) state 47 type_specifier: IDENTIFIER. (40) . reduce 40 (src line 171) state 48 int_spec: HYPER. (41) . reduce 41 (src line 174) state 49 int_spec: INT. (42) . reduce 42 (src line 176) state 50 int_spec: SHORT. (43) . reduce 43 (src line 177) state 51 int_spec: CHAR. (44) . reduce 44 (src line 178) state 52 struct_definition: STRUCT struct_ident '{'.$$50 declaration_list '}' $$50: . (50) . reduce 50 (src line 202) $$50 goto 66 state 53 union_definition: UNION union_ident $$55.SWITCH '(' simple_declaration ')' '{' case_list '}' SWITCH shift 67 . error state 54 program_definition: PROGRAM program_ident '{'.version_list '}' '=' value VERSION shift 70 . error version_list goto 68 version goto 69 state 55 enum_definition: ENUM enum_ident '{' enum_value_list.'}' '}' shift 71 . error state 56 enum_value_list: enum_value. (13) enum_value_list: enum_value.',' enum_value_list ',' shift 72 . reduce 13 (src line 90) state 57 enum_value: enum_value_ident. (15) enum_value: enum_value_ident.'=' value '=' shift 73 . reduce 15 (src line 95) state 58 enum_value: METADATACOMMENT.enum_value_ident '=' value IDENTIFIER shift 59 . error enum_value_ident goto 74 state 59 enum_value_ident: IDENTIFIER. (19) . reduce 19 (src line 123) state 60 const_definition: CONST const_ident '=' IDENTIFIER. (20) . reduce 20 (src line 130) state 61 const_definition: CONST const_ident '=' CONSTANT. (21) . reduce 21 (src line 132) state 62 simple_declaration: type_specifier variable_ident. (29) fixed_array_declaration: type_specifier variable_ident.'[' value ']' variable_array_declaration: type_specifier variable_ident.'<' value '>' variable_array_declaration: type_specifier variable_ident.'<' '>' '[' shift 75 '<' shift 76 . reduce 29 (src line 156) state 63 pointer_declaration: type_specifier '*'.variable_ident IDENTIFIER shift 64 . error variable_ident goto 77 state 64 variable_ident: IDENTIFIER. (45) . reduce 45 (src line 181) state 65 type_specifier: UNSIGNED int_spec. (31) . reduce 31 (src line 162) state 66 struct_definition: STRUCT struct_ident '{' $$50.declaration_list '}' BOOL shift 41 DOUBLE shift 40 ENUM shift 10 FLOAT shift 39 OPAQUE shift 43 STRING shift 42 STRUCT shift 13 UNION shift 14 UNSIGNED shift 38 HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 IDENTIFIER shift 47 . error enum_definition goto 44 struct_definition goto 45 union_definition goto 46 declaration goto 79 simple_declaration goto 32 fixed_array_declaration goto 33 variable_array_declaration goto 34 pointer_declaration goto 35 type_specifier goto 36 int_spec goto 37 declaration_list goto 78 state 67 union_definition: UNION union_ident $$55 SWITCH.'(' simple_declaration ')' '{' case_list '}' '(' shift 80 . error state 68 program_definition: PROGRAM program_ident '{' version_list.'}' '=' value '}' shift 81 . error state 69 version_list: version.';' version_list: version.';' version_list ';' shift 82 . error state 70 version: VERSION.version_ident '{' procedure_list '}' '=' value ';' IDENTIFIER shift 84 . error version_ident goto 83 state 71 enum_definition: ENUM enum_ident '{' enum_value_list '}'. (12) . reduce 12 (src line 86) state 72 enum_value_list: enum_value ','.enum_value_list IDENTIFIER shift 59 METADATACOMMENT shift 58 . error enum_value_list goto 85 enum_value goto 56 enum_value_ident goto 57 state 73 enum_value: enum_value_ident '='.value IDENTIFIER shift 87 CONSTANT shift 88 . error value goto 86 state 74 enum_value: METADATACOMMENT enum_value_ident.'=' value '=' shift 89 . error state 75 fixed_array_declaration: type_specifier variable_ident '['.value ']' IDENTIFIER shift 87 CONSTANT shift 88 . error value goto 90 state 76 variable_array_declaration: type_specifier variable_ident '<'.value '>' variable_array_declaration: type_specifier variable_ident '<'.'>' IDENTIFIER shift 87 CONSTANT shift 88 '>' shift 92 . error value goto 91 state 77 pointer_declaration: type_specifier '*' variable_ident. (49) . reduce 49 (src line 198) state 78 struct_definition: STRUCT struct_ident '{' $$50 declaration_list.'}' '}' shift 93 . error state 79 declaration_list: declaration.';' declaration_list: declaration.';' declaration_list ';' shift 94 . error state 80 union_definition: UNION union_ident $$55 SWITCH '('.simple_declaration ')' '{' case_list '}' BOOL shift 41 DOUBLE shift 40 ENUM shift 10 FLOAT shift 39 OPAQUE shift 43 STRING shift 42 STRUCT shift 13 UNION shift 14 UNSIGNED shift 38 HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 IDENTIFIER shift 47 . error enum_definition goto 44 struct_definition goto 45 union_definition goto 46 simple_declaration goto 95 type_specifier goto 96 int_spec goto 37 state 81 program_definition: PROGRAM program_ident '{' version_list '}'.'=' value '=' shift 97 . error state 82 version_list: version ';'. (66) version_list: version ';'.version_list VERSION shift 70 . reduce 66 (src line 241) version_list goto 98 version goto 69 state 83 version: VERSION version_ident.'{' procedure_list '}' '=' value ';' '{' shift 99 . error state 84 version_ident: IDENTIFIER. (69) . reduce 69 (src line 250) state 85 enum_value_list: enum_value ',' enum_value_list. (14) . reduce 14 (src line 92) state 86 enum_value: enum_value_ident '=' value. (17) . reduce 17 (src line 110) state 87 value: IDENTIFIER. (2) . reduce 2 (src line 67) state 88 value: CONSTANT. (3) . reduce 3 (src line 69) state 89 enum_value: METADATACOMMENT enum_value_ident '='.value IDENTIFIER shift 87 CONSTANT shift 88 . error value goto 100 state 90 fixed_array_declaration: type_specifier variable_ident '[' value.']' ']' shift 101 . error state 91 variable_array_declaration: type_specifier variable_ident '<' value.'>' '>' shift 102 . error state 92 variable_array_declaration: type_specifier variable_ident '<' '>'. (48) . reduce 48 (src line 191) state 93 struct_definition: STRUCT struct_ident '{' $$50 declaration_list '}'. (51) . reduce 51 (src line 203) state 94 declaration_list: declaration ';'. (53) declaration_list: declaration ';'.declaration_list BOOL shift 41 DOUBLE shift 40 ENUM shift 10 FLOAT shift 39 OPAQUE shift 43 STRING shift 42 STRUCT shift 13 UNION shift 14 UNSIGNED shift 38 HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 IDENTIFIER shift 47 . reduce 53 (src line 210) enum_definition goto 44 struct_definition goto 45 union_definition goto 46 declaration goto 79 simple_declaration goto 32 fixed_array_declaration goto 33 variable_array_declaration goto 34 pointer_declaration goto 35 type_specifier goto 36 int_spec goto 37 declaration_list goto 103 state 95 union_definition: UNION union_ident $$55 SWITCH '(' simple_declaration.')' '{' case_list '}' ')' shift 104 . error state 96 simple_declaration: type_specifier.variable_ident IDENTIFIER shift 64 . error variable_ident goto 105 state 97 program_definition: PROGRAM program_ident '{' version_list '}' '='.value IDENTIFIER shift 87 CONSTANT shift 88 . error value goto 106 state 98 version_list: version ';' version_list. (67) . reduce 67 (src line 243) state 99 version: VERSION version_ident '{'.procedure_list '}' '=' value ';' BOOL shift 41 DOUBLE shift 40 ENUM shift 10 FLOAT shift 39 OPAQUE shift 43 STRING shift 42 STRUCT shift 13 UNION shift 14 UNSIGNED shift 38 HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 IDENTIFIER shift 47 . error enum_definition goto 44 struct_definition goto 45 union_definition goto 46 type_specifier goto 109 int_spec goto 37 procedure_list goto 107 procedure goto 108 state 100 enum_value: METADATACOMMENT enum_value_ident '=' value. (16) . reduce 16 (src line 103) state 101 fixed_array_declaration: type_specifier variable_ident '[' value ']'. (46) . reduce 46 (src line 185) state 102 variable_array_declaration: type_specifier variable_ident '<' value '>'. (47) . reduce 47 (src line 189) state 103 declaration_list: declaration ';' declaration_list. (54) . reduce 54 (src line 212) state 104 union_definition: UNION union_ident $$55 SWITCH '(' simple_declaration ')'.'{' case_list '}' '{' shift 110 . error state 105 simple_declaration: type_specifier variable_ident. (29) . reduce 29 (src line 156) state 106 program_definition: PROGRAM program_ident '{' version_list '}' '=' value. (64) . reduce 64 (src line 233) state 107 version: VERSION version_ident '{' procedure_list.'}' '=' value ';' '}' shift 111 . error state 108 procedure_list: procedure.';' procedure_list: procedure.';' procedure_list ';' shift 112 . error state 109 procedure: type_specifier.procedure_ident '(' type_specifier ')' '=' value ';' IDENTIFIER shift 114 . error procedure_ident goto 113 state 110 union_definition: UNION union_ident $$55 SWITCH '(' simple_declaration ')' '{'.case_list '}' CASE shift 117 DEFAULT shift 118 . error case_list goto 115 case goto 116 state 111 version: VERSION version_ident '{' procedure_list '}'.'=' value ';' '=' shift 119 . error state 112 procedure_list: procedure ';'. (70) procedure_list: procedure ';'.procedure_list BOOL shift 41 DOUBLE shift 40 ENUM shift 10 FLOAT shift 39 OPAQUE shift 43 STRING shift 42 STRUCT shift 13 UNION shift 14 UNSIGNED shift 38 HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 IDENTIFIER shift 47 . reduce 70 (src line 254) enum_definition goto 44 struct_definition goto 45 union_definition goto 46 type_specifier goto 109 int_spec goto 37 procedure_list goto 120 procedure goto 108 state 113 procedure: type_specifier procedure_ident.'(' type_specifier ')' '=' value ';' '(' shift 121 . error state 114 procedure_ident: IDENTIFIER. (73) . reduce 73 (src line 263) state 115 union_definition: UNION union_ident $$55 SWITCH '(' simple_declaration ')' '{' case_list.'}' '}' shift 122 . error state 116 case_list: case.';' case_list: case.';' case_list ';' shift 123 . error state 117 case: CASE.value $$60 ':' declaration IDENTIFIER shift 87 CONSTANT shift 88 . error value goto 124 state 118 case: DEFAULT.$$62 ':' declaration $$62: . (62) . reduce 62 (src line 230) $$62 goto 125 state 119 version: VERSION version_ident '{' procedure_list '}' '='.value ';' IDENTIFIER shift 87 CONSTANT shift 88 . error value goto 126 state 120 procedure_list: procedure ';' procedure_list. (71) . reduce 71 (src line 256) state 121 procedure: type_specifier procedure_ident '('.type_specifier ')' '=' value ';' BOOL shift 41 DOUBLE shift 40 ENUM shift 10 FLOAT shift 39 OPAQUE shift 43 STRING shift 42 STRUCT shift 13 UNION shift 14 UNSIGNED shift 38 HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 IDENTIFIER shift 47 . error enum_definition goto 44 struct_definition goto 45 union_definition goto 46 type_specifier goto 127 int_spec goto 37 state 122 union_definition: UNION union_ident $$55 SWITCH '(' simple_declaration ')' '{' case_list '}'. (56) . reduce 56 (src line 216) state 123 case_list: case ';'. (58) case_list: case ';'.case_list CASE shift 117 DEFAULT shift 118 . reduce 58 (src line 223) case_list goto 128 case goto 116 state 124 case: CASE value.$$60 ':' declaration $$60: . (60) . reduce 60 (src line 228) $$60 goto 129 state 125 case: DEFAULT $$62.':' declaration ':' shift 130 . error state 126 version: VERSION version_ident '{' procedure_list '}' '=' value.';' ';' shift 131 . error state 127 procedure: type_specifier procedure_ident '(' type_specifier.')' '=' value ';' ')' shift 132 . error state 128 case_list: case ';' case_list. (59) . reduce 59 (src line 225) state 129 case: CASE value $$60.':' declaration ':' shift 133 . error state 130 case: DEFAULT $$62 ':'.declaration BOOL shift 41 DOUBLE shift 40 ENUM shift 10 FLOAT shift 39 OPAQUE shift 43 STRING shift 42 STRUCT shift 13 UNION shift 14 UNSIGNED shift 38 HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 IDENTIFIER shift 47 . error enum_definition goto 44 struct_definition goto 45 union_definition goto 46 declaration goto 134 simple_declaration goto 32 fixed_array_declaration goto 33 variable_array_declaration goto 34 pointer_declaration goto 35 type_specifier goto 36 int_spec goto 37 state 131 version: VERSION version_ident '{' procedure_list '}' '=' value ';'. (68) . reduce 68 (src line 246) state 132 procedure: type_specifier procedure_ident '(' type_specifier ')'.'=' value ';' '=' shift 135 . error state 133 case: CASE value $$60 ':'.declaration BOOL shift 41 DOUBLE shift 40 ENUM shift 10 FLOAT shift 39 OPAQUE shift 43 STRING shift 42 STRUCT shift 13 UNION shift 14 UNSIGNED shift 38 HYPER shift 48 INT shift 49 SHORT shift 50 CHAR shift 51 IDENTIFIER shift 47 . error enum_definition goto 44 struct_definition goto 45 union_definition goto 46 declaration goto 136 simple_declaration goto 32 fixed_array_declaration goto 33 variable_array_declaration goto 34 pointer_declaration goto 35 type_specifier goto 36 int_spec goto 37 state 134 case: DEFAULT $$62 ':' declaration. (63) . reduce 63 (src line 230) state 135 procedure: type_specifier procedure_ident '(' type_specifier ')' '='.value ';' IDENTIFIER shift 87 CONSTANT shift 88 . error value goto 137 state 136 case: CASE value $$60 ':' declaration. (61) . reduce 61 (src line 229) state 137 procedure: type_specifier procedure_ident '(' type_specifier ')' '=' value.';' ';' shift 138 . error state 138 procedure: type_specifier procedure_ident '(' type_specifier ')' '=' value ';'. (72) . reduce 72 (src line 259) 41 terminals, 41 nonterminals 74 grammar rules, 139/8000 states 0 shift/reduce, 0 reduce/reduce conflicts reported 90 working sets used memory: parser 157/120000 40 extra closures 218 shift entries, 1 exceptions 71 goto entries 62 entries saved by goto default Optimizer space used: output 153/120000 153 table entries, 0 zero maximum spread: 41, maximum offset: 135