Created by PLY version 3.7 (http://www.dabeaz.com/ply) Grammar Rule 0 S' -> balanced_string Rule 1 comma_separated_balanced_string -> <empty> Rule 2 comma_separated_balanced_string -> COMMA balanced_string comma_separated_balanced_string Rule 3 optional_balanced_string -> <empty> Rule 4 optional_balanced_string -> balanced_string Rule 5 balanced_string -> ASTERISK optional_balanced_string Rule 6 balanced_string -> AMPERSAND optional_balanced_string Rule 7 balanced_string -> DOUBLE_COLON balanced_string Rule 8 balanced_string -> IDENTIFIER optional_balanced_string Rule 9 balanced_string -> LPAREN RPAREN optional_balanced_string Rule 10 balanced_string -> LBRACKET RBRACKET optional_balanced_string Rule 11 balanced_string -> LBRACE RBRACE optional_balanced_string Rule 12 balanced_string -> LESS_THAN GREATER_THAN optional_balanced_string Rule 13 balanced_string -> LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string Rule 14 balanced_string -> LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string Rule 15 balanced_string -> LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string Rule 16 balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string Terminals, with rules where they appear AMPERSAND : 6 ASTERISK : 5 COMMA : 2 DOUBLE_COLON : 7 GREATER_THAN : 12 16 IDENTIFIER : 8 LBRACE : 11 15 LBRACKET : 10 14 LESS_THAN : 12 16 LPAREN : 9 13 RBRACE : 11 15 RBRACKET : 10 14 RPAREN : 9 13 error : Nonterminals, with rules where they appear balanced_string : 2 4 7 13 14 15 16 0 comma_separated_balanced_string : 2 13 14 15 16 optional_balanced_string : 5 6 8 9 10 11 12 13 14 15 16 Parsing method: LALR state 0 (0) S' -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 1 state 1 (0) S' -> balanced_string . state 2 (12) balanced_string -> LESS_THAN . GREATER_THAN optional_balanced_string (16) balanced_string -> LESS_THAN . balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string GREATER_THAN shift and go to state 11 ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 10 state 3 (6) balanced_string -> AMPERSAND . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 13 state 4 (5) balanced_string -> ASTERISK . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 14 state 5 (10) balanced_string -> LBRACKET . RBRACKET optional_balanced_string (14) balanced_string -> LBRACKET . balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string RBRACKET shift and go to state 16 ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 15 state 6 (8) balanced_string -> IDENTIFIER . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 17 state 7 (7) balanced_string -> DOUBLE_COLON . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 18 state 8 (9) balanced_string -> LPAREN . RPAREN optional_balanced_string (13) balanced_string -> LPAREN . balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string RPAREN shift and go to state 20 ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 19 state 9 (11) balanced_string -> LBRACE . RBRACE optional_balanced_string (15) balanced_string -> LBRACE . balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string RBRACE shift and go to state 22 ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 21 state 10 (16) balanced_string -> LESS_THAN balanced_string . comma_separated_balanced_string GREATER_THAN optional_balanced_string (1) comma_separated_balanced_string -> . (2) comma_separated_balanced_string -> . COMMA balanced_string comma_separated_balanced_string GREATER_THAN reduce using rule 1 (comma_separated_balanced_string -> .) COMMA shift and go to state 23 comma_separated_balanced_string shift and go to state 24 state 11 (12) balanced_string -> LESS_THAN GREATER_THAN . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 25 state 12 (4) optional_balanced_string -> balanced_string . $end reduce using rule 4 (optional_balanced_string -> balanced_string .) COMMA reduce using rule 4 (optional_balanced_string -> balanced_string .) GREATER_THAN reduce using rule 4 (optional_balanced_string -> balanced_string .) RBRACKET reduce using rule 4 (optional_balanced_string -> balanced_string .) RPAREN reduce using rule 4 (optional_balanced_string -> balanced_string .) RBRACE reduce using rule 4 (optional_balanced_string -> balanced_string .) state 13 (6) balanced_string -> AMPERSAND optional_balanced_string . $end reduce using rule 6 (balanced_string -> AMPERSAND optional_balanced_string .) COMMA reduce using rule 6 (balanced_string -> AMPERSAND optional_balanced_string .) GREATER_THAN reduce using rule 6 (balanced_string -> AMPERSAND optional_balanced_string .) RBRACKET reduce using rule 6 (balanced_string -> AMPERSAND optional_balanced_string .) RPAREN reduce using rule 6 (balanced_string -> AMPERSAND optional_balanced_string .) RBRACE reduce using rule 6 (balanced_string -> AMPERSAND optional_balanced_string .) state 14 (5) balanced_string -> ASTERISK optional_balanced_string . $end reduce using rule 5 (balanced_string -> ASTERISK optional_balanced_string .) COMMA reduce using rule 5 (balanced_string -> ASTERISK optional_balanced_string .) GREATER_THAN reduce using rule 5 (balanced_string -> ASTERISK optional_balanced_string .) RBRACKET reduce using rule 5 (balanced_string -> ASTERISK optional_balanced_string .) RPAREN reduce using rule 5 (balanced_string -> ASTERISK optional_balanced_string .) RBRACE reduce using rule 5 (balanced_string -> ASTERISK optional_balanced_string .) state 15 (14) balanced_string -> LBRACKET balanced_string . comma_separated_balanced_string RBRACKET optional_balanced_string (1) comma_separated_balanced_string -> . (2) comma_separated_balanced_string -> . COMMA balanced_string comma_separated_balanced_string RBRACKET reduce using rule 1 (comma_separated_balanced_string -> .) COMMA shift and go to state 23 comma_separated_balanced_string shift and go to state 26 state 16 (10) balanced_string -> LBRACKET RBRACKET . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 27 state 17 (8) balanced_string -> IDENTIFIER optional_balanced_string . $end reduce using rule 8 (balanced_string -> IDENTIFIER optional_balanced_string .) COMMA reduce using rule 8 (balanced_string -> IDENTIFIER optional_balanced_string .) GREATER_THAN reduce using rule 8 (balanced_string -> IDENTIFIER optional_balanced_string .) RBRACKET reduce using rule 8 (balanced_string -> IDENTIFIER optional_balanced_string .) RPAREN reduce using rule 8 (balanced_string -> IDENTIFIER optional_balanced_string .) RBRACE reduce using rule 8 (balanced_string -> IDENTIFIER optional_balanced_string .) state 18 (7) balanced_string -> DOUBLE_COLON balanced_string . $end reduce using rule 7 (balanced_string -> DOUBLE_COLON balanced_string .) COMMA reduce using rule 7 (balanced_string -> DOUBLE_COLON balanced_string .) GREATER_THAN reduce using rule 7 (balanced_string -> DOUBLE_COLON balanced_string .) RBRACKET reduce using rule 7 (balanced_string -> DOUBLE_COLON balanced_string .) RPAREN reduce using rule 7 (balanced_string -> DOUBLE_COLON balanced_string .) RBRACE reduce using rule 7 (balanced_string -> DOUBLE_COLON balanced_string .) state 19 (13) balanced_string -> LPAREN balanced_string . comma_separated_balanced_string RPAREN optional_balanced_string (1) comma_separated_balanced_string -> . (2) comma_separated_balanced_string -> . COMMA balanced_string comma_separated_balanced_string RPAREN reduce using rule 1 (comma_separated_balanced_string -> .) COMMA shift and go to state 23 comma_separated_balanced_string shift and go to state 28 state 20 (9) balanced_string -> LPAREN RPAREN . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 29 state 21 (15) balanced_string -> LBRACE balanced_string . comma_separated_balanced_string RBRACE optional_balanced_string (1) comma_separated_balanced_string -> . (2) comma_separated_balanced_string -> . COMMA balanced_string comma_separated_balanced_string RBRACE reduce using rule 1 (comma_separated_balanced_string -> .) COMMA shift and go to state 23 comma_separated_balanced_string shift and go to state 30 state 22 (11) balanced_string -> LBRACE RBRACE . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 31 state 23 (2) comma_separated_balanced_string -> COMMA . balanced_string comma_separated_balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 32 state 24 (16) balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string . GREATER_THAN optional_balanced_string GREATER_THAN shift and go to state 33 state 25 (12) balanced_string -> LESS_THAN GREATER_THAN optional_balanced_string . $end reduce using rule 12 (balanced_string -> LESS_THAN GREATER_THAN optional_balanced_string .) COMMA reduce using rule 12 (balanced_string -> LESS_THAN GREATER_THAN optional_balanced_string .) GREATER_THAN reduce using rule 12 (balanced_string -> LESS_THAN GREATER_THAN optional_balanced_string .) RBRACKET reduce using rule 12 (balanced_string -> LESS_THAN GREATER_THAN optional_balanced_string .) RPAREN reduce using rule 12 (balanced_string -> LESS_THAN GREATER_THAN optional_balanced_string .) RBRACE reduce using rule 12 (balanced_string -> LESS_THAN GREATER_THAN optional_balanced_string .) state 26 (14) balanced_string -> LBRACKET balanced_string comma_separated_balanced_string . RBRACKET optional_balanced_string RBRACKET shift and go to state 34 state 27 (10) balanced_string -> LBRACKET RBRACKET optional_balanced_string . $end reduce using rule 10 (balanced_string -> LBRACKET RBRACKET optional_balanced_string .) COMMA reduce using rule 10 (balanced_string -> LBRACKET RBRACKET optional_balanced_string .) GREATER_THAN reduce using rule 10 (balanced_string -> LBRACKET RBRACKET optional_balanced_string .) RBRACKET reduce using rule 10 (balanced_string -> LBRACKET RBRACKET optional_balanced_string .) RPAREN reduce using rule 10 (balanced_string -> LBRACKET RBRACKET optional_balanced_string .) RBRACE reduce using rule 10 (balanced_string -> LBRACKET RBRACKET optional_balanced_string .) state 28 (13) balanced_string -> LPAREN balanced_string comma_separated_balanced_string . RPAREN optional_balanced_string RPAREN shift and go to state 35 state 29 (9) balanced_string -> LPAREN RPAREN optional_balanced_string . $end reduce using rule 9 (balanced_string -> LPAREN RPAREN optional_balanced_string .) COMMA reduce using rule 9 (balanced_string -> LPAREN RPAREN optional_balanced_string .) GREATER_THAN reduce using rule 9 (balanced_string -> LPAREN RPAREN optional_balanced_string .) RBRACKET reduce using rule 9 (balanced_string -> LPAREN RPAREN optional_balanced_string .) RPAREN reduce using rule 9 (balanced_string -> LPAREN RPAREN optional_balanced_string .) RBRACE reduce using rule 9 (balanced_string -> LPAREN RPAREN optional_balanced_string .) state 30 (15) balanced_string -> LBRACE balanced_string comma_separated_balanced_string . RBRACE optional_balanced_string RBRACE shift and go to state 36 state 31 (11) balanced_string -> LBRACE RBRACE optional_balanced_string . $end reduce using rule 11 (balanced_string -> LBRACE RBRACE optional_balanced_string .) COMMA reduce using rule 11 (balanced_string -> LBRACE RBRACE optional_balanced_string .) GREATER_THAN reduce using rule 11 (balanced_string -> LBRACE RBRACE optional_balanced_string .) RBRACKET reduce using rule 11 (balanced_string -> LBRACE RBRACE optional_balanced_string .) RPAREN reduce using rule 11 (balanced_string -> LBRACE RBRACE optional_balanced_string .) RBRACE reduce using rule 11 (balanced_string -> LBRACE RBRACE optional_balanced_string .) state 32 (2) comma_separated_balanced_string -> COMMA balanced_string . comma_separated_balanced_string (1) comma_separated_balanced_string -> . (2) comma_separated_balanced_string -> . COMMA balanced_string comma_separated_balanced_string GREATER_THAN reduce using rule 1 (comma_separated_balanced_string -> .) RBRACKET reduce using rule 1 (comma_separated_balanced_string -> .) RPAREN reduce using rule 1 (comma_separated_balanced_string -> .) RBRACE reduce using rule 1 (comma_separated_balanced_string -> .) COMMA shift and go to state 23 comma_separated_balanced_string shift and go to state 37 state 33 (16) balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 38 state 34 (14) balanced_string -> LBRACKET balanced_string comma_separated_balanced_string RBRACKET . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 39 state 35 (13) balanced_string -> LPAREN balanced_string comma_separated_balanced_string RPAREN . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 40 state 36 (15) balanced_string -> LBRACE balanced_string comma_separated_balanced_string RBRACE . optional_balanced_string (3) optional_balanced_string -> . (4) optional_balanced_string -> . balanced_string (5) balanced_string -> . ASTERISK optional_balanced_string (6) balanced_string -> . AMPERSAND optional_balanced_string (7) balanced_string -> . DOUBLE_COLON balanced_string (8) balanced_string -> . IDENTIFIER optional_balanced_string (9) balanced_string -> . LPAREN RPAREN optional_balanced_string (10) balanced_string -> . LBRACKET RBRACKET optional_balanced_string (11) balanced_string -> . LBRACE RBRACE optional_balanced_string (12) balanced_string -> . LESS_THAN GREATER_THAN optional_balanced_string (13) balanced_string -> . LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string (14) balanced_string -> . LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string (15) balanced_string -> . LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string (16) balanced_string -> . LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string $end reduce using rule 3 (optional_balanced_string -> .) COMMA reduce using rule 3 (optional_balanced_string -> .) GREATER_THAN reduce using rule 3 (optional_balanced_string -> .) RBRACKET reduce using rule 3 (optional_balanced_string -> .) RPAREN reduce using rule 3 (optional_balanced_string -> .) RBRACE reduce using rule 3 (optional_balanced_string -> .) ASTERISK shift and go to state 4 AMPERSAND shift and go to state 3 DOUBLE_COLON shift and go to state 7 IDENTIFIER shift and go to state 6 LPAREN shift and go to state 8 LBRACKET shift and go to state 5 LBRACE shift and go to state 9 LESS_THAN shift and go to state 2 balanced_string shift and go to state 12 optional_balanced_string shift and go to state 41 state 37 (2) comma_separated_balanced_string -> COMMA balanced_string comma_separated_balanced_string . RBRACE reduce using rule 2 (comma_separated_balanced_string -> COMMA balanced_string comma_separated_balanced_string .) GREATER_THAN reduce using rule 2 (comma_separated_balanced_string -> COMMA balanced_string comma_separated_balanced_string .) RBRACKET reduce using rule 2 (comma_separated_balanced_string -> COMMA balanced_string comma_separated_balanced_string .) RPAREN reduce using rule 2 (comma_separated_balanced_string -> COMMA balanced_string comma_separated_balanced_string .) state 38 (16) balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string . $end reduce using rule 16 (balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string .) COMMA reduce using rule 16 (balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string .) GREATER_THAN reduce using rule 16 (balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string .) RBRACKET reduce using rule 16 (balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string .) RPAREN reduce using rule 16 (balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string .) RBRACE reduce using rule 16 (balanced_string -> LESS_THAN balanced_string comma_separated_balanced_string GREATER_THAN optional_balanced_string .) state 39 (14) balanced_string -> LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string . $end reduce using rule 14 (balanced_string -> LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string .) COMMA reduce using rule 14 (balanced_string -> LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string .) GREATER_THAN reduce using rule 14 (balanced_string -> LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string .) RBRACKET reduce using rule 14 (balanced_string -> LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string .) RPAREN reduce using rule 14 (balanced_string -> LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string .) RBRACE reduce using rule 14 (balanced_string -> LBRACKET balanced_string comma_separated_balanced_string RBRACKET optional_balanced_string .) state 40 (13) balanced_string -> LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string . $end reduce using rule 13 (balanced_string -> LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string .) COMMA reduce using rule 13 (balanced_string -> LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string .) GREATER_THAN reduce using rule 13 (balanced_string -> LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string .) RBRACKET reduce using rule 13 (balanced_string -> LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string .) RPAREN reduce using rule 13 (balanced_string -> LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string .) RBRACE reduce using rule 13 (balanced_string -> LPAREN balanced_string comma_separated_balanced_string RPAREN optional_balanced_string .) state 41 (15) balanced_string -> LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string . $end reduce using rule 15 (balanced_string -> LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string .) COMMA reduce using rule 15 (balanced_string -> LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string .) GREATER_THAN reduce using rule 15 (balanced_string -> LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string .) RBRACKET reduce using rule 15 (balanced_string -> LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string .) RPAREN reduce using rule 15 (balanced_string -> LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string .) RBRACE reduce using rule 15 (balanced_string -> LBRACE balanced_string comma_separated_balanced_string RBRACE optional_balanced_string .)