From 1a39bb268c68bc2c2452263ca539297d9905de8c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 29 Aug 2016 16:10:23 +0100 Subject: Apply node transformers across lists of types --- .../org/zwobble/couscous/ast/visitors/NodeTransformer.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/main/java/org/zwobble/couscous/ast') 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 applyAll(List transformers, List types) { + for (NodeTransformer transformer : transformers) { + types = apply(transformer, types); + } + return types; + } + + public static List apply(NodeTransformer transformer, List types) { + return eagerMap(types, transformer::transformTypeDeclaration); + } + public static NodeTransformer replaceExpressions(Map replacements) { return builder(). transformExpression(expression -> -- cgit v1.2.3