gpt4 book ai didi

c - lex 和 yacc — 组合两个词法分析器和一个 yacc

转载 作者:行者123 更新时间:2023-11-30 15:48:46 28 4
gpt4 key购买 nike

我有两个带有函数 xxlex()yylex()lex 文件,还有一个 yacc语法文件。我希望语法规则始终调用 xxlex()。但是 xlex() 只被调用一次,我希望它总是被调用。我该怎么做?

最佳答案

默认情况下,Yacc 语法调用 yylex() 来获取新标记。

如果您想在某些时候调用 xxlex(),那么您可以安排在适当的时间从 yylex() 调用它。

如果您希望每次都调用 xxlex(),则可以将其重命名为 yylex() 并重命名原始的 xxlex()zzlex(),或使用 bison -p xx 以便所有内容(包括解析器函数)都以 xx 开头,而不是 yy 。 (相同的标志 -p 也适用于符合 POSIX 标准的 yaccflex 程序采用 -P xx 来生成所有符号从 xx 而不是 yy 开始;POSIX lex 没有这样做的选项,但我见过很多 makefile 使用 sed 脚本编辑由 lex 生成的源代码,将前缀从 yy 更改为其他一些字母,例如 >xx。)

关于c - lex 和 yacc — 组合两个词法分析器和一个 yacc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16630465/

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