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;
-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<EVar> export;
+ // Features
+ public boolean chr;
+ public boolean fields;
- private void read(ErrorLog errorLog, DModuleHeader header) {
- for(FieldAssignment assignment : header.fields)
+ private void read(ErrorLog errorLog, FieldAssignment[] fields) {
+ for(FieldAssignment assignment : fields)
switch(assignment.name) {
case "bundle":
if(assignment.value == null)
errorLog.log(assignment.location, "No value expected for property fields.");
this.fields = true;
break;
+ case "chr":
+ if(assignment.value != null)
+ errorLog.log(assignment.location, "No value expected for property chr.");
+ this.chr = true;
+ break;
default:
errorLog.logWarning(assignment.location, "Unknown module header field was skipped.");
}
}
- public static ModuleHeader process(ErrorLog errorLog, DModuleHeader header) {
- if(header == null)
+ public static ModuleHeader process(ErrorLog errorLog, FieldAssignment[] fields) {
+ if(fields == null)
return null;
ModuleHeader result = new ModuleHeader();
- result.read(errorLog, header);
+ result.read(errorLog, fields);
return result;
}
}