Terminals unused in grammar BOOLEAN_CONSTANT INTEGER_CONSTANT Grammar 0 $accept: description $end 1 description: typedef_list field_list 2 typedef_list: %empty 3 | typedef_list typedef 4 typedef: TYPE type_name '=' type ';' 5 | '#' INCLUDE STRING_CONSTANT 6 | error 7 type_name: NAME 8 field: field_name '=' type attributes ';' 9 | field_name error 10 field_name: NAME 11 type: STRING 12 | BOOLEAN 13 | INTEGER 14 | REAL 15 | TIME 16 | NAME 17 | structure 18 | list 19 | enumeration 20 structure: '{' field_list '}' 21 field_list: %empty 22 | field_list field 23 list: '[' type ']' 24 enumeration: '(' enum_list_begin enum_list optional_comma ')' 25 enum_list_begin: %empty 26 enum_list: enum_name 27 | enum_list ',' enum_name 28 enum_name: NAME 29 optional_comma: %empty 30 | ',' 31 attributes: %empty 32 | attributes REDEFINITION_OK 33 | attributes SHOW_IF_DEFAULT 34 | attributes HIDE_IF_DEFAULT Terminals, with rules where they appear $end (0) 0 '#' (35) 5 '(' (40) 24 ')' (41) 24 ',' (44) 27 30 ';' (59) 4 8 '=' (61) 4 8 '[' (91) 23 ']' (93) 23 '{' (123) 20 '}' (125) 20 error (256) 6 9 BOOLEAN (258) 12 BOOLEAN_CONSTANT (259) HIDE_IF_DEFAULT (260) 34 INCLUDE (261) 5 INTEGER (262) 13 INTEGER_CONSTANT (263) NAME (264) 7 10 16 28 REAL (265) 14 REDEFINITION_OK (266) 32 SHOW_IF_DEFAULT (267) 33 STRING (268) 11 STRING_CONSTANT (269) 5 TIME (270) 15 TYPE (271) 4 Nonterminals, with rules where they appear $accept (27) on left: 0 description (28) on left: 1, on right: 0 typedef_list (29) on left: 2 3, on right: 1 3 typedef (30) on left: 4 5 6, on right: 3 type_name (31) on left: 7, on right: 4 field (32) on left: 8 9, on right: 22 field_name (33) on left: 10, on right: 8 9 type (34) on left: 11 12 13 14 15 16 17 18 19, on right: 4 8 23 structure (35) on left: 20, on right: 17 field_list (36) on left: 21 22, on right: 1 20 22 list (37) on left: 23, on right: 18 enumeration (38) on left: 24, on right: 19 enum_list_begin (39) on left: 25, on right: 24 enum_list (40) on left: 26 27, on right: 24 27 enum_name (41) on left: 28, on right: 26 27 optional_comma (42) on left: 29 30, on right: 24 attributes (43) on left: 31 32 33 34, on right: 8 32 33 34 State 0 0 $accept: . description $end $default reduce using rule 2 (typedef_list) description go to state 1 typedef_list go to state 2 State 1 0 $accept: description . $end $end shift, and go to state 3 State 2 1 description: typedef_list . field_list 3 typedef_list: typedef_list . typedef error shift, and go to state 4 TYPE shift, and go to state 5 '#' shift, and go to state 6 $end reduce using rule 21 (field_list) NAME reduce using rule 21 (field_list) typedef go to state 7 field_list go to state 8 State 3 0 $accept: description $end . $default accept State 4 6 typedef: error . $default reduce using rule 6 (typedef) State 5 4 typedef: TYPE . type_name '=' type ';' NAME shift, and go to state 9 type_name go to state 10 State 6 5 typedef: '#' . INCLUDE STRING_CONSTANT INCLUDE shift, and go to state 11 State 7 3 typedef_list: typedef_list typedef . $default reduce using rule 3 (typedef_list) State 8 1 description: typedef_list field_list . 22 field_list: field_list . field NAME shift, and go to state 12 $default reduce using rule 1 (description) field go to state 13 field_name go to state 14 State 9 7 type_name: NAME . $default reduce using rule 7 (type_name) State 10 4 typedef: TYPE type_name . '=' type ';' '=' shift, and go to state 15 State 11 5 typedef: '#' INCLUDE . STRING_CONSTANT STRING_CONSTANT shift, and go to state 16 State 12 10 field_name: NAME . $default reduce using rule 10 (field_name) State 13 22 field_list: field_list field . $default reduce using rule 22 (field_list) State 14 8 field: field_name . '=' type attributes ';' 9 | field_name . error error shift, and go to state 17 '=' shift, and go to state 18 State 15 4 typedef: TYPE type_name '=' . type ';' BOOLEAN shift, and go to state 19 INTEGER shift, and go to state 20 NAME shift, and go to state 21 REAL shift, and go to state 22 STRING shift, and go to state 23 TIME shift, and go to state 24 '{' shift, and go to state 25 '[' shift, and go to state 26 '(' shift, and go to state 27 type go to state 28 structure go to state 29 list go to state 30 enumeration go to state 31 State 16 5 typedef: '#' INCLUDE STRING_CONSTANT . $default reduce using rule 5 (typedef) State 17 9 field: field_name error . $default reduce using rule 9 (field) State 18 8 field: field_name '=' . type attributes ';' BOOLEAN shift, and go to state 19 INTEGER shift, and go to state 20 NAME shift, and go to state 21 REAL shift, and go to state 22 STRING shift, and go to state 23 TIME shift, and go to state 24 '{' shift, and go to state 25 '[' shift, and go to state 26 '(' shift, and go to state 27 type go to state 32 structure go to state 29 list go to state 30 enumeration go to state 31 State 19 12 type: BOOLEAN . $default reduce using rule 12 (type) State 20 13 type: INTEGER . $default reduce using rule 13 (type) State 21 16 type: NAME . $default reduce using rule 16 (type) State 22 14 type: REAL . $default reduce using rule 14 (type) State 23 11 type: STRING . $default reduce using rule 11 (type) State 24 15 type: TIME . $default reduce using rule 15 (type) State 25 20 structure: '{' . field_list '}' $default reduce using rule 21 (field_list) field_list go to state 33 State 26 23 list: '[' . type ']' BOOLEAN shift, and go to state 19 INTEGER shift, and go to state 20 NAME shift, and go to state 21 REAL shift, and go to state 22 STRING shift, and go to state 23 TIME shift, and go to state 24 '{' shift, and go to state 25 '[' shift, and go to state 26 '(' shift, and go to state 27 type go to state 34 structure go to state 29 list go to state 30 enumeration go to state 31 State 27 24 enumeration: '(' . enum_list_begin enum_list optional_comma ')' $default reduce using rule 25 (enum_list_begin) enum_list_begin go to state 35 State 28 4 typedef: TYPE type_name '=' type . ';' ';' shift, and go to state 36 State 29 17 type: structure . $default reduce using rule 17 (type) State 30 18 type: list . $default reduce using rule 18 (type) State 31 19 type: enumeration . $default reduce using rule 19 (type) State 32 8 field: field_name '=' type . attributes ';' $default reduce using rule 31 (attributes) attributes go to state 37 State 33 20 structure: '{' field_list . '}' 22 field_list: field_list . field NAME shift, and go to state 12 '}' shift, and go to state 38 field go to state 13 field_name go to state 14 State 34 23 list: '[' type . ']' ']' shift, and go to state 39 State 35 24 enumeration: '(' enum_list_begin . enum_list optional_comma ')' NAME shift, and go to state 40 enum_list go to state 41 enum_name go to state 42 State 36 4 typedef: TYPE type_name '=' type ';' . $default reduce using rule 4 (typedef) State 37 8 field: field_name '=' type attributes . ';' 32 attributes: attributes . REDEFINITION_OK 33 | attributes . SHOW_IF_DEFAULT 34 | attributes . HIDE_IF_DEFAULT HIDE_IF_DEFAULT shift, and go to state 43 REDEFINITION_OK shift, and go to state 44 SHOW_IF_DEFAULT shift, and go to state 45 ';' shift, and go to state 46 State 38 20 structure: '{' field_list '}' . $default reduce using rule 20 (structure) State 39 23 list: '[' type ']' . $default reduce using rule 23 (list) State 40 28 enum_name: NAME . $default reduce using rule 28 (enum_name) State 41 24 enumeration: '(' enum_list_begin enum_list . optional_comma ')' 27 enum_list: enum_list . ',' enum_name ',' shift, and go to state 47 $default reduce using rule 29 (optional_comma) optional_comma go to state 48 State 42 26 enum_list: enum_name . $default reduce using rule 26 (enum_list) State 43 34 attributes: attributes HIDE_IF_DEFAULT . $default reduce using rule 34 (attributes) State 44 32 attributes: attributes REDEFINITION_OK . $default reduce using rule 32 (attributes) State 45 33 attributes: attributes SHOW_IF_DEFAULT . $default reduce using rule 33 (attributes) State 46 8 field: field_name '=' type attributes ';' . $default reduce using rule 8 (field) State 47 27 enum_list: enum_list ',' . enum_name 30 optional_comma: ',' . NAME shift, and go to state 40 $default reduce using rule 30 (optional_comma) enum_name go to state 49 State 48 24 enumeration: '(' enum_list_begin enum_list optional_comma . ')' ')' shift, and go to state 50 State 49 27 enum_list: enum_list ',' enum_name . $default reduce using rule 27 (enum_list) State 50 24 enumeration: '(' enum_list_begin enum_list optional_comma ')' . $default reduce using rule 24 (enumeration)