使抽象语法树可序列化为 XML 文件的最佳策略是什么?
问问题
533 次
2 回答
1
从根开始递归遍历 AST。
当下降到 X 类型的节点时,打印一个开始标签:
<X>
然后从左到右进入孩子并打印他们的内容。处理完所有子项后,打印一个结束标记:
</X>
在 L 类型的叶节点处,打印
<L value="abc"/>
可能具有感兴趣的属性值。
完毕。
如果您跟踪递归嵌套,您可以打印出标签以前导recursion_depth空格开始和结束,并在后面加上换行符。然后您的 XML 将被很好地嵌套。
于 2010-09-14T09:08:43.677 回答
1
此网页上的“ANTLR 树与自定义树”一章显示了一个 antlr 语法示例、一些输入以及给定输入的 AST 的格式化输出。本章包含一个指向 C++ 程序的链接,以生成此格式化输出。
它不是 xml,但非常接近,可能是一个很好的开始。
于 2010-08-24T11:22:09.927 回答