X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fheader%2FModuleHeader.java;h=33a88ffba83dee70893e841c6cb516407ebca6fb;hp=9ca588779866f7022b32957195b70ff0bc580580;hb=b2676209b072592da3425c2efb29f51eb5c4a0e0;hpb=f5fc85ba00f434402caa2a4c83a302a3b035adce diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/header/ModuleHeader.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/header/ModuleHeader.java index 9ca588779..33a88ffba 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/header/ModuleHeader.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/header/ModuleHeader.java @@ -1,5 +1,8 @@ package org.simantics.scl.compiler.internal.header; +import java.util.List; + +import org.simantics.scl.compiler.elaboration.expressions.EVar; import org.simantics.scl.compiler.elaboration.expressions.annotations.AnnotationUtils; import org.simantics.scl.compiler.elaboration.expressions.records.FieldAssignment; import org.simantics.scl.compiler.errors.ErrorLog; @@ -8,6 +11,9 @@ import org.simantics.scl.compiler.internal.parsing.declarations.DModuleHeader; public class ModuleHeader { public String classLoader; public long classLoaderLocation; + public String defaultLocalName; + public boolean fields; + public List export; private void read(ErrorLog errorLog, DModuleHeader header) { for(FieldAssignment assignment : header.fields) @@ -23,6 +29,29 @@ public class ModuleHeader { classLoaderLocation = assignment.location; } break; + case "export": + if(assignment.value == null) + errorLog.log(assignment.location, "Property export needs to be given a string list value."); + else { + export = AnnotationUtils.extractIdentifierList(assignment.value); + if(export == null) + errorLog.log(assignment.value.location, "Expected a list of exported items."); + } + break; + case "defaultLocalName": + if(assignment.value == null) + errorLog.log(assignment.location, "Property defaultLocalName needs to be given a string value."); + else { + defaultLocalName = AnnotationUtils.extractString(assignment.value); + if(defaultLocalName == null) + errorLog.log(assignment.value.location, "Expected string here."); + } + break; + case "fields": + if(assignment.value != null) + errorLog.log(assignment.location, "No value expected for property fields."); + this.fields = true; + break; default: errorLog.logWarning(assignment.location, "Unknown module header field was skipped."); }