0
%option noyywrap
%{
#include <stdio.h>
#include <string.h>
int chars=0, lines=0;
%}
binary [01]+
%%
{binary} {ECHO; printf("\n"); chars++; }
\n {lines++; chars++;}
%%
int main() {
yylex();
printf(" %d chars and %d lines\n", chars, lines);
return 0;
}
我已经写了这个,我希望它打印每0和1,并打印了我在控制台上写了多少字符和线。它确实回显1和0,但main()中没有任何内容被打印出来。为什么?简单的柔性程序不会执行主线()
你如何为这个程序提供输入?也许'printf'永远不会到达,因为'yylex'没有返回? – templatetypedef
@JonathanLeffler我同意 - 我想知道他们是否只是交互式运行程序,而不是按CTRL + D或类似的东西。 – templatetypedef
当我编译代码并在文件上运行它时:'flex fl37.l; gcc -o fl37 lex.yy.c',然后运行它:'./fl37