抽象構文木について質問があります。
特に、特定の用語順序でいくつかのツリーをソートしたいと考えています。
次のプロパティを使用して AST の用語順序を定義するにはどうすればよいですか。
- ほとんどすべての用語について、順序は標準の組み込みの用語順序とまったく同じように動作します。
- AST に深くネストされているのは、ソース位置を表すファンクタ pos/6 の項です。これらのファンクタは項の順序では無視されるべきです。つまり、ファンクタ pos のすべての項は等しいものとして比較されるべきです。
「pos」の特別なケースで組み込みの用語順序を拡張することは可能ですか?
最も効率的なソリューションは何ですか?最も読みやすいソリューションは何ですか?
たぶん、私たちの AST は非常に大きくなる可能性があることにも言及する必要があります。私は 217479 個の適切なファンクターを持つ 1 つの AST をベンチマークしました (nullary アトムは無視します)。