0  $accept : list $end

   1  list :
   2       | list stat '\n'
   3       | list error '\n'

   4  stat : expr
   5       | LETTER '=' expr

   6  expr : '(' expr ')'
   7       | expr "ADD" expr
   8       | expr "SUB" expr
   9       | expr "MUL" expr
  10       | expr "DIV" expr
  11       | expr "MOD" expr
  12       | expr "AND" expr
  13       | expr '|' expr
  14       | "SUB" expr
  15       | LETTER
  16       | number

  17  number : DIGIT
  18         | number DIGIT

state 0
	$accept : . list $end  (0)
	list : .  (1)

	.  reduce 1

	list  goto 1


state 1
	$accept : list . $end  (0)
	list : list . stat '\n'  (2)
	list : list . error '\n'  (3)

	$end  accept
	error  shift 2
	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 5
	'('  shift 6
	.  error

	stat  goto 7
	expr  goto 8
	number  goto 9


state 2
	list : list error . '\n'  (3)

	'\n'  shift 10
	.  error


state 3
	expr : "SUB" . expr  (14)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 12
	number  goto 9


state 4
	number : DIGIT .  (17)

	.  reduce 17


state 5
	stat : LETTER . '=' expr  (5)
	expr : LETTER .  (15)

	'='  shift 13
	"ADD"  reduce 15
	"SUB"  reduce 15
	"MUL"  reduce 15
	"DIV"  reduce 15
	"MOD"  reduce 15
	"AND"  reduce 15
	'|'  reduce 15
	'\n'  reduce 15


state 6
	expr : '(' . expr ')'  (6)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 14
	number  goto 9


state 7
	list : list stat . '\n'  (2)

	'\n'  shift 15
	.  error


state 8
	stat : expr .  (4)
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  shift 22
	'\n'  reduce 4


state 9
	expr : number .  (16)
	number : number . DIGIT  (18)

	DIGIT  shift 23
	"ADD"  reduce 16
	"SUB"  reduce 16
	"MUL"  reduce 16
	"DIV"  reduce 16
	"MOD"  reduce 16
	"AND"  reduce 16
	'|'  reduce 16
	'\n'  reduce 16
	')'  reduce 16


state 10
	list : list error '\n' .  (3)

	.  reduce 3


state 11
	expr : LETTER .  (15)

	.  reduce 15


12: shift/reduce conflict (shift 16, reduce 14) on "ADD"
12: shift/reduce conflict (shift 17, reduce 14) on "SUB"
12: shift/reduce conflict (shift 18, reduce 14) on "MUL"
12: shift/reduce conflict (shift 19, reduce 14) on "DIV"
12: shift/reduce conflict (shift 20, reduce 14) on "MOD"
12: shift/reduce conflict (shift 21, reduce 14) on "AND"
state 12
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)
	expr : "SUB" expr .  (14)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  reduce 14
	'\n'  reduce 14
	')'  reduce 14


state 13
	stat : LETTER '=' . expr  (5)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 24
	number  goto 9


state 14
	expr : '(' expr . ')'  (6)
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  shift 22
	')'  shift 25
	.  error


state 15
	list : list stat '\n' .  (2)

	.  reduce 2


state 16
	expr : expr "ADD" . expr  (7)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 26
	number  goto 9


state 17
	expr : expr "SUB" . expr  (8)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 27
	number  goto 9


state 18
	expr : expr "MUL" . expr  (9)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 28
	number  goto 9


state 19
	expr : expr "DIV" . expr  (10)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 29
	number  goto 9


state 20
	expr : expr "MOD" . expr  (11)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 30
	number  goto 9


state 21
	expr : expr "AND" . expr  (12)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 31
	number  goto 9


state 22
	expr : expr '|' . expr  (13)

	"SUB"  shift 3
	DIGIT  shift 4
	LETTER  shift 11
	'('  shift 6
	.  error

	expr  goto 32
	number  goto 9


state 23
	number : number DIGIT .  (18)

	.  reduce 18


state 24
	stat : LETTER '=' expr .  (5)
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  shift 22
	'\n'  reduce 5


state 25
	expr : '(' expr ')' .  (6)

	.  reduce 6


26: shift/reduce conflict (shift 16, reduce 7) on "ADD"
26: shift/reduce conflict (shift 17, reduce 7) on "SUB"
26: shift/reduce conflict (shift 18, reduce 7) on "MUL"
26: shift/reduce conflict (shift 19, reduce 7) on "DIV"
26: shift/reduce conflict (shift 20, reduce 7) on "MOD"
26: shift/reduce conflict (shift 21, reduce 7) on "AND"
26: shift/reduce conflict (shift 22, reduce 7) on '|'
state 26
	expr : expr . "ADD" expr  (7)
	expr : expr "ADD" expr .  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  shift 22
	'\n'  reduce 7
	')'  reduce 7


27: shift/reduce conflict (shift 16, reduce 8) on "ADD"
27: shift/reduce conflict (shift 17, reduce 8) on "SUB"
27: shift/reduce conflict (shift 18, reduce 8) on "MUL"
27: shift/reduce conflict (shift 19, reduce 8) on "DIV"
27: shift/reduce conflict (shift 20, reduce 8) on "MOD"
27: shift/reduce conflict (shift 21, reduce 8) on "AND"
27: shift/reduce conflict (shift 22, reduce 8) on '|'
state 27
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr "SUB" expr .  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  shift 22
	'\n'  reduce 8
	')'  reduce 8


