+package org.simantics.scl.compiler.elaboration.chr.plan;\r
+\r
+import org.simantics.scl.compiler.compilation.CompilationContext;\r
+import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;\r
+\r
+public abstract class PlanOp {\r
+ public long location;\r
+\r
+ public PlanOp(long location) {\r
+ this.location = location;\r
+ }\r
+ \r
+ @Override\r
+ public String toString() {\r
+ StringBuilder b = new StringBuilder();\r
+ toString(b);\r
+ return b.toString();\r
+ }\r
+\r
+ public abstract void toString(StringBuilder b);\r
+ public abstract void generateCode(CompilationContext context, PlanContext planContext, CodeWriter w);\r
+}\r