Λύση 1ου θέματος

FIRST(T) = { ( , id , * }
FIRST(F) = { ( , id , * }

FOLLOW(E) = { $ , ) }
FOLLOW(E') = { $ , ) }
FOLLOW(T) = { $ , ) , + , - }
FOLLOW(T') = { $ , ) , + , - }
FOLLOW(F) = { $ , ) , + , - , * , / }

LL(1) + - * / ( ) id $
E     1   1   1  
E' 2 3       4   4
T     5   5   5  
T' 8 8 6 7   8   8
F     11   9   10  

 

βήμα

στοίβα

είσοδος

κανόνας
1 $E id + ( * id ) / id $ [1]
2 $E' T id + ( * id ) / id $ [5]
3 $E' T' F id + ( * id ) / id $ [10]
4 $E' T' id id + ( * id ) / id $
5 $E' T' + ( * id ) / id $ [8]
6 $E' + ( * id ) / id $ [2]
7 $T + + ( * id ) / id $
8 $T ( * id ) / id $ [5]
9 $T' F ( * id ) / id $ [9]
10 $T' ) E ( ( * id ) / id $
11 $T' ) E * id ) / id $ [1]
12 $T' ) E' T * id ) / id $ [5]
13 $T' ) E' T' F * id ) / id $ [11]
14 $T' ) E' T' F * * id ) / id $
15 $T' ) E' T' F id ) / id $ [10]
16 $T' ) E' T' id id ) / id $
17 $T' ) E' T' ) / id $ [8]
18 $T' ) E' ) / id $ [4]
19 $T' ) ) / id $
20 $T' / id $ [7]
21 $F /

/ id $

22 $F

id $

[10]
23 $id

id $

24 $

$

acc

Επιστροφή στις εκφωνήσεις