]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/AssignOp.java
Merge "Ensure GetElementClassRequest is not constructed without elementFactory"
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / plan / AssignOp.java
1 package org.simantics.scl.compiler.elaboration.chr.plan;\r
2 \r
3 import org.simantics.scl.compiler.compilation.CompilationContext;\r
4 import org.simantics.scl.compiler.elaboration.expressions.Expression;\r
5 import org.simantics.scl.compiler.elaboration.expressions.Variable;\r
6 import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;\r
7 \r
8 public class AssignOp extends PlanOp {\r
9     public Variable variable;\r
10     public Expression expression;\r
11    \r
12     public AssignOp(long location, Variable variable, Expression expression) {\r
13         super(location);\r
14         this.variable = variable;\r
15         this.expression = expression;\r
16     }\r
17 \r
18     @Override\r
19     public void toString(StringBuilder b) {\r
20         b.append("ASSIGN  ").append(variable).append(" = ").append(expression);\r
21     }\r
22 \r
23     @Override\r
24     public void generateCode(CompilationContext context, PlanContext planContext, CodeWriter w) {\r
25         variable.setVal(expression.toVal(context.environment, w));\r
26         planContext.nextOp(w);\r
27     }\r
28 \r
29     \r
30 }\r