gpt4 book ai didi

c++ - 如何在 yylex() 之后执行代码;命令

转载 作者:行者123 更新时间:2023-11-28 07:09:28 26 4
gpt4 key购买 nike

我有一个简单的 flex 源代码,它跳过 /* */ 中的注释,应该得到找到的注释数:

%{
int in_comment = 0;
int count = 0;
%}

%%
\/\* { in_comment = 1; count++; }
\*\/ { in_comment = 0; }
. { if (!in_comment) ECHO; }
%%

int main(void)
{
yylex();
printf("Comments found %d\n", count); // never executed
return 0;
}

前半部分工作正常 - 它确实跳过了注释,但它们没有被计算在内......我该怎么做才能执行 printf 行?

最佳答案

我自己试过。所以我将你的源代码复制到“x.l”并做了一个make x然后 ld 提示缺少 yywrap() 函数。添加后

%option noyywrap

编译成功,测试显示:

ronald@cheetah:~/tmp$ ./x < cribbage.c
... lots of output ...
Comments found 15

更新:

如果文本不是从文件加载的(只是./x),你必须通过CTRL + D结束你的手动输入

关于c++ - 如何在 yylex() 之后执行代码;命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21233024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com