import org.simantics.scl.compiler.environment.EnvironmentFactory;
import org.simantics.scl.compiler.errors.ErrorLog;
import org.simantics.scl.compiler.environment.EnvironmentFactory;
import org.simantics.scl.compiler.errors.ErrorLog;
import org.simantics.scl.compiler.internal.codegen.types.JavaReferenceValidatorFactory;
import org.simantics.scl.compiler.internal.header.ModuleHeader;
import org.simantics.scl.compiler.internal.parsing.declarations.DeclarationAst;
import org.simantics.scl.compiler.internal.codegen.types.JavaReferenceValidatorFactory;
import org.simantics.scl.compiler.internal.header.ModuleHeader;
import org.simantics.scl.compiler.internal.parsing.declarations.DeclarationAst;
try {
SCLParserImpl parser = new SCLParserImpl(sourceReader);
parser.setParserOptions(SCLParserOptions.MODULE_DEFAULT);
try {
SCLParserImpl parser = new SCLParserImpl(sourceReader);
parser.setParserOptions(SCLParserOptions.MODULE_DEFAULT);
if(!parser.isEmpty())
for(DeclarationAst declaration : (ArrayList<DeclarationAst>)parser.parseModule())
declarations.handle(declaration);
if(!parser.isEmpty())
for(DeclarationAst declaration : (ArrayList<DeclarationAst>)parser.parseModule())
declarations.handle(declaration);
declarations.importsAst,
jrvFactory,
declarations.valueDefinitionsAst,
declarations.relationDefinitionsAst);
if(options.computeCoverage)
elaboration.addCoverageBranchPoints();
declarations.importsAst,
jrvFactory,
declarations.valueDefinitionsAst,
declarations.relationDefinitionsAst);
if(options.computeCoverage)
elaboration.addCoverageBranchPoints();
elaboration.addTypesToEnvironment(
declarations.dataTypesAst,
declarations.typeAliasesAst,
elaboration.addTypesToEnvironment(
declarations.dataTypesAst,
declarations.typeAliasesAst,
elaboration.addDataTypesToEnvironment();
elaboration.addTypeClassesToEnvironment();
elaboration.preprocessValueDefinitions(declarations.typeAnnotationsAst);
elaboration.addDataTypesToEnvironment();
elaboration.addTypeClassesToEnvironment();
elaboration.preprocessValueDefinitions(declarations.typeAnnotationsAst);
elaboration.addValueDefinitionsToEnvironment(declarations.typeAnnotationsAst);
elaboration.processRules(declarations.rulesAst);
elaboration.addSupplementedTypeAnnotationsToEnvironment();
elaboration.addValueDefinitionsToEnvironment(declarations.typeAnnotationsAst);
elaboration.processRules(declarations.rulesAst);
elaboration.addSupplementedTypeAnnotationsToEnvironment();