The following code was generated for the grammar in part 1 of the lab.
**********************************
Gotos[34, "else"] is ambiguous. Filled with a shift or goto
**********************************
State 0
0 P1 -> !P
1 P -> !B "."
2 B -> !V S1
3 V -> !"var" V1
State 1
0 P1 -> P !
State 2
1 P -> B !"."
State 3
2 B -> V !S1
8 S1 -> !"ident" ":=" E
9 S1 -> !"if" C "then" S1 "else" S1
10 S1 -> !"if" C "then" S1
11 S1 -> !"while" C "do" S1
12 S1 -> !"begin" S "end"
13 S1 -> !
State 4
3 V -> "var" !V1
4 V1 -> !"ident" ":" "type"
5 V1 -> !"ident" ":" "type" ";" V1
State 5
1 P -> B "." !
State 6
2 B -> V S1 !
State 7
8 S1 -> "ident" !":=" E
State 8
9 S1 -> "if" !C "then" S1 "else" S1
10 S1 -> "if" !C "then" S1
20 C -> !E "relop" E
14 E -> !E "+" T
15 E -> !T
16 T -> !T "*" F
17 T -> !F
18 F -> !"(" E ")"
19 F -> !"ident"
State 9
11 S1 -> "while" !C "do" S1
20 C -> !E "relop" E
14 E -> !E "+" T
15 E -> !T
16 T -> !T "*" F
17 T -> !F
18 F -> !"(" E ")"
19 F -> !"ident"
State 10
12 S1 -> "begin" !S "end"
6 S -> !S1
7 S -> !S1 ";" S
8 S1 -> !"ident" ":=" E
9 S1 -> !"if" C "then" S1 "else" S1
10 S1 -> !"if" C "then" S1
11 S1 -> !"while" C "do" S1
12 S1 -> !"begin" S "end"
13 S1 -> !
State 11
3 V -> "var" V1 !
State 12
4 V1 -> "ident" !":" "type"
5 V1 -> "ident" !":" "type" ";" V1
State 13
8 S1 -> "ident" ":=" !E
14 E -> !E "+" T
15 E -> !T
16 T -> !T "*" F
17 T -> !F
18 F -> !"(" E ")"
19 F -> !"ident"
State 14
9 S1 -> "if" C !"then" S1 "else" S1
10 S1 -> "if" C !"then" S1
State 15
20 C -> E !"relop" E
14 E -> E !"+" T
State 16
15 E -> T !
16 T -> T !"*" F
State 17
17 T -> F !
State 18
18 F -> "(" !E ")"
14 E -> !E "+" T
15 E -> !T
16 T -> !T "*" F
17 T -> !F
18 F -> !"(" E ")"
19 F -> !"ident"
State 19
19 F -> "ident" !
State 20
11 S1 -> "while" C !"do" S1
State 21
12 S1 -> "begin" S !"end"
State 22
6 S -> S1 !
7 S -> S1 !";" S
State 23
4 V1 -> "ident" ":" !"type"
5 V1 -> "ident" ":" !"type" ";" V1
State 24
8 S1 -> "ident" ":=" E !
14 E -> E !"+" T
State 25
9 S1 -> "if" C "then" !S1 "else" S1
10 S1 -> "if" C "then" !S1
8 S1 -> !"ident" ":=" E
9 S1 -> !"if" C "then" S1 "else" S1
10 S1 -> !"if" C "then" S1
11 S1 -> !"while" C "do" S1
12 S1 -> !"begin" S "end"
13 S1 -> !
State 26
20 C -> E "relop" !E
14 E -> !E "+" T
15 E -> !T
16 T -> !T "*" F
17 T -> !F
18 F -> !"(" E ")"
19 F -> !"ident"
State 27
14 E -> E "+" !T
16 T -> !T "*" F
17 T -> !F
18 F -> !"(" E ")"
19 F -> !"ident"
State 28
16 T -> T "*" !F
18 F -> !"(" E ")"
19 F -> !"ident"
State 29
18 F -> "(" E !")"
14 E -> E !"+" T
State 30
11 S1 -> "while" C "do" !S1
8 S1 -> !"ident" ":=" E
9 S1 -> !"if" C "then" S1 "else" S1
10 S1 -> !"if" C "then" S1
11 S1 -> !"while" C "do" S1
12 S1 -> !"begin" S "end"
13 S1 -> !
State 31
12 S1 -> "begin" S "end" !
State 32
7 S -> S1 ";" !S
6 S -> !S1
7 S -> !S1 ";" S
8 S1 -> !"ident" ":=" E
9 S1 -> !"if" C "then" S1 "else" S1
10 S1 -> !"if" C "then" S1
11 S1 -> !"while" C "do" S1
12 S1 -> !"begin" S "end"
13 S1 -> !
State 33
4 V1 -> "ident" ":" "type" !
5 V1 -> "ident" ":" "type" !";" V1
State 34
9 S1 -> "if" C "then" S1 !"else" S1
10 S1 -> "if" C "then" S1 !
State 35
20 C -> E "relop" E !
14 E -> E !"+" T
State 36
14 E -> E "+" T !
16 T -> T !"*" F
State 37
16 T -> T "*" F !
State 38
18 F -> "(" E ")" !
State 39
11 S1 -> "while" C "do" S1 !
State 40
7 S -> S1 ";" S !
State 41
5 V1 -> "ident" ":" "type" ";" !V1
4 V1 -> !"ident" ":" "type"
5 V1 -> !"ident" ":" "type" ";" V1
State 42
9 S1 -> "if" C "then" S1 "else" !S1
8 S1 -> !"ident" ":=" E
9 S1 -> !"if" C "then" S1 "else" S1
10 S1 -> !"if" C "then" S1
11 S1 -> !"while" C "do" S1
12 S1 -> !"begin" S "end"
13 S1 -> !
State 43
5 V1 -> "ident" ":" "type" ";" V1 !
State 44
9 S1 -> "if" C "then" S1 "else" S1 !
Any location not listed is an error node.
GoTo Table
0 1 P goto 1 2 B goto 2 4 V goto 3 6 "var" shift 4
1 30 $ accept 1
2 3 "." shift 5
3 3 "." reduce by 13 S1 ->
5 S1 goto 6 8 "ident" shift 7
11 ";" reduce by 13 S1 ->
15 "if" shift 8
18 "else" reduce by 13 S1 ->
19 "while" shift 9
21 "begin" shift 10
22 "end" reduce by 13 S1 ->
4 7 V1 goto 11 8 "ident" shift 12
5 30 $ reduce by 1 P -> B "."
6 3 "." reduce by 2 B -> V S1
7 13 ":=" shift 13
8 8 "ident" shift 19
14 E goto 15 16 C goto 14 24 T goto 16 26 F goto 17 27 "(" shift 18
9 8 "ident" shift 19
14 E goto 15 16 C goto 20 24 T goto 16 26 F goto 17 27 "(" shift 18
10 3 "." reduce by 13 S1 ->
5 S1 goto 22 8 "ident" shift 7
11 ";" reduce by 13 S1 ->
12 S goto 21 15 "if" shift 8
18 "else" reduce by 13 S1 ->
19 "while" shift 9
21 "begin" shift 10
22 "end" reduce by 13 S1 ->
11 3 "." reduce by 3 V -> "var" V1
8 "ident" reduce by 3 V -> "var" V1
15 "if" reduce by 3 V -> "var" V1
19 "while" reduce by 3 V -> "var" V1
21 "begin" reduce by 3 V -> "var" V1
12 9 ":" shift 23
13 8 "ident" shift 19
14 E goto 24 24 T goto 16 26 F goto 17 27 "(" shift 18
14 17 "then" shift 25
15 23 "+" shift 27
29 "relop" shift 26
16 3 "." reduce by 15 E -> T
11 ";" reduce by 15 E -> T
17 "then" reduce by 15 E -> T
18 "else" reduce by 15 E -> T
20 "do" reduce by 15 E -> T
22 "end" reduce by 15 E -> T
23 "+" reduce by 15 E -> T
25 "*" shift 28
28 ")" reduce by 15 E -> T
29 "relop" reduce by 15 E -> T
17 3 "." reduce by 17 T -> F
11 ";" reduce by 17 T -> F
17 "then" reduce by 17 T -> F
18 "else" reduce by 17 T -> F
20 "do" reduce by 17 T -> F
22 "end" reduce by 17 T -> F
23 "+" reduce by 17 T -> F
25 "*" reduce by 17 T -> F
28 ")" reduce by 17 T -> F
29 "relop" reduce by 17 T -> F
18 8 "ident" shift 19
14 E goto 29 24 T goto 16 26 F goto 17 27 "(" shift 18
19 3 "." reduce by 19 F -> "ident"
11 ";" reduce by 19 F -> "ident"
17 "then" reduce by 19 F -> "ident"
18 "else" reduce by 19 F -> "ident"
20 "do" reduce by 19 F -> "ident"
22 "end" reduce by 19 F -> "ident"
23 "+" reduce by 19 F -> "ident"
25 "*" reduce by 19 F -> "ident"
28 ")" reduce by 19 F -> "ident"
29 "relop" reduce by 19 F -> "ident"
20 20 "do" shift 30
21 22 "end" shift 31
22 11 ";" shift 32
22 "end" reduce by 6 S -> S1
23 10 "type" shift 33
24 3 "." reduce by 8 S1 -> "ident" ":=" E
11 ";" reduce by 8 S1 -> "ident" ":=" E
18 "else" reduce by 8 S1 -> "ident" ":=" E
22 "end" reduce by 8 S1 -> "ident" ":=" E
23 "+" shift 27
25 3 "." reduce by 13 S1 ->
5 S1 goto 34 8 "ident" shift 7
11 ";" reduce by 13 S1 ->
15 "if" shift 8
18 "else" reduce by 13 S1 ->
19 "while" shift 9
21 "begin" shift 10
22 "end" reduce by 13 S1 ->
26 8 "ident" shift 19
14 E goto 35 24 T goto 16 26 F goto 17 27 "(" shift 18
27 8 "ident" shift 19
24 T goto 36 26 F goto 17 27 "(" shift 18
28 8 "ident" shift 19
26 F goto 37 27 "(" shift 18
29 23 "+" shift 27
28 ")" shift 38
30 3 "." reduce by 13 S1 ->
5 S1 goto 39 8 "ident" shift 7
11 ";" reduce by 13 S1 ->
15 "if" shift 8
18 "else" reduce by 13 S1 ->
19 "while" shift 9
21 "begin" shift 10
22 "end" reduce by 13 S1 ->
31 3 "." reduce by 12 S1 -> "begin" S "end"
11 ";" reduce by 12 S1 -> "begin" S "end"
18 "else" reduce by 12 S1 -> "begin" S "end"
22 "end" reduce by 12 S1 -> "begin" S "end"
32 3 "." reduce by 13 S1 ->
5 S1 goto 22 8 "ident" shift 7
11 ";" reduce by 13 S1 ->
12 S goto 40 15 "if" shift 8
18 "else" reduce by 13 S1 ->
19 "while" shift 9
21 "begin" shift 10
22 "end" reduce by 13 S1 ->
33 3 "." reduce by 4 V1 -> "ident" ":" "type"
8 "ident" reduce by 4 V1 -> "ident" ":" "type"
11 ";" shift 41
15 "if" reduce by 4 V1 -> "ident" ":" "type"
19 "while" reduce by 4 V1 -> "ident" ":" "type"
21 "begin" reduce by 4 V1 -> "ident" ":" "type"
34 3 "." reduce by 10 S1 -> "if" C "then" S1
11 ";" reduce by 10 S1 -> "if" C "then" S1
18 "else" shift 42
22 "end" reduce by 10 S1 -> "if" C "then" S1
35 17 "then" reduce by 20 C -> E "relop" E
20 "do" reduce by 20 C -> E "relop" E
23 "+" shift 27
36 3 "." reduce by 14 E -> E "+" T
11 ";" reduce by 14 E -> E "+" T
17 "then" reduce by 14 E -> E "+" T
18 "else" reduce by 14 E -> E "+" T
20 "do" reduce by 14 E -> E "+" T
22 "end" reduce by 14 E -> E "+" T
23 "+" reduce by 14 E -> E "+" T
25 "*" shift 28
28 ")" reduce by 14 E -> E "+" T
29 "relop" reduce by 14 E -> E "+" T
37 3 "." reduce by 16 T -> T "*" F
11 ";" reduce by 16 T -> T "*" F
17 "then" reduce by 16 T -> T "*" F
18 "else" reduce by 16 T -> T "*" F
20 "do" reduce by 16 T -> T "*" F
22 "end" reduce by 16 T -> T "*" F
23 "+" reduce by 16 T -> T "*" F
25 "*" reduce by 16 T -> T "*" F
28 ")" reduce by 16 T -> T "*" F
29 "relop" reduce by 16 T -> T "*" F
38 3 "." reduce by 18 F -> "(" E ")"
11 ";" reduce by 18 F -> "(" E ")"
17 "then" reduce by 18 F -> "(" E ")"
18 "else" reduce by 18 F -> "(" E ")"
20 "do" reduce by 18 F -> "(" E ")"
22 "end" reduce by 18 F -> "(" E ")"
23 "+" reduce by 18 F -> "(" E ")"
25 "*" reduce by 18 F -> "(" E ")"
28 ")" reduce by 18 F -> "(" E ")"
29 "relop" reduce by 18 F -> "(" E ")"
39 3 "." reduce by 11 S1 -> "while" C "do" S1
11 ";" reduce by 11 S1 -> "while" C "do" S1
18 "else" reduce by 11 S1 -> "while" C "do" S1
22 "end" reduce by 11 S1 -> "while" C "do" S1
40 22 "end" reduce by 7 S -> S1 ";" S
41 7 V1 goto 43 8 "ident" shift 12
42 3 "." reduce by 13 S1 ->
5 S1 goto 44 8 "ident" shift 7
11 ";" reduce by 13 S1 ->
15 "if" shift 8
18 "else" reduce by 13 S1 ->
19 "while" shift 9
21 "begin" shift 10
22 "end" reduce by 13 S1 ->
43 3 "." reduce by 5 V1 -> "ident" ":" "type" ";" V1
8 "ident" reduce by 5 V1 -> "ident" ":" "type" ";" V1
15 "if" reduce by 5 V1 -> "ident" ":" "type" ";" V1
19 "while" reduce by 5 V1 -> "ident" ":" "type" ";" V1
21 "begin" reduce by 5 V1 -> "ident" ":" "type" ";" V1
44 3 "." reduce by 9 S1 -> "if" C "then" S1 "else" S1
11 ";" reduce by 9 S1 -> "if" C "then" S1 "else" S1
18 "else" reduce by 9 S1 -> "if" C "then" S1 "else" S1
22 "end" reduce by 9 S1 -> "if" C "then" S1 "else" S1