aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java11
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 ->