28: shift/reduce conflict (shift 16, reduce 9) on "ADD"
28: shift/reduce conflict (shift 17, reduce 9) on "SUB"
28: shift/reduce conflict (shift 18, reduce 9) on "MUL"
28: shift/reduce conflict (shift 19, reduce 9) on "DIV"
28: shift/reduce conflict (shift 20, reduce 9) on "MOD"
28: shift/reduce conflict (shift 21, reduce 9) on "AND"
28: shift/reduce conflict (shift 22, reduce 9) on '|'
state 28
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr "MUL" expr .  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  shift 22
	'\n'  reduce 9
	')'  reduce 9


29: shift/reduce conflict (shift 16, reduce 10) on "ADD"
29: shift/reduce conflict (shift 17, reduce 10) on "SUB"
29: shift/reduce conflict (shift 18, reduce 10) on "MUL"
29: shift/reduce conflict (shift 19, reduce 10) on "DIV"
29: shift/reduce conflict (shift 20, reduce 10) on "MOD"
29: shift/reduce conflict (shift 21, reduce 10) on "AND"
29: shift/reduce conflict (shift 22, reduce 10) on '|'
state 29
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr "DIV" expr .  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  shift 22
	'\n'  reduce 10
	')'  reduce 10


30: shift/reduce conflict (shift 16, reduce 11) on "ADD"
30: shift/reduce conflict (shift 17, reduce 11) on "SUB"
30: shift/reduce conflict (shift 18, reduce 11) on "MUL"
30: shift/reduce conflict (shift 19, reduce 11) on "DIV"
30: shift/reduce conflict (shift 20, reduce 11) on "MOD"
30: shift/reduce conflict (shift 21, reduce 11) on "AND"
30: shift/reduce conflict (shift 22, reduce 11) on '|'
state 30
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr "MOD" expr .  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  shift 22
	'\n'  reduce 11
	')'  reduce 11


31: shift/reduce conflict (shift 16, reduce 12) on "ADD"
31: shift/reduce conflict (shift 17, reduce 12) on "SUB"
31: shift/reduce conflict (shift 18, reduce 12) on "MUL"
31: shift/reduce conflict (shift 19, reduce 12) on "DIV"
31: shift/reduce conflict (shift 20, reduce 12) on "MOD"
31: shift/reduce conflict (shift 21, reduce 12) on "AND"
31: shift/reduce conflict (shift 22, reduce 12) on '|'
state 31
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr "AND" expr .  (12)
	expr : expr . '|' expr  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  shift 22
	'\n'  reduce 12
	')'  reduce 12


32: shift/reduce conflict (shift 16, reduce 13) on "ADD"
32: shift/reduce conflict (shift 17, reduce 13) on "SUB"
32: shift/reduce conflict (shift 18, reduce 13) on "MUL"
32: shift/reduce conflict (shift 19, reduce 13) on "DIV"
32: shift/reduce conflict (shift 20, reduce 13) on "MOD"
32: shift/reduce conflict (shift 21, reduce 13) on "AND"
state 32
	expr : expr . "ADD" expr  (7)
	expr : expr . "SUB" expr  (8)
	expr : expr . "MUL" expr  (9)
	expr : expr . "DIV" expr  (10)
	expr : expr . "MOD" expr  (11)
	expr : expr . "AND" expr  (12)
	expr : expr . '|' expr  (13)
	expr : expr '|' expr .  (13)

	"ADD"  shift 16
	"SUB"  shift 17
	"MUL"  shift 18
	"DIV"  shift 19
	"MOD"  shift 20
	"AND"  shift 21
	'|'  reduce 13
	'\n'  reduce 13
	')'  reduce 13


State 12 contains 6 shift/reduce conflicts.
State 26 contains 7 shift/reduce conflicts.
State 27 contains 7 shift/reduce conflicts.
State 28 contains 7 shift/reduce conflicts.
State 29 contains 7 shift/reduce conflicts.
State 30 contains 7 shift/reduce conflicts.
State 31 contains 7 shift/reduce conflicts.
State 32 contains 6 shift/reduce conflicts.


28 terminals, 5 nonterminals
19 grammar rules, 33 states

grammar parser grammar
symbol# value# symbol
     0      0  $end
     1    256  error
     2    257  OP_ADD
     3    258  "ADD"
     4    259  OP_SUB
     5    260  "SUB"
     6    261  OP_MUL
     7    262  "MUL"
     8    263  OP_DIV
     9    264  "DIV"
    10    265  OP_MOD
    11    266  "MOD"
    12    267  OP_AND
    13    268  "AND"
    14    269  DIGIT
    15    270  LETTER
    16    124  '|'
    17     38  '&'
    18     43  '+'
    19     45  '-'
    20     42  '*'
    21     47  '/'
    22     37  '%'
    23    271  UMINUS
    24     10  '\n'
    25     61  '='
    26     40  '('
    27     41  ')'
    28    272  $accept
    29    273  list
    30    274  stat
    31    275  expr
    32    276  number