Toon posts:

LR(0) Tables (Kan iemand dit checken)

Pagina: 1
Acties:
  • 37 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb als oefening zelf, de states en parsetable geschreven voor een language grammatica, kan iemand doublechecken of ik dit goed gedaan heb?

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?

Verwijderd

Topicstarter
'k heb zelf al een paar fouten in de parser table ontdekt, de GOTO's zijn fout voor de states 6 t/m 9:
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             g10   g3
7                       s4   s5             g11   g3
8                       s4   s5                   g12
9                       s4   s5                   g13
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

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Dit is K*Twerk, denk je echt dat mensen die complete tabel gaan nalopen voor jou? LR(0) is vrij simpel. Je kunt dmv een stukje text in de grammar de tabel wel controlleren. Je kunt ook per rule nog eens de table langslopen, maar als je gewoon de LR(0) methodiek gevolgd hebt dan moet de tabel kloppen lijkt me. Als ik zo je states nakijk dan kloppen die volgens mij. Dat is het grootste deel van het werk, die tabel invullen is dan erg simpel. Zie ook: http://www.wikipedia.org/wiki/LR(0)_parser

[ Voor 8% gewijzigd door EfBe op 02-04-2003 09:13 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Nee, zoals EfBe al zei, het is klotewerk en dat doen we dus niet voor je. Dit komt in principe op hetzelfde neer als "hier is mijn code, wat klopt er niet", en die gaan ook gewoon op slot

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Dit topic is gesloten.