}
@Override
- protected void translate(TranslationContext context, boolean isHead, ArrayList<CHRLiteral> literals) {
- literals.add(
- isConstraint(context, expression) ?
- convertConstraint(remove, expression) :
- convertExpression(isHead, expression));
+ protected void translate(TranslationContext context, CHRQueryTranslationMode mode, ArrayList<CHRLiteral> literals) {
+ if(isConstraint(context, expression)) {
+ literals.add(convertConstraint(remove, expression));
+ }
+ else {
+ if(remove)
+ context.getErrorLog().log(location, "Only constraints can be marked for removal");
+ else
+ literals.add(convertExpression(mode, expression));
+ }
}
private static boolean isConstraint(TranslationContext context, Expression expression) {
}
}
- private static CHRLiteral convertExpression(boolean isHead, Expression expression) {
- if(isHead)
+ private static CHRLiteral convertExpression(CHRQueryTranslationMode mode, Expression expression) {
+ if(mode.isHead)
return new CHRLiteral(expression.location, SpecialCHRRelation.CHECK, new Expression[] {expression}, false, false);
else
return new CHRLiteral(expression.location, SpecialCHRRelation.EXECUTE, new Expression[] {expression}, false, false);