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);
}
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);
}
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;
}
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;
}
Aggregations