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);
}