private void validateTcResult(TypeCheckResult<?> tcResult) throws MojoExecutionException { if (!tcResult.parserResult.errors.isEmpty() || !tcResult.errors.isEmpty()) { String PARSE_TYPE_CHECK_ERR_MSG = "Could not parse or type check VDM model"; getLog().error(PARSE_TYPE_CHECK_ERR_MSG + ":\n" + GeneralCodeGenUtils.errorStr(tcResult)); throw new MojoExecutionException(PARSE_TYPE_CHECK_ERR_MSG); } // No type errors } }
private static void validateInput(TypeCheckerUtil.TypeCheckResult<?> result) { if (GeneralCodeGenUtils.hasErrors(result)) { System.err.println("Found errors in VDM model:"); System.err.println(GeneralCodeGenUtils.errorStr(result)); System.exit(1); } }
public static <T extends TypeCheckResult<?>> T checkTcResult(T tcResult) { if (GeneralCodeGenUtils.hasErrors(tcResult)) { Assert.fail("Problems parsing/type checking VDM model:\n" + GeneralCodeGenUtils.errorStr(tcResult)); } return tcResult; }
+ GeneralCodeGenUtils.errorStr(tcResult));
public static void handleSl(List<File> files, IRSettings irSettings, JavaSettings javaSettings, boolean printCode, File outputDir, boolean separateTestCode, boolean printWarnings) { try { JavaCodeGen vdmCodGen = new JavaCodeGen(); vdmCodGen.setSettings(irSettings); vdmCodGen.setJavaSettings(javaSettings); Settings.dialect = Dialect.VDM_SL; TypeCheckResult<List<AModuleModules>> tcResult = TypeCheckerUtil.typeCheckSl(files); if (GeneralCodeGenUtils.hasErrors(tcResult)) { MsgPrinter.getPrinter().error("Found errors in VDM model:"); MsgPrinter.getPrinter().errorln(GeneralCodeGenUtils.errorStr(tcResult)); return; } GeneratedData data = vdmCodGen.generate(CodeGenBase.getNodes(tcResult.result)); processData(printCode, outputDir, vdmCodGen, data, separateTestCode, printWarnings); } catch (AnalysisException e) { MsgPrinter.getPrinter().println("Could not code generate model: " + e.getMessage()); } }
MsgPrinter.getPrinter().errorln(GeneralCodeGenUtils.errorStr(tcResult)); return;