Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 莱克斯:强制扫描?_C++_C_Lex - Fatal编程技术网

C++ 莱克斯:强制扫描?

C++ 莱克斯:强制扫描?,c++,c,lex,C++,C,Lex,我正在用LEX编写一个相当简单的程序,在解析一些文件之后,解析来自用户的输入 现在,有了这些文件,一切都像一个符咒。然而,当涉及到来自stdin的用户输入时,LEX规则在发送EOF(通过ctrl+D)字符之前不会运行。当我这样做时,LEX解析我写的所有内容,然后等待更多的输入。第二个连续EOF终止扫描仪 问题是,我希望程序对\n做出反应,输出一些数据。有没有办法从规则内部强制扫描,或者以某种方式配置LEX缓冲以匹配此行为?解决了!这就成功了: %option always-interactive

我正在用LEX编写一个相当简单的程序,在解析一些文件之后,解析来自用户的输入

现在,有了这些文件,一切都像一个符咒。然而,当涉及到来自stdin的用户输入时,LEX规则在发送EOF(通过ctrl+D)字符之前不会运行。当我这样做时,LEX解析我写的所有内容,然后等待更多的输入。第二个连续EOF终止扫描仪


问题是,我希望程序对
\n
做出反应,输出一些数据。有没有办法从规则内部强制扫描,或者以某种方式配置LEX缓冲以匹配此行为?

解决了!这就成功了:

%option always-interactive

我把这个留在这里以备将来参考,以防。。。嗯,谁知道呢。

这是我用lex和yacc编写的unixshell的一个片段。我想它会成功的

"\n"                    |
";"                     {
                        //yylval.sb = getsb(yytext);  for yacc stuff
                        fprintf(stderr,"EOL\n");
                        return(EOL);
                        }

半结肠只用于在shell中的一行上执行多个命令。考虑接受你的回答,这样就会显示出有一个可接受的答案。“量子力学我已经等了2天了:”23个小时。