Лекция: Приложение 2. Список подпрограмм компилятора С0
(по алфавиту)
Номер строки | Имя | Назначение | Вызываемые модули |
adrper | Формирование адреса переменной. | ||
chleks | Чтение очередной лексемы и присваивание ее значения переменной leksema. | chsim, oshibka | |
chsim | Чтение символа (для подпрограммы chleks). | ||
gen_kom | Генерация команды (с удалением PUSH AX, POP AX). | ||
kodret | Генерация кода оператора return. | gen_kom | |
main | Трансляция конструкции “программа”. | chleks, gen_kom, opisper, oprfun, oshibka, test | |
operac | Компиляция / интерпретация операции выражения. | gen_kom, oshibka, zopreg | |
operatr | Трансляция конструкции “оператор”. | chleks, gen_kom, kodret, operatr, oshibka, poslop, test, virag | |
opisper | Трансляция конструкции “описание-переменных”. | chleks, oshibka, pozic, test, vkluch | |
oprfun | Трансляция конструкции “описание (определение) функции”. | chleks, gen_kom, opisper, oshibka, poslop, pozic, vkluch | |
oshibka | Генерация сообщения о типе и позиции ошибки. | ||
poslop | Трансляция последовательности операторов вида “[оператор] …}”. | chleks, operatr, test | |
pozic | Поиск позиции (индекса) имени в таблице имен. | ||
test | Проверка лексемы. В случае ошибки – выдача сообщения и пропуск части текста программы. | chleks, oshibka | |
virag | Трансляция выражения (определение порядка операций). | chleks, gen_kom, operac, oshibka, pozic, test, vitsk, vkluch, zopreg | |
vitsk | Выталкивание из стека скобки “(” или “имя (“. | gen_kom, oshibka | |
vkluch | Включение имени в таблицу имен. | oshibka | |
zopreg (z,t,r) | Генерация кода загрузки в регистр r операнда z типа t. | gen_kom, oshibka |