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=d85a4d990c5cac9d0c70781a265f02888b3aaa43;hp=edf951711c2c247f763fa7a23ab3e4eee0482652;hpb=292e64ba21f8044df19884dc3e61fe5e292a82df;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 edf951711..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; @@ -72,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; @@ -123,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); @@ -226,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); @@ -345,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); } @@ -612,4 +621,9 @@ public class ExpressionToStringVisitor implements ExpressionVisitor, QueryVisito } b.append('"'); } + + @Override + public void visit(EAmbiguous eAmbiguous) { + b.append("EAmbigious"); + } }