+
+ private CHRRuleset extractCHRRules(TranslationContext context, int begin, int end) {
+ CHRRuleset ruleset = new CHRRuleset();
+ ruleset.location = Locations.combine(statements.get(begin).location, statements.get(end-1).location);
+ for(int i=begin;i<end;++i) {
+ Statement statement = statements.get(i);
+ if(statement instanceof CHRStatement)
+ ruleset.addRule(CHRTranslation.convertCHRStatement(context, (CHRStatement)statement));
+ else if(statement instanceof ConstraintStatement)
+ ruleset.constraints.add(CHRTranslation.convertConstraintStatement(context, (ConstraintStatement)statement));
+ else if(statement instanceof IncludeStatement)
+ ruleset.includes.add((IncludeStatement)statement);
+ else
+ context.getErrorLog().log(statement.location, "Invalid CHR statement.");
+ }
+ return ruleset;
+ }