120
C.4. Описание модуля UniLEX
°
бит 1 - содержимое 1 этого бита указывает на то, что распознавание
зарезервированных слов класса A или B должно происходить независимо
от того строчными или прописными буквами латинского алфавита
кодированы они. В таком случае (бит 1 = 1) таблица зарезервированных
слов должна содержать только прописные буквы латинского алфавита;
°
бит 2 - использование этого бита то же самое как бит 1, но его действие
относится к кириллице;
°
бит 3 - содержимое 0 указывает на то, что имя выделенной лексемы
класса A или B, будет записано (в IdName^) без изменения. Содержимое
1 вызывает замену всех латинских букв имени до его записи строчными
или прописными (битом 5 выбирается какими именно);
°
бит 4 - использование этого бита то же самое как бит 3, но его действие
относится к кириллице;
°
бит 5 - устанавливает строчными (1) или прописными (0) буквами будут
записываться имена слов класса A или B (см. бит 3 и 4);
°
бит 6 - не используется, но его значение должно быть 0;
°
бит 7 - указывает на то для всех ли символов дефинирована
принадлежность к классам или это относится только к первым 128
символов (7-битовой ASCII код). При содержимом 1 бита 7 таблица
принадлежности символов занимает 128 байтов и используется 7-битовой
ASCII код, т.е. все символы с кодом больше 128 не принадлежат никакому
классу. Если бит 7 = 0, используется 8-битовой ASCII код и таблица
принадлежности символов занимает 256 байт;
*
buffer: указатель буфера входного потока. Если буфер типа string, то
указатель должен указывать на его первый элемент. Не изменяется
функцией TokenSearch;
*
buffsz: размер входного буфера в байтах. Не изменяется функцией Token-
Search;
*
index: индекс начального элемента в буфере, с которого надо начать
сканирование. В результате выполнения функции параметр index получает
значение индекса того элелемента, которого достигла функция при
сканировании;
*
start: при активизации TokenSearch не имеет значения. Функция записывает
в start значение индекса того элемента в буфере, с которого начинается
выделенная лексема;
*
KeyWordNo: Если обнаружено, что лексема является зарезервированным
словом класса A, B или C, KeyWordNo получает в качестве результата
номер зарезервированного слова в таблице зарезервированных слов,
соответствующего класса (A, B или C);
*
Classes: указатель массива, содержащего 128 или 256 однобайтовых
элементов (в зависимости от типа ASCII кода: 7- или 8-битовой - бит 7 поле
flags). Элемент с индексом N этого массива сопоставлен ASCII коду N. Биты
соответствующего байта указывают на принадлежность (1) или
непринадлежность (0) соответствующему классу: бит 0 классу D, 1 - C, 2 -
E, 3 - A, 4 - B, 5 - A
1
, 6 - B
1
, 7 - C
1
. Например, значение 40
10
 = 28
16
 =
00101000
2
 семидесятого элемента массива означает, что буква F (с
десятичным ASCII кодом 70) принадлежит классам A и A
1
;
*
ClassAkw: указатель таблицы зарезервированных слов класса A. Таблица
содержит в произвольном порядке все зарезервированные слова класса A,
<<  <  GO  >  >>

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