Нераспознанная ошибка правила при использовании lex - PullRequest
0 голосов
/ 07 декабря 2010
1 %{
2        #include<stdio.h>
3        #include<ctype.h>
4 %}
5 %option noyywrap
6 %%
7 [a-z]   {  putchar(yytext[0]);  }
8
9 "/*"
10        {
11                char ch;
12                while((ch = input()) != '*')
13                        putchar(toupper(ch));
14                while((ch = input()) == '*');
15                if((ch = input()) == '/')
16                        return 0;
17        }



%%

int main()
{
yylex();
return 0;
}
~  

когда я пытаюсь скомпилировать этот "lex comment.lex", я получаю нераспознанную ошибку правила в строках 12, 14, 15 ...... Может кто-нибудь сказать мне ответ ....... ..

1 Ответ

1 голос
/ 07 декабря 2010

См. гибкая информационная страница :

Форма правила:

pattern action

Flex считает, что новое правило без действия запускается в строках 9, 10, 11 и т. Д. Потяните открывающую фигурную скобку из линии 10 на линию так, чтобы она выглядела так:

...
"/*"   {
   char ch;
...
...