2017-09-24 135 views
0
%{ 
#include<stdio.h> 
int vowel=0; 
%} 

%% 

[aeiouAEIOU] 
{ 
vowel++; 
} 

%% 

int main() 
{ 
    char str[200];  
    gets(str); 
    yylex(); 
    printf("Vowels:",vowel); 
} 

回答

0

如果这是您编写程序的方式,那么错误是正确的。在Flex中,规则的动作必须从与模式相同的行开始。

flex manual:规则部分

flex输入的规则部分的

5.2格式包含一系列的形式的规则:

pattern action 

其中,所述图案必须是缩进的,并且动作必须在同一行开始。

正如您所写,您已提供{作为模式。这不是一个有效的模式,所以灵活投诉。

+0

谢谢你的回答。我修好了它。 –

相关问题