]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/ast/CHRAstQuery.java
CHR query translation and support for assignment in CHR bodies
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / ast / CHRAstQuery.java
index bd708e69051b1ea044a91fe73e00e7d937dd8d3b..e655c78e762c6694e907262988929a8ff9f2d691 100644 (file)
@@ -8,21 +8,13 @@ import org.simantics.scl.compiler.elaboration.contexts.TranslationContext;
 import org.simantics.scl.compiler.internal.parsing.Symbol;
 
 public abstract class CHRAstQuery extends Symbol {
-    public CHRQuery translateAsHead(TranslationContext context) {
-        return translate(context, true);
-    }
-    
-    public CHRQuery translateAsBody(TranslationContext context) {
-        return translate(context, false);
-    }
-
-    private CHRQuery translate(TranslationContext context, boolean isHead) {
+    public CHRQuery translate(TranslationContext context, CHRQueryTranslationMode mode) {
         ArrayList<CHRLiteral> literals = new ArrayList<CHRLiteral>(); 
-        translate(context, isHead, literals);
+        translate(context, mode, literals);
         return new CHRQuery(literals.toArray(new CHRLiteral[literals.size()]));
     }
 
-    protected abstract void translate(TranslationContext context, boolean isHead, ArrayList<CHRLiteral> literals);
+    protected abstract void translate(TranslationContext context, CHRQueryTranslationMode mode, ArrayList<CHRLiteral> literals);
 
     public abstract void accept(CHRAstQueryVisitor visitor);
 }