From 4ac0943805fa04dac66d96436fd18103c11f08f1 Mon Sep 17 00:00:00 2001 From: Victor Date: Fri, 22 Jul 2016 21:18:37 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=B2=D0=BE=D0=B4=20=D1=83=D1=82?= =?UTF-8?q?=D0=BE=D1=87=D0=BD=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B5=20=D0=BF=D0=B0=D1=82?= =?UTF-8?q?=D1=82=D0=B5=D1=80=D0=BD=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ownlang/parser/ast/MatchExpression.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/com/annimon/ownlang/parser/ast/MatchExpression.java b/src/com/annimon/ownlang/parser/ast/MatchExpression.java index 3a0ca3c..51c3091 100644 --- a/src/com/annimon/ownlang/parser/ast/MatchExpression.java +++ b/src/com/annimon/ownlang/parser/ast/MatchExpression.java @@ -208,6 +208,16 @@ public final class MatchExpression extends InterruptableNode implements Expressi public static abstract class Pattern { public Statement result; public Expression optCondition; + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + if (optCondition != null) { + sb.append(" if ").append(optCondition); + } + sb.append(": ").append(result); + return sb.toString(); + } } public static class ConstantPattern extends Pattern { @@ -219,7 +229,7 @@ public final class MatchExpression extends InterruptableNode implements Expressi @Override public String toString() { - return constant + ": " + result; + return constant.toString().concat(super.toString()); } } @@ -232,7 +242,7 @@ public final class MatchExpression extends InterruptableNode implements Expressi @Override public String toString() { - return variable + ": " + result; + return variable.concat(super.toString()); } } @@ -260,10 +270,10 @@ public final class MatchExpression extends InterruptableNode implements Expressi while (it.hasNext()) { sb.append(" :: ").append(it.next()); } - sb.append("]: ").append(result); + sb.append("]").append(super.toString()); return sb.toString(); } - return "[]: " + result; + return "[]".concat(super.toString()); } } @@ -291,14 +301,14 @@ public final class MatchExpression extends InterruptableNode implements Expressi final Iterator it = values.iterator(); if (it.hasNext()) { final StringBuilder sb = new StringBuilder(); - sb.append("(").append(it.next()); + sb.append('(').append(it.next()); while (it.hasNext()) { sb.append(", ").append(it.next()); } - sb.append("): ").append(result); + sb.append(')').append(super.toString()); return sb.toString(); } - return "(): " + result; + return "()".concat(super.toString()); } private static final Expression ANY = new Expression() { @@ -318,7 +328,7 @@ public final class MatchExpression extends InterruptableNode implements Expressi @Override public String toString() { - return "_"; + return "_".concat(super.toString()); } }; }