gpt4 book ai didi

解析 Bison/YACC .y 文件而不解析所有 C 语言

转载 作者:行者123 更新时间:2023-12-01 22:24:39 26 4
gpt4 key购买 nike

我想从 Bison/YACC .y 文件中解析语法定义。规则的语法非常简单(我可以忽略语法规则部分之外的所有内容),并且我不需要有关语义操作的信息。然而,即使跳过这些操作似乎也需要解析任意 C 代码片段以确定 {...} block 结束的位置(因为您可以有嵌套 block 等)。

是否有不需要解析 C 的捷径?

我想一种解决方法是要求 Bison 本身删除所有回调,只将语法规则保留在文件中,这样解析起来就很简单了。

最佳答案

如果你运行bison-v标志,它将生成一个名为 basename.output 的文件从语法开始(没有 Action )。解析该报告非常容易。 ( basename 是输入文件的名称,如果指定 --output 选项,则为输出文件的名称,并去掉扩展名。)

唯一的其他方法是准备复制大部分 bison 的解析,这至少涉及词法分析 C(如果没有完全解析它),以及了解如何解析所有 Bison 的%命令。

注意: -v 生成的语法选项将中间规则操作转换为右侧为空的非终结符。生成的非终结符的名称格式为 $@<number>@<number> ,因此很容易识别。

关于解析 Bison/YACC .y 文件而不解析所有 C 语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27996052/

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