ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Порядок действия активных правил
Список правил Lex-программы может содержать активные и неактивные правила, размещенные в любом порядке в разделе правил. В процессе работы лексического анализатора список активных правил может видоизменяться за счет действий опера- тора BEGIN. В процессе распознавания символов входного потока может оказаться так, что одна цепочка символов будет удовлетворять нескольким правилам и, следовательно, возни- кает проблема: действие какого правила должно выполняться?
Для разрешения этого противоречия можно использовать квантование (разбиение) регулярных выражений этих правил Lex-программы на такие новые регулярные выражения, которые дадут, по возможности, однозначное распознавание лексемы. Однако, когда это не сделано, lex использует определенный детерминированный механизм разрешения такого противоречия:
- выбирается действие того правила, которое распознает наиболее длинную последовательность символов из вход- ного потока;
- если несколько правил распознают последовательности символов одной длины, то выполняется действие того правила, которое записано первым в списке раздела правил Lex-программы.
Рассмотрим пример:
. . . [Мм][Аа][Йй] ECHO; [А-Яа-я]+ ECHO; . . .
Слово "Май" распознают оба правила, однако, выполнится пер- вое из них, так как и первое, и второе правило распознали лексему одинакового размера (3 символа). Если во входном потоке будет, допустим, слово "майский", то первые 3 символа удовлетворяют первому правилу, а все 7 символов удовлетво- ряют второму правилу, следовательно, выполнится второе пра- вило, так как ему удовлетворяет более длинная последователь- ность символов.
Не нашли, что искали? Воспользуйтесь поиском:
|