将flex生成的代码放到普通的C ++程序中

时间:2012-09-21 07:38:04

标签: c++ c bison yacc lex

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

1 个答案:

答案 0 :(得分:1)

请参阅手册中有关multiple input buffers的部分。特别是关于yy_scan_stringyy_scan_bytes

的部分

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