Ik heb als oefening zelf, de states en parsetable geschreven voor een language grammatica, kan iemand doublechecken of ik dit goed gedaan heb?
De volgende states kwamen eruit:
En de volgende parser table:
Kan iemand ff checken of de states en de tabel klopt?
code:
1
2
3
4
5
6
7
8
9
10
| Grammar rules 0 S -> E 1 E -> E + B 2 E -> E - B 3 E -> B 4 B -> B * Z 5 B -> B / Z 6 B -> Z 7 Z -> 1 8 Z -> 2 |
De volgende states kwamen eruit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| Itemset 0 S -> . E +E -> . E + B +E -> . E - B +E -> . B +B -> . B * Z +B -> . B / Z +B -> . Z +Z -> . 1 +Z -> . 2 Itemset 1 S -> E . E -> E . + B E -> E . - B Itemset 2 E -> B . E -> B . * Z E -> B . / Z Itemset 3 B -> Z . Itemset 4 Z -> 1 . Itemset 5 Z -> 2 . Itemset 6 E -> E + . B +E -> . B +B -> . B * Z +B -> . B / Z +B -> . Z +Z -> . 1 +Z -> . 2 Itemset 7 E -> E - . B +E -> . B +B -> . B * Z +B -> . B / Z +B -> . Z +Z -> . 1 +Z -> . 2 Itemset 8 B -> B * . Z +Z -> . 1 +Z -> . 2 Itemset 9 B -> B / . Z +Z -> . 1 +Z -> . 2 Itemset 10 E -> E + B . Itemset 11 E -> E - B . Itemset 12 B -> B * Z . Itemset 13 B -> B / Z . |
En de volgende parser table:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| + - * / 1 2 $ E B Z 0 s4 s5 g1 g2 g3 1 s6 s7 acc 2 r3 r3 s8 s9 r3 r3 r3 3 r6 r6 r6 r6 r6 r6 r6 4 r7 r7 r7 r7 r7 r7 r7 5 r8 r8 r8 r8 r8 r8 r8 6 s4 s5 g2 g3 7 s4 s5 g2 g3 8 s4 s5 g3 9 s4 s5 g3 10 r1 r1 r1 r1 r1 r1 r1 11 r2 r2 r2 r2 r2 r2 r2 12 r4 r4 r4 r4 r4 r4 r4 13 r5 r5 r5 r5 r5 r5 r5 |
Kan iemand ff checken of de states en de tabel klopt?