The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование в Linux" / Оглавление документа
next up previous contents
Next: input(). Up: Структура файла lex.yy.c Previous: yymore().   Contents

yyless(n).

В некоторых случаях возникает необходимость использовать не все символы распознанной цепочки в yytext, а только необходимое число. Для этой цели используется функция yyless(n), где n указывает, что в данный момент необходимо только n символов строки из yytext. Остальные найденные символы будут возвращены во входной поток. Пример использования функции yyless:

.
.
.
=-[A-ZА-Яa-zа-я] {
printf("Oператор (=-) двусмысленный.\n");
yyless(yyleng-2);
/*
* Здесь необходимо записать действия для
* случая "=-"
*/
}
.
.
.
В этом примере разрешается двусмысленность выражения =- буква в языке Си. Это выражение можно рассматривать как =- буква или как = -буква. Предположим, что эту ситуацию нужно рассматривать как = -буква и выводить предупреждение. В примере правило распознает эту ситуацию, выводит предупреждение и затем, после вызова yyless(yyleng - 2); два символа -буква будут возвращены во входной поток, а знак = останется в yytext для обработки, как и в нормальной ситуации. Таким образом, при продолжении чтения входного потока уже будет обрабатываться цепочка -буква, что и требовалось.



2004-06-22

АКЦИЯ! ПОДПИШИСЬ на журнал Linux Format до 31 января 2012 года и выиграй СУПЕРПРИЗ!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонус- объёмные наклейки на системный блок и подарки: с одним из первых выпусков журнала в 2012 году- диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Подробнее о проведении акции вы можете прочитать на странице сайта.


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList