Блок: 22 |
|||||
Номер |
Метка |
Операция |
Операнд1 |
Операнд2 |
Результат |
0 |
+ |
cc2 |
cc1 |
tmpValue32 |
|
1 |
let |
tmpValue32 |
null |
y |
|
2 |
>= |
0 |
y |
tmpValue33 |
|
3 |
+ |
bb1 |
cc2 |
tmpValue34 |
|
4 |
< |
tmpValue34 |
cc1 |
tmpValue35 |
|
5 |
|| |
tmpValue35 |
tmpValue33 |
tmpValue36 |
|
6 |
JmpF |
Label1_4 |
tmpValue36 |
null |
|
7 |
+ |
x |
y |
tmpValue37 |
|
8 |
let |
tmpValue37 |
null |
y |
|
9 |
Jmp |
Label2_4 |
null |
null |
|
10 |
Label1_4: |
< |
0 |
y |
tmpValue38 |
11 |
JmpF |
Label1_5 |
tmpValue38 |
null |
|
12 |
* |
2 |
x |
tmpValue39 |
|
13 |
let |
tmpValue39 |
null |
y |
|
14 |
Jmp |
Label2_5 |
null |
null |
|
15 |
Label1_5: |
+ |
a1 |
x |
tmpValue40 |
16 |
let |
tmpValue40 |
null |
x |
|
17 |
/ |
2 |
x |
tmpValue41 |
|
18 |
let |
tmpValue41 |
null |
y |
|
19 |
Label2_5: |
null |
null |
null |
null |
20 |
Label2_4: |
null |
null |
null |
null |
Таблица связей содержит в себе информацию о том, значения каких входов и выходов блоков связаны. При построении таблицы используются следующие объекты:
final Vector VectJoinTotal = new Vector(); //вектор для хранения переменных всей программы
final Vector VectJoinStr = new Vector(); //вектор для хранения параметров связи текущего
// выражения
final Vector VectJoinIn = new Vector(); //вектор для хранения имени входного блока и
//идентификатора текущего выражения
final Vector VectJoinOut = new Vector(); //вектор для хранения имени выходного блока и
//идентификатора текущего выражения
Построение таблицы связей осуществляется путём внесения специальных выражений в синтаксис языка.
Обработка семантических ошибок представляет собой прерывание программы и выдачи сообщений об ошибке при обнаружении несоответствия смыслового содержания выражения установленным правилам. Разработанным алгоритмом обрабатываются следующие ошибки:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.