Skip to content

Instantly share code, notes, and snippets.

@cholcombe973
Created July 29, 2015 22:38
Show Gist options
  • Save cholcombe973/c74b499f44265f80f881 to your computer and use it in GitHub Desktop.
Save cholcombe973/c74b499f44265f80f881 to your computer and use it in GitHub Desktop.
pynfs xdrgen.py parser output
Unused terminals:
Grammar
Rule 1 specification -> definition_list
Rule 2 definition_list -> definition definition_list
Rule 3 definition_list -> empty
Rule 4 definition -> constant_def
Rule 5 definition -> type_def
Rule 6 definition -> program_def
Rule 7 constant_def -> CONST ID EQUALS constant SEMI
Rule 8 constant -> CONST10
Rule 9 constant -> CONST8
Rule 10 constant -> CONST16
Rule 11 value -> constant
Rule 12 value -> ID
Rule 13 optional_value -> value
Rule 14 optional_value -> empty
Rule 15 type_def -> TYPEDEF declaration SEMI
Rule 16 type_def -> ENUM ID enum_body SEMI
Rule 17 type_def -> STRUCT ID struct_body SEMI
Rule 18 type_def -> UNION ID union_body SEMI
Rule 19 declaration -> type_specifier ID
Rule 20 declaration -> type_specifier ID LBRACKET value RBRACKET
Rule 21 declaration -> type_specifier ID LT optional_value GT
Rule 22 declaration -> OPAQUE ID LBRACKET value RBRACKET
Rule 23 declaration -> OPAQUE ID LT optional_value GT
Rule 24 declaration -> STRING ID LT optional_value GT
Rule 25 declaration -> type_specifier STAR ID
Rule 26 declaration -> VOID
Rule 27 type_specifier -> UNSIGNED INT
Rule 28 type_specifier -> UNSIGNED HYPER
Rule 29 type_specifier -> INT
Rule 30 type_specifier -> HYPER
Rule 31 type_specifier -> FLOAT
Rule 32 type_specifier -> DOUBLE
Rule 33 type_specifier -> QUADRUPLE
Rule 34 type_specifier -> BOOL
Rule 35 type_specifier -> ID
Rule 36 type_specifier -> UNSIGNED
Rule 37 type_specifier -> enum_type_spec
Rule 38 type_specifier -> struct_type_spec
Rule 39 type_specifier -> union_type_spec
Rule 40 enum_type_spec -> ENUM enum_body
Rule 41 struct_type_spec -> STRUCT struct_body
Rule 42 union_type_spec -> UNION union_body
Rule 43 union_body -> SWITCH LPAREN declaration RPAREN LBRACE switch_body RBRACE
Rule 44 switch_body -> case_spec_list default_declaration
Rule 45 case_spec -> case_statement_list declaration SEMI
Rule 46 case_spec_list -> case_spec case_spec_list
Rule 47 case_spec_list -> case_spec
Rule 48 case_statement_list -> case_statement case_statement_list
Rule 49 case_statement_list -> case_statement
Rule 50 case_statement -> CASE value COLON
Rule 51 default_declaration -> empty
Rule 52 default_declaration -> DEFAULT COLON declaration SEMI
Rule 53 struct_body -> LBRACE declaration_list RBRACE
Rule 54 declaration_list -> declaration SEMI
Rule 55 declaration_list -> declaration SEMI declaration_list
Rule 56 enum_body -> LBRACE enum_constant_list RBRACE
Rule 57 enum_constant -> ID EQUALS value
Rule 58 enum_constant_list -> enum_constant
Rule 59 enum_constant_list -> enum_constant COMMA enum_constant_list
Rule 60 empty -> <empty>
Rule 61 program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI
Rule 62 version_def -> VERSION ID LBRACE procedure_def procedure_def_list RBRACE EQUALS constant SEMI
Rule 63 version_def_list -> version_def version_def_list
Rule 64 version_def_list -> empty
Rule 65 procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI
Rule 66 procedure_def_list -> procedure_def procedure_def_list
Rule 67 procedure_def_list -> empty
Rule 68 proc_return -> type_specifier
Rule 69 proc_return -> VOID
Rule 70 proc_firstarg -> type_specifier
Rule 71 proc_firstarg -> VOID
Rule 72 type_specifier_list -> COMMA type_specifier type_specifier_list
Rule 73 type_specifier_list -> empty
Terminals, with rules where they appear
BOOL : 34
CASE : 50
COLON : 50 52
COMMA : 59 72
CONST : 7
CONST10 : 8
CONST16 : 10
CONST8 : 9
DEFAULT : 52
DOUBLE : 32
ENUM : 16 40
EQUALS : 7 57 61 62 65
FLOAT : 31
GT : 21 23 24
HYPER : 28 30
ID : 7 12 16 17 18 19 20 21 22 23 24 25 35 57 61 62 65
INT : 27 29
LBRACE : 43 53 56 61 62
LBRACKET : 20 22
LPAREN : 43 65
LT : 21 23 24
OPAQUE : 22 23
PROGRAM : 61
QUADRUPLE : 33
RBRACE : 43 53 56 61 62
RBRACKET : 20 22
RPAREN : 43 65
SEMI : 7 15 16 17 18 45 52 54 55 61 62 65
STAR : 25
STRING : 24
STRUCT : 17 41
SWITCH : 43
TYPEDEF : 15
UNION : 18 42
UNSIGNED : 27 28 36
VERSION : 62
VOID : 26 69 71
error :
Nonterminals, with rules where they appear
case_spec : 46 47
case_spec_list : 44 46
case_statement : 48 49
case_statement_list : 45 48
constant : 7 11 61 62 65
constant_def : 4
declaration : 15 43 45 52 54 55
declaration_list : 53 55
default_declaration : 44
definition : 2
definition_list : 1 2
empty : 3 14 51 64 67 73
enum_body : 16 40
enum_constant : 58 59
enum_constant_list : 56 59
enum_type_spec : 37
optional_value : 21 23 24
proc_firstarg : 65
proc_return : 65
procedure_def : 62 66
procedure_def_list : 62 66
program_def : 6
specification : 0
struct_body : 17 41
struct_type_spec : 38
switch_body : 43
type_def : 5
type_specifier : 19 20 21 25 68 70 72
type_specifier_list : 65 72
union_body : 18 42
union_type_spec : 39
value : 13 20 22 50 57
version_def : 61 63
version_def_list : 61 63
Parsing method: LALR
state 0
(0) S' -> . specification
(1) specification -> . definition_list
(2) definition_list -> . definition definition_list
(3) definition_list -> . empty
(4) definition -> . constant_def
(5) definition -> . type_def
(6) definition -> . program_def
(60) empty -> .
(7) constant_def -> . CONST ID EQUALS constant SEMI
(15) type_def -> . TYPEDEF declaration SEMI
(16) type_def -> . ENUM ID enum_body SEMI
(17) type_def -> . STRUCT ID struct_body SEMI
(18) type_def -> . UNION ID union_body SEMI
(61) program_def -> . PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI
$end reduce using rule 60 (empty -> .)
CONST shift and go to state 1
TYPEDEF shift and go to state 5
ENUM shift and go to state 8
STRUCT shift and go to state 13
UNION shift and go to state 7
PROGRAM shift and go to state 2
definition shift and go to state 11
constant_def shift and go to state 12
specification shift and go to state 3
program_def shift and go to state 6
definition_list shift and go to state 9
type_def shift and go to state 10
empty shift and go to state 4
state 1
(7) constant_def -> CONST . ID EQUALS constant SEMI
ID shift and go to state 14
state 2
(61) program_def -> PROGRAM . ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI
ID shift and go to state 15
state 3
(0) S' -> specification .
state 4
(3) definition_list -> empty .
$end reduce using rule 3 (definition_list -> empty .)
state 5
(15) type_def -> TYPEDEF . declaration SEMI
(19) declaration -> . type_specifier ID
(20) declaration -> . type_specifier ID LBRACKET value RBRACKET
(21) declaration -> . type_specifier ID LT optional_value GT
(22) declaration -> . OPAQUE ID LBRACKET value RBRACKET
(23) declaration -> . OPAQUE ID LT optional_value GT
(24) declaration -> . STRING ID LT optional_value GT
(25) declaration -> . type_specifier STAR ID
(26) declaration -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
OPAQUE shift and go to state 29
STRING shift and go to state 21
VOID shift and go to state 16
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 18
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
struct_type_spec shift and go to state 24
declaration shift and go to state 25
state 6
(6) definition -> program_def .
CONST reduce using rule 6 (definition -> program_def .)
TYPEDEF reduce using rule 6 (definition -> program_def .)
ENUM reduce using rule 6 (definition -> program_def .)
STRUCT reduce using rule 6 (definition -> program_def .)
UNION reduce using rule 6 (definition -> program_def .)
PROGRAM reduce using rule 6 (definition -> program_def .)
$end reduce using rule 6 (definition -> program_def .)
state 7
(18) type_def -> UNION . ID union_body SEMI
ID shift and go to state 35
state 8
(16) type_def -> ENUM . ID enum_body SEMI
ID shift and go to state 36
state 9
(1) specification -> definition_list .
$end reduce using rule 1 (specification -> definition_list .)
state 10
(5) definition -> type_def .
CONST reduce using rule 5 (definition -> type_def .)
TYPEDEF reduce using rule 5 (definition -> type_def .)
ENUM reduce using rule 5 (definition -> type_def .)
STRUCT reduce using rule 5 (definition -> type_def .)
UNION reduce using rule 5 (definition -> type_def .)
PROGRAM reduce using rule 5 (definition -> type_def .)
$end reduce using rule 5 (definition -> type_def .)
state 11
(2) definition_list -> definition . definition_list
(2) definition_list -> . definition definition_list
(3) definition_list -> . empty
(4) definition -> . constant_def
(5) definition -> . type_def
(6) definition -> . program_def
(60) empty -> .
(7) constant_def -> . CONST ID EQUALS constant SEMI
(15) type_def -> . TYPEDEF declaration SEMI
(16) type_def -> . ENUM ID enum_body SEMI
(17) type_def -> . STRUCT ID struct_body SEMI
(18) type_def -> . UNION ID union_body SEMI
(61) program_def -> . PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI
$end reduce using rule 60 (empty -> .)
CONST shift and go to state 1
TYPEDEF shift and go to state 5
ENUM shift and go to state 8
STRUCT shift and go to state 13
UNION shift and go to state 7
PROGRAM shift and go to state 2
definition shift and go to state 11
constant_def shift and go to state 12
program_def shift and go to state 6
definition_list shift and go to state 37
type_def shift and go to state 10
empty shift and go to state 4
state 12
(4) definition -> constant_def .
CONST reduce using rule 4 (definition -> constant_def .)
TYPEDEF reduce using rule 4 (definition -> constant_def .)
ENUM reduce using rule 4 (definition -> constant_def .)
STRUCT reduce using rule 4 (definition -> constant_def .)
UNION reduce using rule 4 (definition -> constant_def .)
PROGRAM reduce using rule 4 (definition -> constant_def .)
$end reduce using rule 4 (definition -> constant_def .)
state 13
(17) type_def -> STRUCT . ID struct_body SEMI
ID shift and go to state 38
state 14
(7) constant_def -> CONST ID . EQUALS constant SEMI
EQUALS shift and go to state 39
state 15
(61) program_def -> PROGRAM ID . LBRACE version_def version_def_list RBRACE EQUALS constant SEMI
LBRACE shift and go to state 40
state 16
(26) declaration -> VOID .
RPAREN reduce using rule 26 (declaration -> VOID .)
SEMI reduce using rule 26 (declaration -> VOID .)
state 17
(33) type_specifier -> QUADRUPLE .
ID reduce using rule 33 (type_specifier -> QUADRUPLE .)
STAR reduce using rule 33 (type_specifier -> QUADRUPLE .)
COMMA reduce using rule 33 (type_specifier -> QUADRUPLE .)
RPAREN reduce using rule 33 (type_specifier -> QUADRUPLE .)
state 18
(19) declaration -> type_specifier . ID
(20) declaration -> type_specifier . ID LBRACKET value RBRACKET
(21) declaration -> type_specifier . ID LT optional_value GT
(25) declaration -> type_specifier . STAR ID
ID shift and go to state 42
STAR shift and go to state 41
state 19
(27) type_specifier -> UNSIGNED . INT
(28) type_specifier -> UNSIGNED . HYPER
(36) type_specifier -> UNSIGNED .
INT shift and go to state 43
HYPER shift and go to state 44
ID reduce using rule 36 (type_specifier -> UNSIGNED .)
STAR reduce using rule 36 (type_specifier -> UNSIGNED .)
COMMA reduce using rule 36 (type_specifier -> UNSIGNED .)
RPAREN reduce using rule 36 (type_specifier -> UNSIGNED .)
state 20
(37) type_specifier -> enum_type_spec .
ID reduce using rule 37 (type_specifier -> enum_type_spec .)
STAR reduce using rule 37 (type_specifier -> enum_type_spec .)
COMMA reduce using rule 37 (type_specifier -> enum_type_spec .)
RPAREN reduce using rule 37 (type_specifier -> enum_type_spec .)
state 21
(24) declaration -> STRING . ID LT optional_value GT
ID shift and go to state 45
state 22
(42) union_type_spec -> UNION . union_body
(43) union_body -> . SWITCH LPAREN declaration RPAREN LBRACE switch_body RBRACE
SWITCH shift and go to state 47
union_body shift and go to state 46
state 23
(40) enum_type_spec -> ENUM . enum_body
(56) enum_body -> . LBRACE enum_constant_list RBRACE
LBRACE shift and go to state 48
enum_body shift and go to state 49
state 24
(38) type_specifier -> struct_type_spec .
ID reduce using rule 38 (type_specifier -> struct_type_spec .)
STAR reduce using rule 38 (type_specifier -> struct_type_spec .)
COMMA reduce using rule 38 (type_specifier -> struct_type_spec .)
RPAREN reduce using rule 38 (type_specifier -> struct_type_spec .)
state 25
(15) type_def -> TYPEDEF declaration . SEMI
SEMI shift and go to state 50
state 26
(35) type_specifier -> ID .
ID reduce using rule 35 (type_specifier -> ID .)
STAR reduce using rule 35 (type_specifier -> ID .)
COMMA reduce using rule 35 (type_specifier -> ID .)
RPAREN reduce using rule 35 (type_specifier -> ID .)
state 27
(30) type_specifier -> HYPER .
ID reduce using rule 30 (type_specifier -> HYPER .)
STAR reduce using rule 30 (type_specifier -> HYPER .)
COMMA reduce using rule 30 (type_specifier -> HYPER .)
RPAREN reduce using rule 30 (type_specifier -> HYPER .)
state 28
(41) struct_type_spec -> STRUCT . struct_body
(53) struct_body -> . LBRACE declaration_list RBRACE
LBRACE shift and go to state 52
struct_body shift and go to state 51
state 29
(22) declaration -> OPAQUE . ID LBRACKET value RBRACKET
(23) declaration -> OPAQUE . ID LT optional_value GT
ID shift and go to state 53
state 30
(29) type_specifier -> INT .
ID reduce using rule 29 (type_specifier -> INT .)
STAR reduce using rule 29 (type_specifier -> INT .)
COMMA reduce using rule 29 (type_specifier -> INT .)
RPAREN reduce using rule 29 (type_specifier -> INT .)
state 31
(32) type_specifier -> DOUBLE .
ID reduce using rule 32 (type_specifier -> DOUBLE .)
STAR reduce using rule 32 (type_specifier -> DOUBLE .)
COMMA reduce using rule 32 (type_specifier -> DOUBLE .)
RPAREN reduce using rule 32 (type_specifier -> DOUBLE .)
state 32
(31) type_specifier -> FLOAT .
ID reduce using rule 31 (type_specifier -> FLOAT .)
STAR reduce using rule 31 (type_specifier -> FLOAT .)
COMMA reduce using rule 31 (type_specifier -> FLOAT .)
RPAREN reduce using rule 31 (type_specifier -> FLOAT .)
state 33
(39) type_specifier -> union_type_spec .
ID reduce using rule 39 (type_specifier -> union_type_spec .)
STAR reduce using rule 39 (type_specifier -> union_type_spec .)
COMMA reduce using rule 39 (type_specifier -> union_type_spec .)
RPAREN reduce using rule 39 (type_specifier -> union_type_spec .)
state 34
(34) type_specifier -> BOOL .
ID reduce using rule 34 (type_specifier -> BOOL .)
STAR reduce using rule 34 (type_specifier -> BOOL .)
COMMA reduce using rule 34 (type_specifier -> BOOL .)
RPAREN reduce using rule 34 (type_specifier -> BOOL .)
state 35
(18) type_def -> UNION ID . union_body SEMI
(43) union_body -> . SWITCH LPAREN declaration RPAREN LBRACE switch_body RBRACE
SWITCH shift and go to state 47
union_body shift and go to state 54
state 36
(16) type_def -> ENUM ID . enum_body SEMI
(56) enum_body -> . LBRACE enum_constant_list RBRACE
LBRACE shift and go to state 48
enum_body shift and go to state 55
state 37
(2) definition_list -> definition definition_list .
$end reduce using rule 2 (definition_list -> definition definition_list .)
state 38
(17) type_def -> STRUCT ID . struct_body SEMI
(53) struct_body -> . LBRACE declaration_list RBRACE
LBRACE shift and go to state 52
struct_body shift and go to state 56
state 39
(7) constant_def -> CONST ID EQUALS . constant SEMI
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 58
state 40
(61) program_def -> PROGRAM ID LBRACE . version_def version_def_list RBRACE EQUALS constant SEMI
(62) version_def -> . VERSION ID LBRACE procedure_def procedure_def_list RBRACE EQUALS constant SEMI
VERSION shift and go to state 61
version_def shift and go to state 62
state 41
(25) declaration -> type_specifier STAR . ID
ID shift and go to state 63
state 42
(19) declaration -> type_specifier ID .
(20) declaration -> type_specifier ID . LBRACKET value RBRACKET
(21) declaration -> type_specifier ID . LT optional_value GT
RPAREN reduce using rule 19 (declaration -> type_specifier ID .)
SEMI reduce using rule 19 (declaration -> type_specifier ID .)
LBRACKET shift and go to state 64
LT shift and go to state 65
state 43
(27) type_specifier -> UNSIGNED INT .
ID reduce using rule 27 (type_specifier -> UNSIGNED INT .)
STAR reduce using rule 27 (type_specifier -> UNSIGNED INT .)
COMMA reduce using rule 27 (type_specifier -> UNSIGNED INT .)
RPAREN reduce using rule 27 (type_specifier -> UNSIGNED INT .)
state 44
(28) type_specifier -> UNSIGNED HYPER .
ID reduce using rule 28 (type_specifier -> UNSIGNED HYPER .)
STAR reduce using rule 28 (type_specifier -> UNSIGNED HYPER .)
COMMA reduce using rule 28 (type_specifier -> UNSIGNED HYPER .)
RPAREN reduce using rule 28 (type_specifier -> UNSIGNED HYPER .)
state 45
(24) declaration -> STRING ID . LT optional_value GT
LT shift and go to state 66
state 46
(42) union_type_spec -> UNION union_body .
ID reduce using rule 42 (union_type_spec -> UNION union_body .)
STAR reduce using rule 42 (union_type_spec -> UNION union_body .)
COMMA reduce using rule 42 (union_type_spec -> UNION union_body .)
RPAREN reduce using rule 42 (union_type_spec -> UNION union_body .)
state 47
(43) union_body -> SWITCH . LPAREN declaration RPAREN LBRACE switch_body RBRACE
LPAREN shift and go to state 67
state 48
(56) enum_body -> LBRACE . enum_constant_list RBRACE
(58) enum_constant_list -> . enum_constant
(59) enum_constant_list -> . enum_constant COMMA enum_constant_list
(57) enum_constant -> . ID EQUALS value
ID shift and go to state 70
enum_constant_list shift and go to state 69
enum_constant shift and go to state 68
state 49
(40) enum_type_spec -> ENUM enum_body .
ID reduce using rule 40 (enum_type_spec -> ENUM enum_body .)
STAR reduce using rule 40 (enum_type_spec -> ENUM enum_body .)
COMMA reduce using rule 40 (enum_type_spec -> ENUM enum_body .)
RPAREN reduce using rule 40 (enum_type_spec -> ENUM enum_body .)
state 50
(15) type_def -> TYPEDEF declaration SEMI .
CONST reduce using rule 15 (type_def -> TYPEDEF declaration SEMI .)
TYPEDEF reduce using rule 15 (type_def -> TYPEDEF declaration SEMI .)
ENUM reduce using rule 15 (type_def -> TYPEDEF declaration SEMI .)
STRUCT reduce using rule 15 (type_def -> TYPEDEF declaration SEMI .)
UNION reduce using rule 15 (type_def -> TYPEDEF declaration SEMI .)
PROGRAM reduce using rule 15 (type_def -> TYPEDEF declaration SEMI .)
$end reduce using rule 15 (type_def -> TYPEDEF declaration SEMI .)
state 51
(41) struct_type_spec -> STRUCT struct_body .
ID reduce using rule 41 (struct_type_spec -> STRUCT struct_body .)
STAR reduce using rule 41 (struct_type_spec -> STRUCT struct_body .)
COMMA reduce using rule 41 (struct_type_spec -> STRUCT struct_body .)
RPAREN reduce using rule 41 (struct_type_spec -> STRUCT struct_body .)
state 52
(53) struct_body -> LBRACE . declaration_list RBRACE
(54) declaration_list -> . declaration SEMI
(55) declaration_list -> . declaration SEMI declaration_list
(19) declaration -> . type_specifier ID
(20) declaration -> . type_specifier ID LBRACKET value RBRACKET
(21) declaration -> . type_specifier ID LT optional_value GT
(22) declaration -> . OPAQUE ID LBRACKET value RBRACKET
(23) declaration -> . OPAQUE ID LT optional_value GT
(24) declaration -> . STRING ID LT optional_value GT
(25) declaration -> . type_specifier STAR ID
(26) declaration -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
OPAQUE shift and go to state 29
STRING shift and go to state 21
VOID shift and go to state 16
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 18
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
declaration_list shift and go to state 72
struct_type_spec shift and go to state 24
declaration shift and go to state 71
state 53
(22) declaration -> OPAQUE ID . LBRACKET value RBRACKET
(23) declaration -> OPAQUE ID . LT optional_value GT
LBRACKET shift and go to state 73
LT shift and go to state 74
state 54
(18) type_def -> UNION ID union_body . SEMI
SEMI shift and go to state 75
state 55
(16) type_def -> ENUM ID enum_body . SEMI
SEMI shift and go to state 76
state 56
(17) type_def -> STRUCT ID struct_body . SEMI
SEMI shift and go to state 77
state 57
(8) constant -> CONST10 .
COLON reduce using rule 8 (constant -> CONST10 .)
GT reduce using rule 8 (constant -> CONST10 .)
SEMI reduce using rule 8 (constant -> CONST10 .)
RBRACKET reduce using rule 8 (constant -> CONST10 .)
COMMA reduce using rule 8 (constant -> CONST10 .)
RBRACE reduce using rule 8 (constant -> CONST10 .)
state 58
(7) constant_def -> CONST ID EQUALS constant . SEMI
SEMI shift and go to state 78
state 59
(10) constant -> CONST16 .
COLON reduce using rule 10 (constant -> CONST16 .)
GT reduce using rule 10 (constant -> CONST16 .)
SEMI reduce using rule 10 (constant -> CONST16 .)
RBRACKET reduce using rule 10 (constant -> CONST16 .)
COMMA reduce using rule 10 (constant -> CONST16 .)
RBRACE reduce using rule 10 (constant -> CONST16 .)
state 60
(9) constant -> CONST8 .
COLON reduce using rule 9 (constant -> CONST8 .)
GT reduce using rule 9 (constant -> CONST8 .)
SEMI reduce using rule 9 (constant -> CONST8 .)
RBRACKET reduce using rule 9 (constant -> CONST8 .)
COMMA reduce using rule 9 (constant -> CONST8 .)
RBRACE reduce using rule 9 (constant -> CONST8 .)
state 61
(62) version_def -> VERSION . ID LBRACE procedure_def procedure_def_list RBRACE EQUALS constant SEMI
ID shift and go to state 79
state 62
(61) program_def -> PROGRAM ID LBRACE version_def . version_def_list RBRACE EQUALS constant SEMI
(63) version_def_list -> . version_def version_def_list
(64) version_def_list -> . empty
(62) version_def -> . VERSION ID LBRACE procedure_def procedure_def_list RBRACE EQUALS constant SEMI
(60) empty -> .
VERSION shift and go to state 61
RBRACE reduce using rule 60 (empty -> .)
version_def shift and go to state 80
version_def_list shift and go to state 81
empty shift and go to state 82
state 63
(25) declaration -> type_specifier STAR ID .
RPAREN reduce using rule 25 (declaration -> type_specifier STAR ID .)
SEMI reduce using rule 25 (declaration -> type_specifier STAR ID .)
state 64
(20) declaration -> type_specifier ID LBRACKET . value RBRACKET
(11) value -> . constant
(12) value -> . ID
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
ID shift and go to state 85
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 83
value shift and go to state 84
state 65
(21) declaration -> type_specifier ID LT . optional_value GT
(13) optional_value -> . value
(14) optional_value -> . empty
(11) value -> . constant
(12) value -> . ID
(60) empty -> .
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
ID shift and go to state 85
GT reduce using rule 60 (empty -> .)
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 83
optional_value shift and go to state 87
empty shift and go to state 88
value shift and go to state 86
state 66
(24) declaration -> STRING ID LT . optional_value GT
(13) optional_value -> . value
(14) optional_value -> . empty
(11) value -> . constant
(12) value -> . ID
(60) empty -> .
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
ID shift and go to state 85
GT reduce using rule 60 (empty -> .)
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 83
optional_value shift and go to state 89
empty shift and go to state 88
value shift and go to state 86
state 67
(43) union_body -> SWITCH LPAREN . declaration RPAREN LBRACE switch_body RBRACE
(19) declaration -> . type_specifier ID
(20) declaration -> . type_specifier ID LBRACKET value RBRACKET
(21) declaration -> . type_specifier ID LT optional_value GT
(22) declaration -> . OPAQUE ID LBRACKET value RBRACKET
(23) declaration -> . OPAQUE ID LT optional_value GT
(24) declaration -> . STRING ID LT optional_value GT
(25) declaration -> . type_specifier STAR ID
(26) declaration -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
OPAQUE shift and go to state 29
STRING shift and go to state 21
VOID shift and go to state 16
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 18
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
struct_type_spec shift and go to state 24
declaration shift and go to state 90
state 68
(58) enum_constant_list -> enum_constant .
(59) enum_constant_list -> enum_constant . COMMA enum_constant_list
RBRACE reduce using rule 58 (enum_constant_list -> enum_constant .)
COMMA shift and go to state 91
state 69
(56) enum_body -> LBRACE enum_constant_list . RBRACE
RBRACE shift and go to state 92
state 70
(57) enum_constant -> ID . EQUALS value
EQUALS shift and go to state 93
state 71
(54) declaration_list -> declaration . SEMI
(55) declaration_list -> declaration . SEMI declaration_list
SEMI shift and go to state 94
state 72
(53) struct_body -> LBRACE declaration_list . RBRACE
RBRACE shift and go to state 95
state 73
(22) declaration -> OPAQUE ID LBRACKET . value RBRACKET
(11) value -> . constant
(12) value -> . ID
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
ID shift and go to state 85
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 83
value shift and go to state 96
state 74
(23) declaration -> OPAQUE ID LT . optional_value GT
(13) optional_value -> . value
(14) optional_value -> . empty
(11) value -> . constant
(12) value -> . ID
(60) empty -> .
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
ID shift and go to state 85
GT reduce using rule 60 (empty -> .)
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 83
optional_value shift and go to state 97
empty shift and go to state 88
value shift and go to state 86
state 75
(18) type_def -> UNION ID union_body SEMI .
CONST reduce using rule 18 (type_def -> UNION ID union_body SEMI .)
TYPEDEF reduce using rule 18 (type_def -> UNION ID union_body SEMI .)
ENUM reduce using rule 18 (type_def -> UNION ID union_body SEMI .)
STRUCT reduce using rule 18 (type_def -> UNION ID union_body SEMI .)
UNION reduce using rule 18 (type_def -> UNION ID union_body SEMI .)
PROGRAM reduce using rule 18 (type_def -> UNION ID union_body SEMI .)
$end reduce using rule 18 (type_def -> UNION ID union_body SEMI .)
state 76
(16) type_def -> ENUM ID enum_body SEMI .
CONST reduce using rule 16 (type_def -> ENUM ID enum_body SEMI .)
TYPEDEF reduce using rule 16 (type_def -> ENUM ID enum_body SEMI .)
ENUM reduce using rule 16 (type_def -> ENUM ID enum_body SEMI .)
STRUCT reduce using rule 16 (type_def -> ENUM ID enum_body SEMI .)
UNION reduce using rule 16 (type_def -> ENUM ID enum_body SEMI .)
PROGRAM reduce using rule 16 (type_def -> ENUM ID enum_body SEMI .)
$end reduce using rule 16 (type_def -> ENUM ID enum_body SEMI .)
state 77
(17) type_def -> STRUCT ID struct_body SEMI .
CONST reduce using rule 17 (type_def -> STRUCT ID struct_body SEMI .)
TYPEDEF reduce using rule 17 (type_def -> STRUCT ID struct_body SEMI .)
ENUM reduce using rule 17 (type_def -> STRUCT ID struct_body SEMI .)
STRUCT reduce using rule 17 (type_def -> STRUCT ID struct_body SEMI .)
UNION reduce using rule 17 (type_def -> STRUCT ID struct_body SEMI .)
PROGRAM reduce using rule 17 (type_def -> STRUCT ID struct_body SEMI .)
$end reduce using rule 17 (type_def -> STRUCT ID struct_body SEMI .)
state 78
(7) constant_def -> CONST ID EQUALS constant SEMI .
CONST reduce using rule 7 (constant_def -> CONST ID EQUALS constant SEMI .)
TYPEDEF reduce using rule 7 (constant_def -> CONST ID EQUALS constant SEMI .)
ENUM reduce using rule 7 (constant_def -> CONST ID EQUALS constant SEMI .)
STRUCT reduce using rule 7 (constant_def -> CONST ID EQUALS constant SEMI .)
UNION reduce using rule 7 (constant_def -> CONST ID EQUALS constant SEMI .)
PROGRAM reduce using rule 7 (constant_def -> CONST ID EQUALS constant SEMI .)
$end reduce using rule 7 (constant_def -> CONST ID EQUALS constant SEMI .)
state 79
(62) version_def -> VERSION ID . LBRACE procedure_def procedure_def_list RBRACE EQUALS constant SEMI
LBRACE shift and go to state 98
state 80
(63) version_def_list -> version_def . version_def_list
(63) version_def_list -> . version_def version_def_list
(64) version_def_list -> . empty
(62) version_def -> . VERSION ID LBRACE procedure_def procedure_def_list RBRACE EQUALS constant SEMI
(60) empty -> .
VERSION shift and go to state 61
RBRACE reduce using rule 60 (empty -> .)
version_def shift and go to state 80
version_def_list shift and go to state 99
empty shift and go to state 82
state 81
(61) program_def -> PROGRAM ID LBRACE version_def version_def_list . RBRACE EQUALS constant SEMI
RBRACE shift and go to state 100
state 82
(64) version_def_list -> empty .
RBRACE reduce using rule 64 (version_def_list -> empty .)
state 83
(11) value -> constant .
GT reduce using rule 11 (value -> constant .)
COMMA reduce using rule 11 (value -> constant .)
RBRACE reduce using rule 11 (value -> constant .)
RBRACKET reduce using rule 11 (value -> constant .)
COLON reduce using rule 11 (value -> constant .)
state 84
(20) declaration -> type_specifier ID LBRACKET value . RBRACKET
RBRACKET shift and go to state 101
state 85
(12) value -> ID .
GT reduce using rule 12 (value -> ID .)
COMMA reduce using rule 12 (value -> ID .)
RBRACE reduce using rule 12 (value -> ID .)
RBRACKET reduce using rule 12 (value -> ID .)
COLON reduce using rule 12 (value -> ID .)
state 86
(13) optional_value -> value .
GT reduce using rule 13 (optional_value -> value .)
state 87
(21) declaration -> type_specifier ID LT optional_value . GT
GT shift and go to state 102
state 88
(14) optional_value -> empty .
GT reduce using rule 14 (optional_value -> empty .)
state 89
(24) declaration -> STRING ID LT optional_value . GT
GT shift and go to state 103
state 90
(43) union_body -> SWITCH LPAREN declaration . RPAREN LBRACE switch_body RBRACE
RPAREN shift and go to state 104
state 91
(59) enum_constant_list -> enum_constant COMMA . enum_constant_list
(58) enum_constant_list -> . enum_constant
(59) enum_constant_list -> . enum_constant COMMA enum_constant_list
(57) enum_constant -> . ID EQUALS value
ID shift and go to state 70
enum_constant_list shift and go to state 105
enum_constant shift and go to state 68
state 92
(56) enum_body -> LBRACE enum_constant_list RBRACE .
SEMI reduce using rule 56 (enum_body -> LBRACE enum_constant_list RBRACE .)
ID reduce using rule 56 (enum_body -> LBRACE enum_constant_list RBRACE .)
STAR reduce using rule 56 (enum_body -> LBRACE enum_constant_list RBRACE .)
COMMA reduce using rule 56 (enum_body -> LBRACE enum_constant_list RBRACE .)
RPAREN reduce using rule 56 (enum_body -> LBRACE enum_constant_list RBRACE .)
state 93
(57) enum_constant -> ID EQUALS . value
(11) value -> . constant
(12) value -> . ID
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
ID shift and go to state 85
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 83
value shift and go to state 106
state 94
(54) declaration_list -> declaration SEMI .
(55) declaration_list -> declaration SEMI . declaration_list
(54) declaration_list -> . declaration SEMI
(55) declaration_list -> . declaration SEMI declaration_list
(19) declaration -> . type_specifier ID
(20) declaration -> . type_specifier ID LBRACKET value RBRACKET
(21) declaration -> . type_specifier ID LT optional_value GT
(22) declaration -> . OPAQUE ID LBRACKET value RBRACKET
(23) declaration -> . OPAQUE ID LT optional_value GT
(24) declaration -> . STRING ID LT optional_value GT
(25) declaration -> . type_specifier STAR ID
(26) declaration -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
RBRACE reduce using rule 54 (declaration_list -> declaration SEMI .)
OPAQUE shift and go to state 29
STRING shift and go to state 21
VOID shift and go to state 16
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 18
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
declaration_list shift and go to state 107
struct_type_spec shift and go to state 24
declaration shift and go to state 71
state 95
(53) struct_body -> LBRACE declaration_list RBRACE .
ID reduce using rule 53 (struct_body -> LBRACE declaration_list RBRACE .)
STAR reduce using rule 53 (struct_body -> LBRACE declaration_list RBRACE .)
COMMA reduce using rule 53 (struct_body -> LBRACE declaration_list RBRACE .)
RPAREN reduce using rule 53 (struct_body -> LBRACE declaration_list RBRACE .)
SEMI reduce using rule 53 (struct_body -> LBRACE declaration_list RBRACE .)
state 96
(22) declaration -> OPAQUE ID LBRACKET value . RBRACKET
RBRACKET shift and go to state 108
state 97
(23) declaration -> OPAQUE ID LT optional_value . GT
GT shift and go to state 109
state 98
(62) version_def -> VERSION ID LBRACE . procedure_def procedure_def_list RBRACE EQUALS constant SEMI
(65) procedure_def -> . proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI
(68) proc_return -> . type_specifier
(69) proc_return -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
VOID shift and go to state 110
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 112
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
struct_type_spec shift and go to state 24
procedure_def shift and go to state 113
proc_return shift and go to state 111
state 99
(63) version_def_list -> version_def version_def_list .
RBRACE reduce using rule 63 (version_def_list -> version_def version_def_list .)
state 100
(61) program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE . EQUALS constant SEMI
EQUALS shift and go to state 114
state 101
(20) declaration -> type_specifier ID LBRACKET value RBRACKET .
RPAREN reduce using rule 20 (declaration -> type_specifier ID LBRACKET value RBRACKET .)
SEMI reduce using rule 20 (declaration -> type_specifier ID LBRACKET value RBRACKET .)
state 102
(21) declaration -> type_specifier ID LT optional_value GT .
RPAREN reduce using rule 21 (declaration -> type_specifier ID LT optional_value GT .)
SEMI reduce using rule 21 (declaration -> type_specifier ID LT optional_value GT .)
state 103
(24) declaration -> STRING ID LT optional_value GT .
RPAREN reduce using rule 24 (declaration -> STRING ID LT optional_value GT .)
SEMI reduce using rule 24 (declaration -> STRING ID LT optional_value GT .)
state 104
(43) union_body -> SWITCH LPAREN declaration RPAREN . LBRACE switch_body RBRACE
LBRACE shift and go to state 115
state 105
(59) enum_constant_list -> enum_constant COMMA enum_constant_list .
RBRACE reduce using rule 59 (enum_constant_list -> enum_constant COMMA enum_constant_list .)
state 106
(57) enum_constant -> ID EQUALS value .
COMMA reduce using rule 57 (enum_constant -> ID EQUALS value .)
RBRACE reduce using rule 57 (enum_constant -> ID EQUALS value .)
state 107
(55) declaration_list -> declaration SEMI declaration_list .
RBRACE reduce using rule 55 (declaration_list -> declaration SEMI declaration_list .)
state 108
(22) declaration -> OPAQUE ID LBRACKET value RBRACKET .
RPAREN reduce using rule 22 (declaration -> OPAQUE ID LBRACKET value RBRACKET .)
SEMI reduce using rule 22 (declaration -> OPAQUE ID LBRACKET value RBRACKET .)
state 109
(23) declaration -> OPAQUE ID LT optional_value GT .
RPAREN reduce using rule 23 (declaration -> OPAQUE ID LT optional_value GT .)
SEMI reduce using rule 23 (declaration -> OPAQUE ID LT optional_value GT .)
state 110
(69) proc_return -> VOID .
ID reduce using rule 69 (proc_return -> VOID .)
state 111
(65) procedure_def -> proc_return . ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI
ID shift and go to state 116
state 112
(68) proc_return -> type_specifier .
ID reduce using rule 68 (proc_return -> type_specifier .)
state 113
(62) version_def -> VERSION ID LBRACE procedure_def . procedure_def_list RBRACE EQUALS constant SEMI
(66) procedure_def_list -> . procedure_def procedure_def_list
(67) procedure_def_list -> . empty
(65) procedure_def -> . proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI
(60) empty -> .
(68) proc_return -> . type_specifier
(69) proc_return -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
RBRACE reduce using rule 60 (empty -> .)
VOID shift and go to state 110
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 112
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
struct_type_spec shift and go to state 24
empty shift and go to state 118
procedure_def shift and go to state 119
procedure_def_list shift and go to state 117
proc_return shift and go to state 111
state 114
(61) program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS . constant SEMI
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 120
state 115
(43) union_body -> SWITCH LPAREN declaration RPAREN LBRACE . switch_body RBRACE
(44) switch_body -> . case_spec_list default_declaration
(46) case_spec_list -> . case_spec case_spec_list
(47) case_spec_list -> . case_spec
(45) case_spec -> . case_statement_list declaration SEMI
(48) case_statement_list -> . case_statement case_statement_list
(49) case_statement_list -> . case_statement
(50) case_statement -> . CASE value COLON
CASE shift and go to state 121
case_spec shift and go to state 122
case_statement shift and go to state 123
case_spec_list shift and go to state 124
switch_body shift and go to state 125
case_statement_list shift and go to state 126
state 116
(65) procedure_def -> proc_return ID . LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI
LPAREN shift and go to state 127
state 117
(62) version_def -> VERSION ID LBRACE procedure_def procedure_def_list . RBRACE EQUALS constant SEMI
RBRACE shift and go to state 128
state 118
(67) procedure_def_list -> empty .
RBRACE reduce using rule 67 (procedure_def_list -> empty .)
state 119
(66) procedure_def_list -> procedure_def . procedure_def_list
(66) procedure_def_list -> . procedure_def procedure_def_list
(67) procedure_def_list -> . empty
(65) procedure_def -> . proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI
(60) empty -> .
(68) proc_return -> . type_specifier
(69) proc_return -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
RBRACE reduce using rule 60 (empty -> .)
VOID shift and go to state 110
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 112
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
struct_type_spec shift and go to state 24
empty shift and go to state 118
procedure_def shift and go to state 119
procedure_def_list shift and go to state 129
proc_return shift and go to state 111
state 120
(61) program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant . SEMI
SEMI shift and go to state 130
state 121
(50) case_statement -> CASE . value COLON
(11) value -> . constant
(12) value -> . ID
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
ID shift and go to state 85
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 83
value shift and go to state 131
state 122
(46) case_spec_list -> case_spec . case_spec_list
(47) case_spec_list -> case_spec .
(46) case_spec_list -> . case_spec case_spec_list
(47) case_spec_list -> . case_spec
(45) case_spec -> . case_statement_list declaration SEMI
(48) case_statement_list -> . case_statement case_statement_list
(49) case_statement_list -> . case_statement
(50) case_statement -> . CASE value COLON
DEFAULT reduce using rule 47 (case_spec_list -> case_spec .)
RBRACE reduce using rule 47 (case_spec_list -> case_spec .)
CASE shift and go to state 121
case_spec shift and go to state 122
case_statement shift and go to state 123
case_spec_list shift and go to state 132
case_statement_list shift and go to state 126
state 123
(48) case_statement_list -> case_statement . case_statement_list
(49) case_statement_list -> case_statement .
(48) case_statement_list -> . case_statement case_statement_list
(49) case_statement_list -> . case_statement
(50) case_statement -> . CASE value COLON
OPAQUE reduce using rule 49 (case_statement_list -> case_statement .)
STRING reduce using rule 49 (case_statement_list -> case_statement .)
VOID reduce using rule 49 (case_statement_list -> case_statement .)
UNSIGNED reduce using rule 49 (case_statement_list -> case_statement .)
INT reduce using rule 49 (case_statement_list -> case_statement .)
HYPER reduce using rule 49 (case_statement_list -> case_statement .)
FLOAT reduce using rule 49 (case_statement_list -> case_statement .)
DOUBLE reduce using rule 49 (case_statement_list -> case_statement .)
QUADRUPLE reduce using rule 49 (case_statement_list -> case_statement .)
BOOL reduce using rule 49 (case_statement_list -> case_statement .)
ID reduce using rule 49 (case_statement_list -> case_statement .)
ENUM reduce using rule 49 (case_statement_list -> case_statement .)
STRUCT reduce using rule 49 (case_statement_list -> case_statement .)
UNION reduce using rule 49 (case_statement_list -> case_statement .)
CASE shift and go to state 121
case_statement shift and go to state 123
case_statement_list shift and go to state 133
state 124
(44) switch_body -> case_spec_list . default_declaration
(51) default_declaration -> . empty
(52) default_declaration -> . DEFAULT COLON declaration SEMI
(60) empty -> .
DEFAULT shift and go to state 134
RBRACE reduce using rule 60 (empty -> .)
default_declaration shift and go to state 135
empty shift and go to state 136
state 125
(43) union_body -> SWITCH LPAREN declaration RPAREN LBRACE switch_body . RBRACE
RBRACE shift and go to state 137
state 126
(45) case_spec -> case_statement_list . declaration SEMI
(19) declaration -> . type_specifier ID
(20) declaration -> . type_specifier ID LBRACKET value RBRACKET
(21) declaration -> . type_specifier ID LT optional_value GT
(22) declaration -> . OPAQUE ID LBRACKET value RBRACKET
(23) declaration -> . OPAQUE ID LT optional_value GT
(24) declaration -> . STRING ID LT optional_value GT
(25) declaration -> . type_specifier STAR ID
(26) declaration -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
OPAQUE shift and go to state 29
STRING shift and go to state 21
VOID shift and go to state 16
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 18
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
struct_type_spec shift and go to state 24
declaration shift and go to state 138
state 127
(65) procedure_def -> proc_return ID LPAREN . proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI
(70) proc_firstarg -> . type_specifier
(71) proc_firstarg -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
VOID shift and go to state 139
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 140
enum_type_spec shift and go to state 20
proc_firstarg shift and go to state 141
union_type_spec shift and go to state 33
struct_type_spec shift and go to state 24
state 128
(62) version_def -> VERSION ID LBRACE procedure_def procedure_def_list RBRACE . EQUALS constant SEMI
EQUALS shift and go to state 142
state 129
(66) procedure_def_list -> procedure_def procedure_def_list .
RBRACE reduce using rule 66 (procedure_def_list -> procedure_def procedure_def_list .)
state 130
(61) program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI .
CONST reduce using rule 61 (program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI .)
TYPEDEF reduce using rule 61 (program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI .)
ENUM reduce using rule 61 (program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI .)
STRUCT reduce using rule 61 (program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI .)
UNION reduce using rule 61 (program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI .)
PROGRAM reduce using rule 61 (program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI .)
$end reduce using rule 61 (program_def -> PROGRAM ID LBRACE version_def version_def_list RBRACE EQUALS constant SEMI .)
state 131
(50) case_statement -> CASE value . COLON
COLON shift and go to state 143
state 132
(46) case_spec_list -> case_spec case_spec_list .
DEFAULT reduce using rule 46 (case_spec_list -> case_spec case_spec_list .)
RBRACE reduce using rule 46 (case_spec_list -> case_spec case_spec_list .)
state 133
(48) case_statement_list -> case_statement case_statement_list .
OPAQUE reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
STRING reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
VOID reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
UNSIGNED reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
INT reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
HYPER reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
FLOAT reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
DOUBLE reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
QUADRUPLE reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
BOOL reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
ID reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
ENUM reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
STRUCT reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
UNION reduce using rule 48 (case_statement_list -> case_statement case_statement_list .)
state 134
(52) default_declaration -> DEFAULT . COLON declaration SEMI
COLON shift and go to state 144
state 135
(44) switch_body -> case_spec_list default_declaration .
RBRACE reduce using rule 44 (switch_body -> case_spec_list default_declaration .)
state 136
(51) default_declaration -> empty .
RBRACE reduce using rule 51 (default_declaration -> empty .)
state 137
(43) union_body -> SWITCH LPAREN declaration RPAREN LBRACE switch_body RBRACE .
ID reduce using rule 43 (union_body -> SWITCH LPAREN declaration RPAREN LBRACE switch_body RBRACE .)
STAR reduce using rule 43 (union_body -> SWITCH LPAREN declaration RPAREN LBRACE switch_body RBRACE .)
COMMA reduce using rule 43 (union_body -> SWITCH LPAREN declaration RPAREN LBRACE switch_body RBRACE .)
RPAREN reduce using rule 43 (union_body -> SWITCH LPAREN declaration RPAREN LBRACE switch_body RBRACE .)
SEMI reduce using rule 43 (union_body -> SWITCH LPAREN declaration RPAREN LBRACE switch_body RBRACE .)
state 138
(45) case_spec -> case_statement_list declaration . SEMI
SEMI shift and go to state 145
state 139
(71) proc_firstarg -> VOID .
COMMA reduce using rule 71 (proc_firstarg -> VOID .)
RPAREN reduce using rule 71 (proc_firstarg -> VOID .)
state 140
(70) proc_firstarg -> type_specifier .
COMMA reduce using rule 70 (proc_firstarg -> type_specifier .)
RPAREN reduce using rule 70 (proc_firstarg -> type_specifier .)
state 141
(65) procedure_def -> proc_return ID LPAREN proc_firstarg . type_specifier_list RPAREN EQUALS constant SEMI
(72) type_specifier_list -> . COMMA type_specifier type_specifier_list
(73) type_specifier_list -> . empty
(60) empty -> .
COMMA shift and go to state 147
RPAREN reduce using rule 60 (empty -> .)
type_specifier_list shift and go to state 146
empty shift and go to state 148
state 142
(62) version_def -> VERSION ID LBRACE procedure_def procedure_def_list RBRACE EQUALS . constant SEMI
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 149
state 143
(50) case_statement -> CASE value COLON .
CASE reduce using rule 50 (case_statement -> CASE value COLON .)
OPAQUE reduce using rule 50 (case_statement -> CASE value COLON .)
STRING reduce using rule 50 (case_statement -> CASE value COLON .)
VOID reduce using rule 50 (case_statement -> CASE value COLON .)
UNSIGNED reduce using rule 50 (case_statement -> CASE value COLON .)
INT reduce using rule 50 (case_statement -> CASE value COLON .)
HYPER reduce using rule 50 (case_statement -> CASE value COLON .)
FLOAT reduce using rule 50 (case_statement -> CASE value COLON .)
DOUBLE reduce using rule 50 (case_statement -> CASE value COLON .)
QUADRUPLE reduce using rule 50 (case_statement -> CASE value COLON .)
BOOL reduce using rule 50 (case_statement -> CASE value COLON .)
ID reduce using rule 50 (case_statement -> CASE value COLON .)
ENUM reduce using rule 50 (case_statement -> CASE value COLON .)
STRUCT reduce using rule 50 (case_statement -> CASE value COLON .)
UNION reduce using rule 50 (case_statement -> CASE value COLON .)
state 144
(52) default_declaration -> DEFAULT COLON . declaration SEMI
(19) declaration -> . type_specifier ID
(20) declaration -> . type_specifier ID LBRACKET value RBRACKET
(21) declaration -> . type_specifier ID LT optional_value GT
(22) declaration -> . OPAQUE ID LBRACKET value RBRACKET
(23) declaration -> . OPAQUE ID LT optional_value GT
(24) declaration -> . STRING ID LT optional_value GT
(25) declaration -> . type_specifier STAR ID
(26) declaration -> . VOID
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
OPAQUE shift and go to state 29
STRING shift and go to state 21
VOID shift and go to state 16
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 18
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
struct_type_spec shift and go to state 24
declaration shift and go to state 150
state 145
(45) case_spec -> case_statement_list declaration SEMI .
CASE reduce using rule 45 (case_spec -> case_statement_list declaration SEMI .)
DEFAULT reduce using rule 45 (case_spec -> case_statement_list declaration SEMI .)
RBRACE reduce using rule 45 (case_spec -> case_statement_list declaration SEMI .)
state 146
(65) procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list . RPAREN EQUALS constant SEMI
RPAREN shift and go to state 151
state 147
(72) type_specifier_list -> COMMA . type_specifier type_specifier_list
(27) type_specifier -> . UNSIGNED INT
(28) type_specifier -> . UNSIGNED HYPER
(29) type_specifier -> . INT
(30) type_specifier -> . HYPER
(31) type_specifier -> . FLOAT
(32) type_specifier -> . DOUBLE
(33) type_specifier -> . QUADRUPLE
(34) type_specifier -> . BOOL
(35) type_specifier -> . ID
(36) type_specifier -> . UNSIGNED
(37) type_specifier -> . enum_type_spec
(38) type_specifier -> . struct_type_spec
(39) type_specifier -> . union_type_spec
(40) enum_type_spec -> . ENUM enum_body
(41) struct_type_spec -> . STRUCT struct_body
(42) union_type_spec -> . UNION union_body
UNSIGNED shift and go to state 19
INT shift and go to state 30
HYPER shift and go to state 27
FLOAT shift and go to state 32
DOUBLE shift and go to state 31
QUADRUPLE shift and go to state 17
BOOL shift and go to state 34
ID shift and go to state 26
ENUM shift and go to state 23
STRUCT shift and go to state 28
UNION shift and go to state 22
type_specifier shift and go to state 152
enum_type_spec shift and go to state 20
union_type_spec shift and go to state 33
struct_type_spec shift and go to state 24
state 148
(73) type_specifier_list -> empty .
RPAREN reduce using rule 73 (type_specifier_list -> empty .)
state 149
(62) version_def -> VERSION ID LBRACE procedure_def procedure_def_list RBRACE EQUALS constant . SEMI
SEMI shift and go to state 153
state 150
(52) default_declaration -> DEFAULT COLON declaration . SEMI
SEMI shift and go to state 154
state 151
(65) procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN . EQUALS constant SEMI
EQUALS shift and go to state 155
state 152
(72) type_specifier_list -> COMMA type_specifier . type_specifier_list
(72) type_specifier_list -> . COMMA type_specifier type_specifier_list
(73) type_specifier_list -> . empty
(60) empty -> .
COMMA shift and go to state 147
RPAREN reduce using rule 60 (empty -> .)
empty shift and go to state 148
type_specifier_list shift and go to state 156
state 153
(62) version_def -> VERSION ID LBRACE procedure_def procedure_def_list RBRACE EQUALS constant SEMI .
VERSION reduce using rule 62 (version_def -> VERSION ID LBRACE procedure_def procedure_def_list RBRACE EQUALS constant SEMI .)
RBRACE reduce using rule 62 (version_def -> VERSION ID LBRACE procedure_def procedure_def_list RBRACE EQUALS constant SEMI .)
state 154
(52) default_declaration -> DEFAULT COLON declaration SEMI .
RBRACE reduce using rule 52 (default_declaration -> DEFAULT COLON declaration SEMI .)
state 155
(65) procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS . constant SEMI
(8) constant -> . CONST10
(9) constant -> . CONST8
(10) constant -> . CONST16
CONST10 shift and go to state 57
CONST8 shift and go to state 60
CONST16 shift and go to state 59
constant shift and go to state 157
state 156
(72) type_specifier_list -> COMMA type_specifier type_specifier_list .
RPAREN reduce using rule 72 (type_specifier_list -> COMMA type_specifier type_specifier_list .)
state 157
(65) procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant . SEMI
SEMI shift and go to state 158
state 158
(65) procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .
VOID reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
UNSIGNED reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
INT reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
HYPER reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
FLOAT reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
DOUBLE reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
QUADRUPLE reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
BOOL reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
ID reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
ENUM reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
STRUCT reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
UNION reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
RBRACE reduce using rule 65 (procedure_def -> proc_return ID LPAREN proc_firstarg type_specifier_list RPAREN EQUALS constant SEMI .)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment