| Terminals unused in grammar |
| |
| ERROR |
| |
| |
| Grammar |
| |
| 0 $accept: input $end |
| |
| 1 input: %empty |
| 2 | expr |
| 3 | expr error |
| |
| 4 expr: match |
| 5 | match relation expr |
| |
| 6 match: invert ATTRIBUTE '(' args ')' |
| 7 | invert '(' expr ')' |
| |
| 8 args: ATTRIBUTE |
| 9 | ATTRIBUTE args |
| |
| 10 relation: AND |
| 11 | OR |
| |
| 12 invert: %empty |
| 13 | NOT |
| |
| |
| Terminals, with rules where they appear |
| |
| $end (0) 0 |
| '(' (40) 6 7 |
| ')' (41) 6 7 |
| error (256) 3 |
| ERROR (258) |
| ATTRIBUTE (259) 6 8 9 |
| AND (260) 10 |
| OR (261) 11 |
| NOT (262) 13 |
| |
| |
| Nonterminals, with rules where they appear |
| |
| $accept (10) |
| on left: 0 |
| input (11) |
| on left: 1 2 3, on right: 0 |
| expr (12) |
| on left: 4 5, on right: 2 3 5 7 |
| match (13) |
| on left: 6 7, on right: 4 5 |
| args (14) |
| on left: 8 9, on right: 6 9 |
| relation (15) |
| on left: 10 11, on right: 5 |
| invert (16) |
| on left: 12 13, on right: 6 7 |
| |
| |
| State 0 |
| |
| 0 $accept: . input $end |
| |
| NOT shift, and go to state 1 |
| |
| $end reduce using rule 1 (input) |
| $default reduce using rule 12 (invert) |
| |
| input go to state 2 |
| expr go to state 3 |
| match go to state 4 |
| invert go to state 5 |
| |
| |
| State 1 |
| |
| 13 invert: NOT . |
| |
| $default reduce using rule 13 (invert) |
| |
| |
| State 2 |
| |
| 0 $accept: input . $end |
| |
| $end shift, and go to state 6 |
| |
| |
| State 3 |
| |
| 2 input: expr . |
| 3 | expr . error |
| |
| error shift, and go to state 7 |
| |
| $end reduce using rule 2 (input) |
| |
| |
| State 4 |
| |
| 4 expr: match . |
| 5 | match . relation expr |
| |
| AND shift, and go to state 8 |
| OR shift, and go to state 9 |
| |
| $default reduce using rule 4 (expr) |
| |
| relation go to state 10 |
| |
| |
| State 5 |
| |
| 6 match: invert . ATTRIBUTE '(' args ')' |
| 7 | invert . '(' expr ')' |
| |
| ATTRIBUTE shift, and go to state 11 |
| '(' shift, and go to state 12 |
| |
| |
| State 6 |
| |
| 0 $accept: input $end . |
| |
| $default accept |
| |
| |
| State 7 |
| |
| 3 input: expr error . |
| |
| $default reduce using rule 3 (input) |
| |
| |
| State 8 |
| |
| 10 relation: AND . |
| |
| $default reduce using rule 10 (relation) |
| |
| |
| State 9 |
| |
| 11 relation: OR . |
| |
| $default reduce using rule 11 (relation) |
| |
| |
| State 10 |
| |
| 5 expr: match relation . expr |
| |
| NOT shift, and go to state 1 |
| |
| $default reduce using rule 12 (invert) |
| |
| expr go to state 13 |
| match go to state 4 |
| invert go to state 5 |
| |
| |
| State 11 |
| |
| 6 match: invert ATTRIBUTE . '(' args ')' |
| |
| '(' shift, and go to state 14 |
| |
| |
| State 12 |
| |
| 7 match: invert '(' . expr ')' |
| |
| NOT shift, and go to state 1 |
| |
| $default reduce using rule 12 (invert) |
| |
| expr go to state 15 |
| match go to state 4 |
| invert go to state 5 |
| |
| |
| State 13 |
| |
| 5 expr: match relation expr . |
| |
| $default reduce using rule 5 (expr) |
| |
| |
| State 14 |
| |
| 6 match: invert ATTRIBUTE '(' . args ')' |
| |
| ATTRIBUTE shift, and go to state 16 |
| |
| args go to state 17 |
| |
| |
| State 15 |
| |
| 7 match: invert '(' expr . ')' |
| |
| ')' shift, and go to state 18 |
| |
| |
| State 16 |
| |
| 8 args: ATTRIBUTE . |
| 9 | ATTRIBUTE . args |
| |
| ATTRIBUTE shift, and go to state 16 |
| |
| $default reduce using rule 8 (args) |
| |
| args go to state 19 |
| |
| |
| State 17 |
| |
| 6 match: invert ATTRIBUTE '(' args . ')' |
| |
| ')' shift, and go to state 20 |
| |
| |
| State 18 |
| |
| 7 match: invert '(' expr ')' . |
| |
| $default reduce using rule 7 (match) |
| |
| |
| State 19 |
| |
| 9 args: ATTRIBUTE args . |
| |
| $default reduce using rule 9 (args) |
| |
| |
| State 20 |
| |
| 6 match: invert ATTRIBUTE '(' args ')' . |
| |
| $default reduce using rule 6 (match) |