gpt4 book ai didi

c - 如何在 lex.l 文件之外使用 flex 函数?

转载 作者:行者123 更新时间:2023-11-30 14:44:39 24 4
gpt4 key购买 nike

我有两个如下所示的函数:

void init_analysis(){
yyin = stdin;
flag_console = TRUE;
line = 1;
yypush_buffer_state(yy_create_buffer( yyin, YY_BUF_SIZE ));
}

void terminate_analysis(){
yypop_buffer_state();
}

它们位于一个名为 lex.l 的文件中,当使用命令“flex lex.l”编译该文件时,会生成一个名为 lex.yy.c 的文件。我想要做的是在这个文件 lex.l 之外的一个名为的文件中声明和实现这两个函数,例如utilities.c及其相应的utilities.h。问题是我无法将这两个函数移动到另一个文件,因为它们具有 yypop_buffer_state 等函数和 YY_BUFFER_STATE 等数据类型,这些函数未在新文件中定义我想移动这些函数(这些元素仅在 lex.yy.c 中定义)文件)。我如何移动这些功能?谢谢您的回答。

最佳答案

根据flex的文档,运行flex时可以使用以下参数

--header-file=my_flex_header_file.h

它会生成一个头文件,您可以将其包含在其他文件中。

关于c - 如何在 lex.l 文件之外使用 flex 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53428181/

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