我正在寻找一种方法将AST输入到树木行走者中,并重写它以便我可以获得多个输出。
我想这样做的原因是因为我的语言具有“含糊不清”的语义。在基本级别,我有大约12种数据类型,但取决于您在树中看到它们的位置,以及在哪些运算符下,有多个可能的输出。
然后我会将每个输出传递给更多的树重写器,这又可以产生多个输出。我本质上是一个组合爆炸,我正在寻找一种处理它的方法。
我希望能够保留所有可能的输出,而不是像传统的编译器那样只有一个输出,所以我可以对用户说'我认为这是......但它也可能是这个'
我在想我可以克隆树节点流,并将其传递给另一个线程中的树重写器。这样我们就可以并行完成树形写作了。
关于这些概念的可行性的任何想法或想法?