Search in sources :

Example 1 with Main

use of org.abs_models.frontend.parser.Main in project abstools by abstools.

the class ABSTest method assertParseFilesOk.

protected Model assertParseFilesOk(Set<String> fileNames, Config... config) throws IOException, InternalBackendException, DeltaModellingException, WrongProgramArgumentException {
    Main main = new Main();
    java.util.List<File> files = fileNames.stream().map(f -> new File(resolveFileName(f))).collect(Collectors.toList());
    Model m = main.parse(files);
    return assertParseModelOk(m, config);
}
Also used : FilenameFilter(java.io.FilenameFilter) Arrays(java.util.Arrays) SemanticCondition(org.abs_models.frontend.analyser.SemanticCondition) Set(java.util.Set) IOException(java.io.IOException) EXPECT_TYPE_ERROR(org.abs_models.ABSTest.Config.EXPECT_TYPE_ERROR) Collectors(java.util.stream.Collectors) EXPECT_PARSE_ERROR(org.abs_models.ABSTest.Config.EXPECT_PARSE_ERROR) WITHOUT_DESUGARING_AFTER_TYPECHECK(org.abs_models.ABSTest.Config.WITHOUT_DESUGARING_AFTER_TYPECHECK) File(java.io.File) LocationTypeExtension(org.abs_models.frontend.typechecker.locationtypes.LocationTypeExtension) WrongProgramArgumentException(org.abs_models.common.WrongProgramArgumentException) TYPE_CHECK(org.abs_models.ABSTest.Config.TYPE_CHECK) Main(org.abs_models.frontend.parser.Main) SemanticConditionList(org.abs_models.frontend.analyser.SemanticConditionList) StringReader(java.io.StringReader) Model(org.abs_models.frontend.ast.Model) WITH_LOC_INF(org.abs_models.ABSTest.Config.WITH_LOC_INF) Assert.fail(org.junit.Assert.fail) InternalBackendException(org.abs_models.backend.common.InternalBackendException) WITHOUT_MODULE_NAME(org.abs_models.ABSTest.Config.WITHOUT_MODULE_NAME) DeltaModellingException(org.abs_models.frontend.delta.DeltaModellingException) Model(org.abs_models.frontend.ast.Model) Main(org.abs_models.frontend.parser.Main) File(java.io.File)

Example 2 with Main

use of org.abs_models.frontend.parser.Main in project abstools by abstools.

the class ABSTest method assertParseFileOk.

/**
 * Note: does not handle EXPECT_*.
 * @throws DeltaModellingException
 */
public static Model assertParseFileOk(String fileName, Config... config) throws IOException, WrongProgramArgumentException, InternalBackendException, DeltaModellingException {
    Main main = new Main();
    Model m = main.parse(Arrays.asList(new File(resolveFileName(fileName))));
    m.evaluateAllProductDeclarations();
    return assertParseModelOk(m, config);
}
Also used : Model(org.abs_models.frontend.ast.Model) Main(org.abs_models.frontend.parser.Main) File(java.io.File)

Example 3 with Main

use of org.abs_models.frontend.parser.Main in project abstools by abstools.

the class CheckSPLCommand method call.

@Override
public Void call() throws Exception {
    if (parent.verbose)
        System.out.println("Starting software product line checking ...");
    Main main = new Main();
    // FIXME: fill in parent's verbose, debug
    main.arguments = this.parent;
    Model m = main.parse(files);
    analyzeModel(m);
    return null;
}
Also used : Model(org.abs_models.frontend.ast.Model) Main(org.abs_models.frontend.parser.Main)

Example 4 with Main

use of org.abs_models.frontend.parser.Main in project abstools by abstools.

the class CaseStudyTypeChecking method assertParseFilesOk.

protected Model assertParseFilesOk(String srcFolder, Config... config) throws IOException, WrongProgramArgumentException, InternalBackendException {
    File srcFolderF = new File(srcFolder);
    assertTrue(srcFolder, srcFolderF.exists());
    Main main = new Main();
    Model m = main.parse(findAbsFiles(srcFolderF));
    if (m != null) {
        m.evaluateAllProductDeclarations();
        if (m.hasParserErrors())
            Assert.fail(m.getParserErrors().get(0).getMessage());
        int numSemErrs = m.getErrors().getErrorCount();
        StringBuffer errs = new StringBuffer("Semantic errors: " + numSemErrs + "\n");
        if (numSemErrs > 0) {
            for (SemanticCondition error : m.getErrors()) errs = errs.append(error.getHelpMessage() + "\n");
            fail("Failed to parse: " + srcFolder + "\n" + errs.toString());
        } else if (isSet(TYPE_CHECK, config)) {
            SemanticConditionList l = m.typeCheck();
            if (l.containsErrors()) {
                for (SemanticCondition error : l) errs = errs.append(error.getHelpMessage() + "\n");
                fail("Failed to typecheck: " + srcFolder + "\n" + errs.toString());
            }
        }
    }
    return m;
}
Also used : SemanticConditionList(org.abs_models.frontend.analyser.SemanticConditionList) SemanticCondition(org.abs_models.frontend.analyser.SemanticCondition) Model(org.abs_models.frontend.ast.Model) File(java.io.File) Main(org.abs_models.frontend.parser.Main)

Aggregations

Model (org.abs_models.frontend.ast.Model)4 Main (org.abs_models.frontend.parser.Main)4 File (java.io.File)3 SemanticCondition (org.abs_models.frontend.analyser.SemanticCondition)2 SemanticConditionList (org.abs_models.frontend.analyser.SemanticConditionList)2 FilenameFilter (java.io.FilenameFilter)1 IOException (java.io.IOException)1 StringReader (java.io.StringReader)1 Arrays (java.util.Arrays)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 EXPECT_PARSE_ERROR (org.abs_models.ABSTest.Config.EXPECT_PARSE_ERROR)1 EXPECT_TYPE_ERROR (org.abs_models.ABSTest.Config.EXPECT_TYPE_ERROR)1 TYPE_CHECK (org.abs_models.ABSTest.Config.TYPE_CHECK)1 WITHOUT_DESUGARING_AFTER_TYPECHECK (org.abs_models.ABSTest.Config.WITHOUT_DESUGARING_AFTER_TYPECHECK)1 WITHOUT_MODULE_NAME (org.abs_models.ABSTest.Config.WITHOUT_MODULE_NAME)1 WITH_LOC_INF (org.abs_models.ABSTest.Config.WITH_LOC_INF)1 InternalBackendException (org.abs_models.backend.common.InternalBackendException)1 WrongProgramArgumentException (org.abs_models.common.WrongProgramArgumentException)1 DeltaModellingException (org.abs_models.frontend.delta.DeltaModellingException)1