0
%{
#include<stdio.h>
int vowel=0;
%}
%%
[aeiouAEIOU]
{
vowel++;
}
%%
int main()
{
char str[200];
gets(str);
yylex();
printf("Vowels:",vowel);
}
%{
#include<stdio.h>
int vowel=0;
%}
%%
[aeiouAEIOU]
{
vowel++;
}
%%
int main()
{
char str[200];
gets(str);
yylex();
printf("Vowels:",vowel);
}
如果这是您编写程序的方式,那么错误是正确的。在Flex中,规则的动作必须从与模式相同的行开始。
从flex manual:规则部分
flex输入的规则部分的
5.2格式包含一系列的形式的规则:
pattern action
其中,所述图案必须是缩进的,并且动作必须在同一行开始。
正如您所写,您已提供{
作为模式。这不是一个有效的模式,所以灵活投诉。
谢谢你的回答。我修好了它。 –