gpt4 book ai didi

scala - 更新不可变 AST 的最简单方法是什么?

转载 作者:行者123 更新时间:2023-12-04 19:14:33 24 4
gpt4 key购买 nike

在使用宏时,我已经到了需要更新 AST 中满足特定条件的节点的地步(我一直在努力避免它)。例如,假设我想更新每个节点:

Literal(Constant(1))

值:
Literal(Constant(2))

这些 AST 节点可以位于表达式树中的任何位置,因此我无法使用临时模式匹配器。显然,我最不想做的事情是编写一个能够覆盖所有编译器原语的完整模式匹配器。我一直在搜索 API但是我的印象是 collect 和 traversable family 等方法不足以满足我的需求,因为它们将树视为线性事物,因此我想要整个更新的树。那么,是否有可能以智能方式更新不可变的表达式树?为什么标准 API 中不存在这种“更新”操作?

最佳答案

关于scala - 更新不可变 AST 的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com