Bison 如何使用词汇搭配?

Bison 如何使用词汇搭配?,bison,flex-lexer,Bison,Flex Lexer,最近,我发现了一种处理上下文相关语法的方法,但是我找不到足够的资源和示例。我知道莱克斯的情况,这不是我想要的 关于词法连接,我发现我们可以在yacc文件中声明一个标志,并根据标志上下文的值来确定。它提到代码需要用yylex来编写,我不知道如何做到这一点。任何人都可以提供如何准确利用词汇连接的资源和示例 yylex函数也是由flex自动生成的。在生成的yylex中添加一些例程需要做些什么。如果你说出了你想做的事情,那么给出答案就会容易得多。在bison手册中的示例中,假设lex actions中的

最近,我发现了一种处理上下文相关语法的方法,但是我找不到足够的资源和示例。我知道莱克斯的情况,这不是我想要的

关于词法连接,我发现我们可以在yacc文件中声明一个标志,并根据标志上下文的值来确定。它提到代码需要用yylex来编写,我不知道如何做到这一点。任何人都可以提供如何准确利用词汇连接的资源和示例


yylex函数也是由flex自动生成的。在生成的yylex中添加一些例程需要做些什么。

如果你说出了你想做的事情,那么给出答案就会容易得多。在bison手册中的示例中,假设lex actions中的代码将以明显的方式检查全局标志的值,这不需要对生成的yylex进行任何修改。我希望lex根据yacc输出以不同的方式返回。但我遇到了一个问题。我在一个yacc规则中设置标志,这将影响下一个令牌。但是在我检查lex actions中的标志值并基于该标志修改返回的令牌之前;yacc look将根据flag的上一个值引导令牌和flex返回。这就是我面临的问题,没错。在许多情况下,需要先将标志设置为一个令牌,然后才能使其生效,这意味着设置标志后的令牌不应受到标志状态的影响。如果你能用启动条件解决你的问题,那通常会更好。但是如果你想要一个具体的答案,请问一个具体的问题。