1

我创建了一个简单的文件,使用 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++ 程序中使用这个函数,我很困惑......非常感谢!

4

1 回答 1

1

请参阅手册中有关多个输入缓冲区的部分。尤其是关于yy_scan_string和的部分yy_scan_bytes

对于“输出”,当您将“停止”或“开始”作为输入时,当然是“输出”,您明确地这样做(即printf调用)。您可以将任何您想要的代码放在那里。

于 2012-09-21T07:44:57.483 回答