我创建了一个简单的文件,使用flex,它生成一个文件lex.yy.c,现在,我想把它放到C ++程序中。
%{
#include < stdio.h>
%}
%%
stop printf("Stop command received\n");
start printf("Start command received\n");
%%
当我在命令行中输入start或stop时,会有一个输出。我想要做的是通过我的C ++程序提供输入,并将其输出发送到我的程序中的变量,是否可能?非常感谢!
我知道我发布的代码非常简单,但我想象的结果是:
通过flex和bison创建c文件,并将其用作标题,因此在c ++程序中,我只需调用函数lex_yacc()
即可使用它。恩。 lex_yacc()
是一个计算器,所以我向这个函数发送了一个带有变量的表达式,它将返回结果。我想在C ++程序中使用这个函数,我很困惑...非常感谢!
答案 0 :(得分:1)
请参阅手册中有关multiple input buffers的部分。特别是关于yy_scan_string
和yy_scan_bytes
。
对于“输出”,当您将“停止”或“开始”作为输入时,当然是“输出”,您明确地这样做(即printf
调用)。你可以在那里放任何你想要的代码。