You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

244 lines
3.4 KiB

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)