112
C.4. Описание на модула UniLEX
които определя функцията (N), която трябва да се приложи над предишното
състояние (S) и над заявеното (P). Стойност 1 и 0 на S и P съответно означават
светене и несветене на точката. Всички възможни номера на функции за рисуване се
експортират като мнемомонични константи:
m_draw = 0;
{ N = P }
m_xor = 1;
{ N = S xor P }
m_set = 2;
{ N = 1 }
m_notP = 3;
{ N = not P }
m_clear = 4;
{ N = 0 }
m_none = 5;
{ N = S }
m_reverse = 7;
{ N = not S }
m_or = 8;
{ N = S or P }
m_notSandP = 9;
{ N = not S and P }
m_notSorP = 10;
{ N = not S or P }
m_not_SandP= 11;{ N = not (S and P) }
m_SandnotP = 12; { N = S and not P }
m_and = 13;
{ N = S and P }
procedure SetVmode(ModeNo, Pallette: shortcard);
Действие: Включва указания видеорежим. Номерът на видеорежима (ModeNo) се
експортира, като константа и може да заема стойности със следния смисъл:
*
text_bw40 =
0;
{ черно-бял/цветен текстов екран 40x25 }
*
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)
Анализът на лексеми е по-прост в сравнение с директен анализ на входния поток
(текста). Задачата за разбиване на входния поток на лексеми обикновено се решава
<<  <  GO  >  >>

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