-package org.simantics.scl.compiler.elaboration.expressions;\r
-\r
-import org.simantics.scl.compiler.elaboration.contexts.ReplaceContext;\r
-import org.simantics.scl.compiler.errors.Locations;\r
-import org.simantics.scl.compiler.internal.elaboration.utils.ExpressionDecorator;\r
-import org.simantics.scl.compiler.internal.parsing.Symbol;\r
-\r
-public class GuardedExpression extends Symbol {\r
- public Expression[] guards;\r
- public Expression value;\r
- \r
- public GuardedExpression(Expression[] guards, Expression value) {\r
- this.guards = guards;\r
- this.value = value;\r
- }\r
-\r
- public GuardedExpression replace(ReplaceContext context) {\r
- return new GuardedExpression(\r
- Expression.replace(context, guards), \r
- value.replace(context));\r
- }\r
-\r
- public void decorate(ExpressionDecorator decorator) {\r
- for(int i=0;i<guards.length;++i)\r
- guards[i] = guards[i].decorate(decorator);\r
- value = value.decorate(decorator);\r
- }\r
-\r
- public void setLocationDeep(long loc) {\r
- if(location == Locations.NO_LOCATION) {\r
- location = loc;\r
- for(Expression guard : guards)\r
- guard.setLocationDeep(loc);\r
- value.setLocationDeep(loc);\r
- }\r
- }\r
-\r
- public void forVariables(VariableProcedure procedure) {\r
- for(Expression guard : guards)\r
- guard.forVariables(procedure);\r
- value.forVariables(procedure);\r
- }\r
-}\r
+package org.simantics.scl.compiler.elaboration.expressions;
+
+import org.simantics.scl.compiler.elaboration.contexts.ReplaceContext;
+import org.simantics.scl.compiler.errors.Locations;
+import org.simantics.scl.compiler.internal.elaboration.utils.ExpressionDecorator;
+import org.simantics.scl.compiler.internal.parsing.Symbol;
+
+public class GuardedExpression extends Symbol {
+ public Expression[] guards;
+ public Expression value;
+
+ public GuardedExpression(Expression[] guards, Expression value) {
+ this.guards = guards;
+ this.value = value;
+ }
+
+ public GuardedExpression replace(ReplaceContext context) {
+ return new GuardedExpression(
+ Expression.replace(context, guards),
+ value.replace(context));
+ }
+
+ public void decorate(ExpressionDecorator decorator) {
+ for(int i=0;i<guards.length;++i)
+ guards[i] = guards[i].decorate(decorator);
+ value = value.decorate(decorator);
+ }
+
+ public void setLocationDeep(long loc) {
+ if(location == Locations.NO_LOCATION) {
+ location = loc;
+ for(Expression guard : guards)
+ guard.setLocationDeep(loc);
+ value.setLocationDeep(loc);
+ }
+ }
+
+ public void forVariables(VariableProcedure procedure) {
+ for(Expression guard : guards)
+ guard.forVariables(procedure);
+ value.forVariables(procedure);
+ }
+}