0

我正在寻找一种将 AST 输入到 tree walker 的方法,并对其进行重写,以便我可以获得多个输出。

我想这样做的原因是因为我的语言具有“模棱两可”的语义。在基本级别上,我有大约 12 种数据类型,但取决于您在树中看到它们的位置,以及在哪些运算符下,可能有多个输出。

然后我会将这些输出中的每一个传递给更多的树重写器,这又可以产生多个输出。我所拥有的本质上是一个组合爆炸,我正在寻找一种方法来处理它。

我希望能够保留所有可能的输出,而不是像传统编译器那样具有单个输出,以便我可以对用户说'我认为是这个......但它也可能是这个'。

我在想我可以克隆树节点流,并在一个单独的线程中将它传递给树重写器。这样我们就可以并行完成树的编写。

关于这些概念的可行性的任何想法或想法?

4

0 回答 0