如何打印从特定节点开始的 YACC 语法图?
How to print a YACC grammar graph starting from a specific node?
我有大量的 YACC 语法来处理一系列相关标准。我想用 bison --graph
命令打印它的图形,但是生成的 .dot
文件有超过 4 万行。
图表太大,xdot
和 dot
工具无法渲染它。我终于设法用 sfdp
生成了输出,但是生成的图像超过 50MB,简直无法理解。
我只对可视化语法的一部分感兴趣,最好是从特定语法规则开始的子集。有没有办法将此类约束添加到图形生成或渲染中?
您可以通过添加
将语法限制为从 非终结符 开始的子集
%start the_nonterminal
你会得到很多无用的生产和无用的 non-terminal 警告,但你仍然会得到图表。
如果您想将其限制为 non-terminal 的单个作品,您可以暂时为该作品引入一个新的开始 non-terminal(假设原始 [=19] 的语法=] 不是递归的)。
我有大量的 YACC 语法来处理一系列相关标准。我想用 bison --graph
命令打印它的图形,但是生成的 .dot
文件有超过 4 万行。
图表太大,xdot
和 dot
工具无法渲染它。我终于设法用 sfdp
生成了输出,但是生成的图像超过 50MB,简直无法理解。
我只对可视化语法的一部分感兴趣,最好是从特定语法规则开始的子集。有没有办法将此类约束添加到图形生成或渲染中?
您可以通过添加
将语法限制为从 非终结符 开始的子集%start the_nonterminal
你会得到很多无用的生产和无用的 non-terminal 警告,但你仍然会得到图表。
如果您想将其限制为 non-terminal 的单个作品,您可以暂时为该作品引入一个新的开始 non-terminal(假设原始 [=19] 的语法=] 不是递归的)。