ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
До выявления конструкции, соответствующей одной из лексем, иВозвращении номера типа этой лексемы. Для нелитеральных лек- Сем номером типа может служить объявленное в секции деклара- ций имя лексемы (с помощью механизма #define yacc обеспечи- Вает замену его нужным номером), в случае литералов номером Типа является числовое значение символа (если оно не было - 15 - Переопределено). Алгоритм поиска должен заключаться в Попытке нахождения сначала более сложных (нелитеральных) Лексем и лишь при несовпадении ни с одной из них текущих Элементов ввода возвращать номер типа литеральной лексемы (любой однозначный символ, не начинающий ни одну из возмож- Ных лексем, сам образует лексему). Приведем текст процедуры лексического анализа, распоз- нающей идентификаторы и целые числа: #include <stdio.h> yylex() {char c; while ((c=getc(stdin))==' '||c=='\n'); if(c>='0'&&c<='9'){ while((c=getc(stdin))>='0'&&c<='9'); Ungetc(c,stdin)); return (CONST);} if (c>='a'&&c<='z'){ while ((c=getc(stdin))>'a'&&c<='z' ||c>='0'&&c<='9'); ungetc(c,stdin); return (NAME);} return (c); } Сложность лексического анализатора зависит от того, Какие структурные единицы взяты за основу при описании грам- Матических правил. Детализовав грамматику до отдельных сим- Волов, можно обойтись простейшим лексическим анализатором, осуществляющим только их ввод: yylex() {return (getchar());} Не нашли, что искали? Воспользуйтесь поиском:
|