- public void compile(SimplificationContext context) {
- initializeCodeGeneration(context.getCompilationContext());
- if(extensible)
- applyExtensibleDefaults();
- UsageAnalysis.analyzeUsage(this);
- for(CHRRule rule : rules) {
- rule.compile(context.getCompilationContext(), initConstraint);
- for(CHRSearchPlan plan : rule.plans) {
- CHRConstraint constraint = plan.constraint;
- if(!activeConstraintGGInfo.containsKey(constraint)) {
- activeConstraintGGInfo.put(constraint, new CHRConstraintGGInfo(rule.priority));
- IncludeStatement include = constraintSourceMap.get(constraint);
- if(include != null) {
- ArrayList<CHRConstraint> list = inverseActiveConstraintSourceMap.get(include);
- if(list == null) {
- list = new ArrayList<CHRConstraint>(4);
- inverseActiveConstraintSourceMap.put(include, list);
+ private void compile(SimplificationContext context) {
+ try {
+ initializeCodeGeneration(context.getCompilationContext());
+ if(extensible)
+ applyExtensibleDefaults();
+ UsageAnalysis.analyzeUsage(this);
+ for(CHRRule rule : rules) {
+ rule.compile(context.getCompilationContext(), initConstraint);
+ for(CHRSearchPlan plan : rule.plans) {
+ CHRConstraint constraint = plan.constraint;
+ if(!activeConstraintGGInfo.containsKey(constraint)) {
+ activeConstraintGGInfo.put(constraint, new CHRConstraintGGInfo(rule.priority));
+ IncludeStatement include = constraintSourceMap.get(constraint);
+ if(include != null) {
+ ArrayList<CHRConstraint> list = inverseActiveConstraintSourceMap.get(include);
+ if(list == null) {
+ list = new ArrayList<CHRConstraint>(4);
+ inverseActiveConstraintSourceMap.put(include, list);
+ }
+ list.add(constraint);