mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 08:44:20 +03:00
Вывод уточнений при выводе паттернов
This commit is contained in:
parent
6d6db55055
commit
4ac0943805
@ -208,6 +208,16 @@ public final class MatchExpression extends InterruptableNode implements Expressi
|
|||||||
public static abstract class Pattern {
|
public static abstract class Pattern {
|
||||||
public Statement result;
|
public Statement result;
|
||||||
public Expression optCondition;
|
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 {
|
public static class ConstantPattern extends Pattern {
|
||||||
@ -219,7 +229,7 @@ public final class MatchExpression extends InterruptableNode implements Expressi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
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
|
@Override
|
||||||
public String toString() {
|
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()) {
|
while (it.hasNext()) {
|
||||||
sb.append(" :: ").append(it.next());
|
sb.append(" :: ").append(it.next());
|
||||||
}
|
}
|
||||||
sb.append("]: ").append(result);
|
sb.append("]").append(super.toString());
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
return "[]: " + result;
|
return "[]".concat(super.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -291,14 +301,14 @@ public final class MatchExpression extends InterruptableNode implements Expressi
|
|||||||
final Iterator<Expression> it = values.iterator();
|
final Iterator<Expression> it = values.iterator();
|
||||||
if (it.hasNext()) {
|
if (it.hasNext()) {
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
sb.append("(").append(it.next());
|
sb.append('(').append(it.next());
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
sb.append(", ").append(it.next());
|
sb.append(", ").append(it.next());
|
||||||
}
|
}
|
||||||
sb.append("): ").append(result);
|
sb.append(')').append(super.toString());
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
return "(): " + result;
|
return "()".concat(super.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Expression ANY = new Expression() {
|
private static final Expression ANY = new Expression() {
|
||||||
@ -318,7 +328,7 @@ public final class MatchExpression extends InterruptableNode implements Expressi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "_";
|
return "_".concat(super.toString());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user