У меня есть вопрос об абстрактных синтаксических деревьях.
В частности, я хочу отсортировать несколько деревьев с определенным порядком терминов.
Как определить порядок терминов для AST со следующими свойствами:
- Для всех почти всех терминов порядок ведет себя точно так же, как стандартный встроенный порядок терминов.
- В AST глубоко вложены термины функтора pos / 6, обозначающие источник-positions.Эти функторы следует игнорировать в порядке следования терминов, то есть все члены функтора pos должны сравниваться как равные.
Возможно расширение встроенного порядка терминов с помощью специального случая для 'pos'?
Какое наиболее эффективное решение, какое решение наиболее читабельно?
Может быть, я должен также упомянуть, что наши AST могут быть довольно большими, я только что проверил один AST, у которого 217479функторы (игнорируя нулевые атомы)