diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java index b75106a..835843d 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java @@ -19,6 +19,17 @@ import static org.zwobble.couscous.util.ExtraIterables.only; import static org.zwobble.couscous.util.ExtraLists.*; public class NodeTransformer { + public static List<TypeNode> applyAll(List<NodeTransformer> transformers, List<TypeNode> types) { + for (NodeTransformer transformer : transformers) { + types = apply(transformer, types); + } + return types; + } + + public static List<TypeNode> apply(NodeTransformer transformer, List<TypeNode> types) { + return eagerMap(types, transformer::transformTypeDeclaration); + } + public static NodeTransformer replaceExpressions(Map<ExpressionNode, ExpressionNode> replacements) { return builder(). transformExpression(expression -> |
