Приложение C. Описание стандартных модулей
117
*
graph_lo =
1;
{ графика 80(160)x200, 16 цветов }
*
graph_mid =
2;
{ графика 160(320)x200, 4 цвета }
*
graph_hi =
3;
{ графика 320(640)x200, 2 цвета }
*
text_bw80 =
4;
{ черно-белый текстовой экран 80x25 (601A) }
Параметром Pallette задается номер палитры для графического экрана с средней
разрешающей способностью, номер цвета для графического экрана с низкой
разрешающей способностью или атрибут для текстового экрана размером 40x25. В
остальных случаях этот параметр игнорируется. Если заказано включение графического
режима, но для графического экрана не резервировано место, процедура ничего не
делает.
function WhereGRx: cardinal;
Действие: В качестве результата возвращает текущее положение X (по горизонтали)
графического курсора.
function WhereGRy: cardinal;
Действие: В качестве результата возвращает текущее положение Y (по вертикали)
графического курсора.
C.4. Описание модуля UniLEX
Модуль UniLEX предоставляет пользователю удобные процедуры и функции для
лексической обработки текста, которые являются частью интерпретатора Y кода.
иексическая обработка связана с выделением слов, распознаванием чисел и др. Этот
модуль используется и компилятором UniPascal-я. Программист имеет возможность
задавать свои символы, которые могут образовать слова, свои разделители и т.д.
Основная и самая важная задача лексического анализа - это разбивка входного
потока символов в отдельние лексемы. Например, если в силе синтаксис языка Pascal,
следующий входной поток
x:= 1 + 2 * y - z / 2
преобразуется в поток следующих лексем:
идентификатор(x), присваивание, число(1), плюс, число(2), звездочка, идентификатор(y),
минус, идентификатор(z), косая_черточка, число(2)
Анализ лексем существенно проще выполняется в сравнении с анализом
входного потока (текста). Задача о разбивки входного потока в лексемы обычно
решается при помощи подпрограммы. Такая подпрограмма работает как конечный
автомат, на входе которого подается входной поток, а на выходе получается очередная
выделенная лексема. В интерпретаторе Y кода есть программная модель конечного
автомата на языке ассемблера и поэтому она работает значительно быстрее в
сравнении с какой либо программой, которая была бы на языке UniPascal. Эта
программная модель конечного автомата организована как функция, называемая
TokenSearch (поиск лексемы). Ее входные параметры определяют входной поток,
который она должна обрабатывать, и правила, по которым распознаются лексемы.
Для TokenSearch входной поток задается частьями в буфере, который должен
быть заполненным частью входного потока (например, символы одной строки текста
находятся в буфере). Символы входного текста разделяются в 8 классов (A, B, C, A
1
,
B
1
, C
1
, D, E), а слова - в 3 класса (A, B, C). Понятие "слово" здесь обозначает
последовательность символов.
<<  <  GO  >  >>

Вернуться к началу сайта