Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных