2010-12-07 32 views
0
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; 
} 
~ 

lorsque j'essaie de compiler ce "lex comment.lex" je reçois une erreur de règle non reconnue dans les lignes 12, 14, 15 ...... Quelqu'un peut-il me dire la réponse .........Erreur de règle non reconnue lors de l'utilisation de lex

Répondre

1

Voir flex info page:

la forme de règle est:

pattern action 

Flex pense qu'une nouvelle règle est sans action a démarré en lignes 9, 10, 11 etc. Tirez l'accolade d'ouverture de la ligne 10 sur la ligne de sorte qu'il ressemble à:

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