X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2FStandardExpressionTransformer.java;h=2fc6d1e7eb4d93ea1f224dc214650eae6c766a14;hp=1a2f451eeab205b8aff61a0ae5d655a2750660f4;hb=a8758de5bc19e5adb3f618d3038743a164f09912;hpb=12d9af17384d960b75d58c3935d2b7b46d93e87b diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/StandardExpressionTransformer.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/StandardExpressionTransformer.java index 1a2f451ee..2fc6d1e7e 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/StandardExpressionTransformer.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/StandardExpressionTransformer.java @@ -1,5 +1,7 @@ package org.simantics.scl.compiler.elaboration.expressions; +import org.simantics.scl.compiler.elaboration.chr.CHRLiteral; +import org.simantics.scl.compiler.elaboration.chr.CHRRule; import org.simantics.scl.compiler.elaboration.equation.EqBasic; import org.simantics.scl.compiler.elaboration.equation.EqGuard; import org.simantics.scl.compiler.elaboration.equation.Equation; @@ -79,6 +81,13 @@ EquationVisitor { return expression; } + @Override + public Expression transform(EViewPattern expression) { + expression.expression = expression.expression.accept(this); + expression.pattern = expression.pattern.accept(this); + return expression; + } + @Override public Expression transform(EBlock expression) { for(Statement statement : expression.statements) @@ -109,6 +118,20 @@ EquationVisitor { statement.body = statement.body.accept(this); } + @Override + public Expression transform(ECHRRuleset expression) { + expression.in = expression.in.accept(this); + for(CHRRule rule : expression.ruleset.rules) { + for(CHRLiteral lit : rule.head.literals) + for(int i=0;i