X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2Fprinting%2FExpressionToStringVisitor.java;h=122548fac399e6868d97c00fabebcbb5ad333847;hb=0861b325fcbbfa8c5985f1e11cfc39154a3808d1;hp=3f6da74cb9ffd9f7cf0daddd78f4dfe4bbc775ba;hpb=fad36d463b75c3a9944d875fc627c3533f6da74d;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/printing/ExpressionToStringVisitor.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/printing/ExpressionToStringVisitor.java index 3f6da74cb..122548fac 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/printing/ExpressionToStringVisitor.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/printing/ExpressionToStringVisitor.java @@ -8,6 +8,7 @@ import org.simantics.scl.compiler.elaboration.chr.CHRRule; import org.simantics.scl.compiler.elaboration.chr.relations.CHRConstraint; import org.simantics.scl.compiler.elaboration.expressions.Assignment; import org.simantics.scl.compiler.elaboration.expressions.Case; +import org.simantics.scl.compiler.elaboration.expressions.EAmbiguous; import org.simantics.scl.compiler.elaboration.expressions.EApply; import org.simantics.scl.compiler.elaboration.expressions.EApplyType; import org.simantics.scl.compiler.elaboration.expressions.EAsPattern; @@ -16,6 +17,7 @@ import org.simantics.scl.compiler.elaboration.expressions.EBind; import org.simantics.scl.compiler.elaboration.expressions.EBlock; import org.simantics.scl.compiler.elaboration.expressions.ECHRRuleset; import org.simantics.scl.compiler.elaboration.expressions.ECHRRulesetConstructor; +import org.simantics.scl.compiler.elaboration.expressions.ECHRSelect; import org.simantics.scl.compiler.elaboration.expressions.EConstant; import org.simantics.scl.compiler.elaboration.expressions.ECoveringBranchPoint; import org.simantics.scl.compiler.elaboration.expressions.EEnforce; @@ -71,6 +73,8 @@ import org.simantics.scl.compiler.elaboration.rules.TransformationRule; public class ExpressionToStringVisitor implements ExpressionVisitor, QueryVisitor { + public static final boolean SHOW_EFFECTS = false; + StringBuilder b = new StringBuilder(); int indentation; @@ -122,6 +126,8 @@ public class ExpressionToStringVisitor implements ExpressionVisitor, QueryVisito @Override public void visit(EApply expression) { showPar(expression.getFunction()); + if(SHOW_EFFECTS) + b.append(" {" + expression.effect + "}"); for(Expression parameter : expression.getParameters()) { b.append(' '); showPar(parameter); @@ -225,6 +231,8 @@ public class ExpressionToStringVisitor implements ExpressionVisitor, QueryVisito showPar(pat); b.append(' '); } + if(SHOW_EFFECTS) + b.append("{" + expression.effect + "} "); b.append("-> "); ++indentation; case_.value.accept(this); @@ -329,7 +337,12 @@ public class ExpressionToStringVisitor implements ExpressionVisitor, QueryVisito public void visit(ESelect expression) { b.append("ESelect"); } - + + @Override + public void visit(ECHRSelect expression) { + b.append("ECHRSelect"); + } + @Override public void visit(ESimpleLambda expression) { b.append('\\'); @@ -339,6 +352,8 @@ public class ExpressionToStringVisitor implements ExpressionVisitor, QueryVisito b.append(' '); show(expression.getParameter()); } + if(SHOW_EFFECTS) + b.append(" {" + expression.effect + "}"); b.append(" -> "); expression.getValue().accept(this); } @@ -606,4 +621,9 @@ public class ExpressionToStringVisitor implements ExpressionVisitor, QueryVisito } b.append('"'); } + + @Override + public void visit(EAmbiguous eAmbiguous) { + b.append("EAmbigious"); + } }