我有一个关于抽象语法树的问题。
特别是我想用特定的术语顺序对几棵树进行排序。
如何为具有以下属性的 AST 定义术语顺序:
- 对于几乎所有术语,顺序的行为与标准的内置术语顺序完全相同。
- 深深嵌套在 AST 中的是仿函数 pos/6 的术语,它们表示源位置。这些函子应该在项顺序中被忽略,即函子 pos 的所有项应该比较相等。
是否可以使用 'pos' 的特殊情况来扩展内置术语顺序?
什么是最有效的解决方案,什么是最易读的解决方案?
也许我还应该提到我们的 AST 可能非常大,我只是对一个 AST 进行了基准测试,它有 217479 个适当的函子(忽略零原子)