Программно-методический комплекс для обучения процессу создания компиляторовРефераты >> Программирование и компьютеры >> Программно-методический комплекс для обучения процессу создания компиляторов
Работа с данной таблицей не оптимальна по скорости, т.к. при работе не используется стек, зато данное представление более наглядно.
Таблица 10 – Таблица переходов
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | ||
1 |
<prog> |
PROGRAM| 1,4 $1 |@1,4 |
<prog-name> ~2 |
VAR| 1,6 $2 | @1,6 |
<dec-list> ~3 |
BEGIN $3 |
<stmt-list> ~7 |
END $4 |
. $30 | |
2 |
<prog-name> |
+id |
; $27 | |||||||
3 |
<dec-list> |
<dec> ~4 |
; $27 |
<dec>| ~4 | @3,1 |
; $27 |
@3,4 | ||||
4 |
<dec> |
<id-list> ~6 |
: $31 |
<type> ~5 | ||||||
5 |
<type> |
INTEGER| REAL | STRING $5 | $6 | $7 | ||||||||
6 |
<+id-list> |
+id |
, | $29| @6,1 |
+id |
@6,3 | |||||
7 |
<stmt-list> |
<stmt> | ~8 | @7,1 |
; | $27| @7,1 |
@7,2 | ||||||
8 |
<stmt> |
<assign>|<for>|<read>|<write>|<for>|<while>|<repeat>| <if> ~9 | ~15 | ~13 | ~14 | ~15 | ~24 | ~25 | ~21 | ||||||||
9 |
<assign> |
+id |
:= $28 |
<exp> ~10 | ||||||
10 |
<exp> |
- | + | $33 | $32 | @10,3 |
<term> ~11 |
+ | - | $32| $33| @10,1 |
<term> ~11 |
@10,4 | ||||
11 |
<term> |
<factor> ~12 |
* | DIV | / | $34| $17 | $37|11,1 |
<factor> ~12 |
11,3 | |||||
12 |
<factor> |
+id | ^int | ^real | ^string |@12,4 |
( $35| @12,1 |
<exp> ~10 |
) $36 | |||||
13 |
<read> |
READ $19 |
( $35 |
<id-list> ~6 |
) $36 | |||||
14 |
<write> |
WRITE $18 |
( $35 |
<VALUE> ~18 |
, | 14,9 $29| @14,9 |
<VALUE> ~18 |
@14,5 |
) $36 | ||
15 |
<for> |
FOR $8 |
<index-exp> ~16 |
DO $10 |
<body> ~17 | |||||
16 |
<index-exp> |
+id |
:= $28 |
<exp> ~10 |
TO|DOWNTO $9 | $20 |
<exp> ~10 | ||||
17 |
<body> |
<stmt>| 17,4 ~8 | @17,4 |
BEGIN $3 |
<stmt-list> |
END $4 |
; | $27| @17,1 | ||||
18 |
<value> |
<id-list>| <text-val> ~6 | ~19 |