1   0  $accept : list $end
2
3   1  list :
4   2       | list stat '\n'
5   3       | list error '\n'
6
7   4  stat : expr
8   5       | LETTER '=' expr
9
10   6  expr : '(' expr ')'
11   7       | expr OP_ADD expr
12   8       | expr OP_SUB expr
13   9       | expr OP_MUL expr
14  10       | expr OP_DIV expr
15  11       | expr OP_MOD expr
16  12       | expr OP_AND expr
17  13       | expr '|' expr
18  14       | OP_SUB expr
19  15       | LETTER
20  16       | number
21
22  17  number : DIGIT
23  18         | number DIGIT
24
25state 0
26	$accept : . list $end  (0)
27	list : .  (1)
28
29	.  reduce 1
30
31	list  goto 1
32
33
34state 1
35	$accept : list . $end  (0)
36	list : list . stat '\n'  (2)
37	list : list . error '\n'  (3)
38
39	$end  accept
40	error  shift 2
41	OP_SUB  shift 3
42	DIGIT  shift 4
43	LETTER  shift 5
44	'('  shift 6
45	.  error
46
47	stat  goto 7
48	expr  goto 8
49	number  goto 9
50
51
52state 2
53	list : list error . '\n'  (3)
54
55	'\n'  shift 10
56	.  error
57
58
59state 3
60	expr : OP_SUB . expr  (14)
61
62	OP_SUB  shift 3
63	DIGIT  shift 4
64	LETTER  shift 11
65	'('  shift 6
66	.  error
67
68	expr  goto 12
69	number  goto 9
70
71
72state 4
73	number : DIGIT .  (17)
74
75	.  reduce 17
76
77
78state 5
79	stat : LETTER . '=' expr  (5)
80	expr : LETTER .  (15)
81
82	'='  shift 13
83	OP_ADD  reduce 15
84	OP_SUB  reduce 15
85	OP_MUL  reduce 15
86	OP_DIV  reduce 15
87	OP_MOD  reduce 15
88	OP_AND  reduce 15
89	'|'  reduce 15
90	'\n'  reduce 15
91
92
93state 6
94	expr : '(' . expr ')'  (6)
95
96	OP_SUB  shift 3
97	DIGIT  shift 4
98	LETTER  shift 11
99	'('  shift 6
100	.  error
101
102	expr  goto 14
103	number  goto 9
104
105
106state 7
107	list : list stat . '\n'  (2)
108
109	'\n'  shift 15
110	.  error
111
112
113state 8
114	stat : expr .  (4)
115	expr : expr . OP_ADD expr  (7)
116	expr : expr . OP_SUB expr  (8)
117	expr : expr . OP_MUL expr  (9)
118	expr : expr . OP_DIV expr  (10)
119	expr : expr . OP_MOD expr  (11)
120	expr : expr . OP_AND expr  (12)
121	expr : expr . '|' expr  (13)
122
123	OP_ADD  shift 16
124	OP_SUB  shift 17
125	OP_MUL  shift 18
126	OP_DIV  shift 19
127	OP_MOD  shift 20
128	OP_AND  shift 21
129	'|'  shift 22
130	'\n'  reduce 4
131
132
133state 9
134	expr : number .  (16)
135	number : number . DIGIT  (18)
136
137	DIGIT  shift 23
138	OP_ADD  reduce 16
139	OP_SUB  reduce 16
140	OP_MUL  reduce 16
141	OP_DIV  reduce 16
142	OP_MOD  reduce 16
143	OP_AND  reduce 16
144	'|'  reduce 16
145	'\n'  reduce 16
146	')'  reduce 16
147
148
149state 10
150	list : list error '\n' .  (3)
151
152	.  reduce 3
153
154
155state 11
156	expr : LETTER .  (15)
157
158	.  reduce 15
159
160
16112: shift/reduce conflict (shift 16, reduce 14) on OP_ADD
16212: shift/reduce conflict (shift 17, reduce 14) on OP_SUB
16312: shift/reduce conflict (shift 18, reduce 14) on OP_MUL
16412: shift/reduce conflict (shift 19, reduce 14) on OP_DIV
16512: shift/reduce conflict (shift 20, reduce 14) on OP_MOD
16612: shift/reduce conflict (shift 21, reduce 14) on OP_AND
167state 12
168	expr : expr . OP_ADD expr  (7)
169	expr : expr . OP_SUB expr  (8)
170	expr : expr . OP_MUL expr  (9)
171	expr : expr . OP_DIV expr  (10)
172	expr : expr . OP_MOD expr  (11)
173	expr : expr . OP_AND expr  (12)
174	expr : expr . '|' expr  (13)
175	expr : OP_SUB expr .  (14)
176
177	OP_ADD  shift 16
178	OP_SUB  shift 17
179	OP_MUL  shift 18
180	OP_DIV  shift 19
181	OP_MOD  shift 20
182	OP_AND  shift 21
183	'|'  reduce 14
184	'\n'  reduce 14
185	')'  reduce 14
186
187
188state 13
189	stat : LETTER '=' . expr  (5)
190
191	OP_SUB  shift 3
192	DIGIT  shift 4
193	LETTER  shift 11
194	'('  shift 6
195	.  error
196
197	expr  goto 24
198	number  goto 9
199
200
201state 14
202	expr : '(' expr . ')'  (6)
203	expr : expr . OP_ADD expr  (7)
204	expr : expr . OP_SUB expr  (8)
205	expr : expr . OP_MUL expr  (9)
206	expr : expr . OP_DIV expr  (10)
207	expr : expr . OP_MOD expr  (11)
208	expr : expr . OP_AND expr  (12)
209	expr : expr . '|' expr  (13)
210
211	OP_ADD  shift 16
212	OP_SUB  shift 17
213	OP_MUL  shift 18
214	OP_DIV  shift 19
215	OP_MOD  shift 20
216	OP_AND  shift 21
217	'|'  shift 22
218	')'  shift 25
219	.  error
220
221
222state 15
223	list : list stat '\n' .  (2)
224
225	.  reduce 2
226
227
228state 16
229	expr : expr OP_ADD . expr  (7)
230
231	OP_SUB  shift 3
232	DIGIT  shift 4
233	LETTER  shift 11
234	'('  shift 6
235	.  error
236
237	expr  goto 26
238	number  goto 9
239
240
241state 17
242	expr : expr OP_SUB . expr  (8)
243
244	OP_SUB  shift 3
245	DIGIT  shift 4
246	LETTER  shift 11
247	'('  shift 6
248	.  error
249
250	expr  goto 27
251	number  goto 9
252
253
254state 18
255	expr : expr OP_MUL . expr  (9)
256
257	OP_SUB  shift 3
258	DIGIT  shift 4
259	LETTER  shift 11
260	'('  shift 6
261	.  error
262
263	expr  goto 28
264	number  goto 9
265
266
267state 19
268	expr : expr OP_DIV . expr  (10)
269
270	OP_SUB  shift 3
271	DIGIT  shift 4
272	LETTER  shift 11
273	'('  shift 6
274	.  error
275
276	expr  goto 29
277	number  goto 9
278
279
280state 20
281	expr : expr OP_MOD . expr  (11)
282
283	OP_SUB  shift 3
284	DIGIT  shift 4
285	LETTER  shift 11
286	'('  shift 6
287	.  error
288
289	expr  goto 30
290	number  goto 9
291
292
293state 21
294	expr : expr OP_AND . expr  (12)
295
296	OP_SUB  shift 3
297	DIGIT  shift 4
298	LETTER  shift 11
299	'('  shift 6
300	.  error
301
302	expr  goto 31
303	number  goto 9
304
305
306state 22
307	expr : expr '|' . expr  (13)
308
309	OP_SUB  shift 3
310	DIGIT  shift 4
311	LETTER  shift 11
312	'('  shift 6
313	.  error
314
315	expr  goto 32
316	number  goto 9
317
318
319state 23
320	number : number DIGIT .  (18)
321
322	.  reduce 18
323
324
325state 24
326	stat : LETTER '=' expr .  (5)
327	expr : expr . OP_ADD expr  (7)
328	expr : expr . OP_SUB expr  (8)
329	expr : expr . OP_MUL expr  (9)
330	expr : expr . OP_DIV expr  (10)
331	expr : expr . OP_MOD expr  (11)
332	expr : expr . OP_AND expr  (12)
333	expr : expr . '|' expr  (13)
334
335	OP_ADD  shift 16
336	OP_SUB  shift 17
337	OP_MUL  shift 18
338	OP_DIV  shift 19
339	OP_MOD  shift 20
340	OP_AND  shift 21
341	'|'  shift 22
342	'\n'  reduce 5
343
344
345state 25
346	expr : '(' expr ')' .  (6)
347
348	.  reduce 6
349
350
35126: shift/reduce conflict (shift 16, reduce 7) on OP_ADD
35226: shift/reduce conflict (shift 17, reduce 7) on OP_SUB
35326: shift/reduce conflict (shift 18, reduce 7) on OP_MUL
35426: shift/reduce conflict (shift 19, reduce 7) on OP_DIV
35526: shift/reduce conflict (shift 20, reduce 7) on OP_MOD
35626: shift/reduce conflict (shift 21, reduce 7) on OP_AND
35726: shift/reduce conflict (shift 22, reduce 7) on '|'
358state 26
359	expr : expr . OP_ADD expr  (7)
360	expr : expr OP_ADD expr .  (7)
361	expr : expr . OP_SUB expr  (8)
362	expr : expr . OP_MUL expr  (9)
363	expr : expr . OP_DIV expr  (10)
364	expr : expr . OP_MOD expr  (11)
365	expr : expr . OP_AND expr  (12)
366	expr : expr . '|' expr  (13)
367
368	OP_ADD  shift 16
369	OP_SUB  shift 17
370	OP_MUL  shift 18
371	OP_DIV  shift 19
372	OP_MOD  shift 20
373	OP_AND  shift 21
374	'|'  shift 22
375	'\n'  reduce 7
376	')'  reduce 7
377
378
37927: shift/reduce conflict (shift 16, reduce 8) on OP_ADD
38027: shift/reduce conflict (shift 17, reduce 8) on OP_SUB
38127: shift/reduce conflict (shift 18, reduce 8) on OP_MUL
38227: shift/reduce conflict (shift 19, reduce 8) on OP_DIV
38327: shift/reduce conflict (shift 20, reduce 8) on OP_MOD
38427: shift/reduce conflict (shift 21, reduce 8) on OP_AND
38527: shift/reduce conflict (shift 22, reduce 8) on '|'
386state 27
387	expr : expr . OP_ADD expr  (7)
388	expr : expr . OP_SUB expr  (8)
389	expr : expr OP_SUB expr .  (8)
390	expr : expr . OP_MUL expr  (9)
391	expr : expr . OP_DIV expr  (10)
392	expr : expr . OP_MOD expr  (11)
393	expr : expr . OP_AND expr  (12)
394	expr : expr . '|' expr  (13)
395
396	OP_ADD  shift 16
397	OP_SUB  shift 17
398	OP_MUL  shift 18
399	OP_DIV  shift 19
400	OP_MOD  shift 20
401	OP_AND  shift 21
402	'|'  shift 22
403	'\n'  reduce 8
404	')'  reduce 8
405
406
40728: shift/reduce conflict (shift 16, reduce 9) on OP_ADD
40828: shift/reduce conflict (shift 17, reduce 9) on OP_SUB
40928: shift/reduce conflict (shift 18, reduce 9) on OP_MUL
41028: shift/reduce conflict (shift 19, reduce 9) on OP_DIV
41128: shift/reduce conflict (shift 20, reduce 9) on OP_MOD
41228: shift/reduce conflict (shift 21, reduce 9) on OP_AND
41328: shift/reduce conflict (shift 22, reduce 9) on '|'
414state 28
415	expr : expr . OP_ADD expr  (7)
416	expr : expr . OP_SUB expr  (8)
417	expr : expr . OP_MUL expr  (9)
418	expr : expr OP_MUL expr .  (9)
419	expr : expr . OP_DIV expr  (10)
420	expr : expr . OP_MOD expr  (11)
421	expr : expr . OP_AND expr  (12)
422	expr : expr . '|' expr  (13)
423
424	OP_ADD  shift 16
425	OP_SUB  shift 17
426	OP_MUL  shift 18
427	OP_DIV  shift 19
428	OP_MOD  shift 20
429	OP_AND  shift 21
430	'|'  shift 22
431	'\n'  reduce 9
432	')'  reduce 9
433
434
43529: shift/reduce conflict (shift 16, reduce 10) on OP_ADD
43629: shift/reduce conflict (shift 17, reduce 10) on OP_SUB
43729: shift/reduce conflict (shift 18, reduce 10) on OP_MUL
43829: shift/reduce conflict (shift 19, reduce 10) on OP_DIV
43929: shift/reduce conflict (shift 20, reduce 10) on OP_MOD
44029: shift/reduce conflict (shift 21, reduce 10) on OP_AND
44129: shift/reduce conflict (shift 22, reduce 10) on '|'
442state 29
443	expr : expr . OP_ADD expr  (7)
444	expr : expr . OP_SUB expr  (8)
445	expr : expr . OP_MUL expr  (9)
446	expr : expr . OP_DIV expr  (10)
447	expr : expr OP_DIV expr .  (10)
448	expr : expr . OP_MOD expr  (11)
449	expr : expr . OP_AND expr  (12)
450	expr : expr . '|' expr  (13)
451
452	OP_ADD  shift 16
453	OP_SUB  shift 17
454	OP_MUL  shift 18
455	OP_DIV  shift 19
456	OP_MOD  shift 20
457	OP_AND  shift 21
458	'|'  shift 22
459	'\n'  reduce 10
460	')'  reduce 10
461
462
46330: shift/reduce conflict (shift 16, reduce 11) on OP_ADD
46430: shift/reduce conflict (shift 17, reduce 11) on OP_SUB
46530: shift/reduce conflict (shift 18, reduce 11) on OP_MUL
46630: shift/reduce conflict (shift 19, reduce 11) on OP_DIV
46730: shift/reduce conflict (shift 20, reduce 11) on OP_MOD
46830: shift/reduce conflict (shift 21, reduce 11) on OP_AND
46930: shift/reduce conflict (shift 22, reduce 11) on '|'
470state 30
471	expr : expr . OP_ADD expr  (7)
472	expr : expr . OP_SUB expr  (8)
473	expr : expr . OP_MUL expr  (9)
474	expr : expr . OP_DIV expr  (10)
475	expr : expr . OP_MOD expr  (11)
476	expr : expr OP_MOD expr .  (11)
477	expr : expr . OP_AND expr  (12)
478	expr : expr . '|' expr  (13)
479
480	OP_ADD  shift 16
481	OP_SUB  shift 17
482	OP_MUL  shift 18
483	OP_DIV  shift 19
484	OP_MOD  shift 20
485	OP_AND  shift 21
486	'|'  shift 22
487	'\n'  reduce 11
488	')'  reduce 11
489
490
49131: shift/reduce conflict (shift 16, reduce 12) on OP_ADD
49231: shift/reduce conflict (shift 17, reduce 12) on OP_SUB
49331: shift/reduce conflict (shift 18, reduce 12) on OP_MUL
49431: shift/reduce conflict (shift 19, reduce 12) on OP_DIV
49531: shift/reduce conflict (shift 20, reduce 12) on OP_MOD
49631: shift/reduce conflict (shift 21, reduce 12) on OP_AND
49731: shift/reduce conflict (shift 22, reduce 12) on '|'
498state 31
499	expr : expr . OP_ADD expr  (7)
500	expr : expr . OP_SUB expr  (8)
501	expr : expr . OP_MUL expr  (9)
502	expr : expr . OP_DIV expr  (10)
503	expr : expr . OP_MOD expr  (11)
504	expr : expr . OP_AND expr  (12)
505	expr : expr OP_AND expr .  (12)
506	expr : expr . '|' expr  (13)
507
508	OP_ADD  shift 16
509	OP_SUB  shift 17
510	OP_MUL  shift 18
511	OP_DIV  shift 19
512	OP_MOD  shift 20
513	OP_AND  shift 21
514	'|'  shift 22
515	'\n'  reduce 12
516	')'  reduce 12
517
518
51932: shift/reduce conflict (shift 16, reduce 13) on OP_ADD
52032: shift/reduce conflict (shift 17, reduce 13) on OP_SUB
52132: shift/reduce conflict (shift 18, reduce 13) on OP_MUL
52232: shift/reduce conflict (shift 19, reduce 13) on OP_DIV
52332: shift/reduce conflict (shift 20, reduce 13) on OP_MOD
52432: shift/reduce conflict (shift 21, reduce 13) on OP_AND
525state 32
526	expr : expr . OP_ADD expr  (7)
527	expr : expr . OP_SUB expr  (8)
528	expr : expr . OP_MUL expr  (9)
529	expr : expr . OP_DIV expr  (10)
530	expr : expr . OP_MOD expr  (11)
531	expr : expr . OP_AND expr  (12)
532	expr : expr . '|' expr  (13)
533	expr : expr '|' expr .  (13)
534
535	OP_ADD  shift 16
536	OP_SUB  shift 17
537	OP_MUL  shift 18
538	OP_DIV  shift 19
539	OP_MOD  shift 20
540	OP_AND  shift 21
541	'|'  reduce 13
542	'\n'  reduce 13
543	')'  reduce 13
544
545
546State 12 contains 6 shift/reduce conflicts.
547State 26 contains 7 shift/reduce conflicts.
548State 27 contains 7 shift/reduce conflicts.
549State 28 contains 7 shift/reduce conflicts.
550State 29 contains 7 shift/reduce conflicts.
551State 30 contains 7 shift/reduce conflicts.
552State 31 contains 7 shift/reduce conflicts.
553State 32 contains 6 shift/reduce conflicts.
554
555
55628 terminals, 5 nonterminals
55719 grammar rules, 33 states
558
559grammar parser grammar
560symbol# value# symbol
561     0      0  $end
562     1    256  error
563     2    257  OP_ADD
564     3    258  "ADD"
565     4    259  OP_SUB
566     5    260  "SUB"
567     6    261  OP_MUL
568     7    262  "MUL"
569     8    263  OP_DIV
570     9    264  "DIV"
571    10    265  OP_MOD
572    11    266  "MOD"
573    12    267  OP_AND
574    13    268  "AND"
575    14    269  DIGIT
576    15    270  LETTER
577    16    124  '|'
578    17     38  '&'
579    18     43  '+'
580    19     45  '-'
581    20     42  '*'
582    21     47  '/'
583    22     37  '%'
584    23    271  UMINUS
585    24     10  '\n'
586    25     61  '='
587    26     40  '('
588    27     41  ')'
589    28    272  $accept
590    29    273  list
591    30    274  stat
592    31    275  expr
593    32    276  number
594