ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Использование Ратфора
lex можно использовать для генерации программ лексичес- кого анализа на Ратфоре. Для этого в первой строке раздела определений необходимо указать %R. Все сказанное выше об использовании Си в качестве host-языка относится и к Рат- фору. Необходимо учесть, что Ратфор имеет свою библиотеку ввода-вывода. Однако, состав функций lex для Ратфора тот же, что и для Си. Есть и функция, выделенная только для Ратфора - lexshf. Функция lexshf переводит внутреннее представление символа (младший байт) из Си во внутреннее представление символа в Фортране (старший байт).
Дествия правил Lex-программы для Ратфора оформляются в виде вычисляемых goto в выходном файле, который называется lex. yy. r.
Допустим, имеется исходный файл source. l с Ратфором в качестве host-языка, тогда для получения лексического анали- затора необходимы следующие действия:
% lex source.l % rc lex.yy.r -llr
Напомним, что в Ратфоре индексы массивов начинаются с 1, поэтому, например, yytex [ yyleng ] - это последний полученный из входного потока символ.
Флаги Lex
-t поместить результат в стандартный файл вывода, а не в файл lex. yy. c;
-v вывести размеры внутренних таблиц;
-f ускорить работу, не упаковывая таблицы (только для небольших программ);
-n не выводить размеры таблиц (устанавливается по умолча- нию);
-d используется при отладке lex.
Имеется возможность собрать анализатор для диагностики. Для этого необходимо компиляцию файла lex. yy. c осуществлять с подключением разделов диагностики:
cc -d -DLEXDEBUG lex. yy. c
При работе полученного таким образом анализатора будет выво- диться диагностика действий. Флаг -d, кроме того, позволяет проверить текст программы lex. yy. c с помощью текстового отладчика cdeb.
СОДЕРЖАНИЕ
. Аннотация......................................... 2
1. Введение.......................................... 3
2. Регулярные выражения в Lex-правилах............... 8 2.1. Обозначения символов в выражениях............... 8 2.2. Операторы регулярных выражений.................. 9 2.3. Оператор выделения классов символов............. 9 2.4. Повторители..................................... 9 2.5. Операторы выбора................................ 10 2.6. Оператор {}..................................... 11 2.7. Оператор <>. Служебные слова START и BEGIN...... 12
3. Структура Lex-программы........................... 15 3.1. Раздел определений Lex-программы................ 15 3.2. Раздел правил................................... 18 3.2.1. Действия в правилах Lex-программы............. 19 3.2.2. Порядок действия активных правил.............. 21 3.3. Раздел программ пользователя.................... 22 3.4. Комментарии Lex-программы....................... 22 3.5. Примеры Lex-программ............................ 22
4. Структура файла lex.yy.c.......................... 26
5. Функция yywrap().................................. 27
6. Функция REJECT.................................... 29
7. Функции yyless и yymore........................... 30
8. Совместное использование lex и yacc............... 32
9. Использование Ратфора............................. 39
10. Флаги Lex......................................... 39
Популярность: 5, Last-modified: Mon, 29 Jun 1998 14:01:55 GMT
Не нашли, что искали? Воспользуйтесь поиском:
|