0
digit [0-9]
letter [A-Za-z]
%{
int count;
%}
%%
/* match identifier */
{letter}({letter}|{digit})* count++;
%%
int main(void) {
yylex();
printf("number of identifiers = %d\n", count);
return 0;
}
不起作用printf语句。 你能解释我应该在这段代码中包含什么吗?为什么下面的flex代码不显示输出?
程序是否正确终止? – Jack
no不终止。 –
欢迎来到Stack Overflow。请尽快阅读[关于]和[问]部分,更急切地想知道如何创建MCVE([MCVE])。你已经提供了代码,这很好。您没有描述输入数据,也没有描述如何将数据提供给程序。你的解释“不工作printf语句”没有帮助。你应该更清楚你所观察到的。此外,请注意[tag:flex]与[tag:flex-lexer]不同 - 后者是用于Flex词法分析器(或词法分析器)的正确选项。另一个标签用于Adobe Web语言Flex。 –