module = new ConcreteModule(moduleName);
compilationContext.module = module;
- if(moduleHeader != null && moduleHeader.defaultLocalName != null)
- module.setDefaultLocalName(moduleHeader.defaultLocalName);
+ compilationContext.moduleRepository = localEnvironmentFactory.getModuleRepository();
+ if(moduleHeader != null) {
+ if(moduleHeader.defaultLocalName != null)
+ module.setDefaultLocalName(moduleHeader.defaultLocalName);
+ if(moduleHeader.deprecated != null)
+ module.setDeprecation(moduleHeader.deprecated);
+ }
try {
if(timer != null)
timer.suspendTimer();
importedEnvironment = localEnvironmentFactory.createEnvironment(
+ compilationContext,
importsAst.toArray(new ImportDeclaration[importsAst.size()]));
if(timer != null)
timer.continueTimer();
try {
String absoluteModuleName = ModuleUtils.resolveAbsolutePath(moduleName, relativeImport.moduleName);
ImportDeclaration absoluteImport = new ImportDeclaration(
+ relativeImport.location,
absoluteModuleName, relativeImport.localName,
relativeImport.reexport, relativeImport.spec);
- absoluteImport.location = relativeImport.location;
absoluteImports.add(absoluteImport);
} catch (InvalidModulePathException e) {
errorLog.log(relativeImport.location, e.getMessage());
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();
+ 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;
+ }
+ }
+ 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();