+ THashMap<String, EVar> exportMap = null;
+ if(moduleHeader != null && moduleHeader.export != null) {
+ exportMap = new THashMap<String, EVar>();
+ for(EVar export : moduleHeader.export)
+ if(exportMap.put(export.name, export) != null)
+ errorLog.log(export.location, "The symbol " + export.name + " is exported multiple times.");
+ }
+
+ for(String name : valueDefinitionsAst.getValueNames()) {
+ ArrayList<DValueAst> defs = valueDefinitionsAst.getDefinition(name);
+ if(defs.size() != 1 || !(defs.get(0).value instanceof EPreCHRRulesetConstructor))
+ continue;
+ try {
+ SCLValue value = module.getValue(name);
+ TranslationContext context = createTranslationContext(name);
+ Expression expression = context.translateCases2(defs);
+ value.setExpression(expression);
+
+ if(exportMap != null && exportMap.remove(name) == null)
+ value.addProperty(PrivateProperty.INSTANCE);
+ } catch(RuntimeException e) {
+ errorLog.setExceptionPosition(defs.get(0).location);
+ throw e;
+ }
+ }