From 0970f5a5074da34fffaea70f3b42d012edb501c5 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 14 Jul 2016 22:50:55 +0100 Subject: Simplify dynamic visitor creation --- .../couscous/backends/csharp/CsharpSerializer.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java') diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java index 8765b9b..91a4400 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -132,11 +132,9 @@ public class CsharpSerializer { private CsharpSerializer(SourceCodeWriter writer) { this.writer = writer; - this.write = WRITE_BUILDER.instantiate(this); + this.write = DynamicNodeVisitor.instantiate(this, "visit"); } - private static final DynamicNodeVisitor WRITE_BUILDER = DynamicNodeVisitor.build(CsharpSerializer.class, "visit"); - private void write(Node node) { write.accept(node); } @@ -675,13 +673,14 @@ public class CsharpSerializer { } } - private static final Function precedence = DynamicNodeMapper.build( - Precedence.class, - Integer.class, - "visit" - ).instantiate(new Precedence()); + private static int precedence(Node node) { + return Precedence.OF.apply(node); + } public static class Precedence { + private final static Function OF = + DynamicNodeMapper.instantiate(new Precedence(), "visit"); + public Integer visit(LiteralNode literal) { return Integer.MAX_VALUE; } @@ -770,8 +769,4 @@ public class CsharpSerializer { return 0; } } - - private static int precedence(Node node) { - return precedence.apply(node); - } } -- cgit v1.2.3