diff --git a/src/main/java/de/tla2bAst/ExpressionTranslator.java b/src/main/java/de/tla2bAst/ExpressionTranslator.java index 0e3397f5a4fb376a21b61c849c859ca2818a2808..e809a791fe9f40815e08cb89d3a252bacfe71017 100644 --- a/src/main/java/de/tla2bAst/ExpressionTranslator.java +++ b/src/main/java/de/tla2bAst/ExpressionTranslator.java @@ -46,7 +46,7 @@ public class ExpressionTranslator implements SyntaxTreeConstants { this.translator = translator; } - public void parse() { + public void parse() throws de.tla2b.exceptions.FrontEndException { String dir = System.getProperty("java.io.tmpdir"); ToolIO.setUserDir(dir); @@ -66,7 +66,9 @@ public class ExpressionTranslator implements SyntaxTreeConstants { fw.write(module); fw.close(); } catch (IOException e) { - throw new RuntimeException("Can not create file temporary file in directory '" + dir + "'"); + throw new de.tla2b.exceptions.FrontEndException( + "Can not create file temporary file in directory '" + dir + + "'"); } SpecObj spec = parseModuleWithoutSemanticAnalyse(moduleName, module); @@ -96,8 +98,7 @@ public class ExpressionTranslator implements SyntaxTreeConstants { fw.close(); tempFile.deleteOnExit(); } catch (IOException e) { - e.printStackTrace(); - throw new RuntimeException(e.getMessage()); + throw new de.tla2b.exceptions.FrontEndException(e.getMessage()); } ToolIO.reset(); @@ -107,7 +108,7 @@ public class ExpressionTranslator implements SyntaxTreeConstants { try { moduleNode = parseModule(moduleName, sb.toString()); } catch (de.tla2b.exceptions.FrontEndException e) { - throw new RuntimeException(e.getLocalizedMessage()); + throw new de.tla2b.exceptions.FrontEndException(e.getLocalizedMessage()); } } @@ -154,19 +155,17 @@ public class ExpressionTranslator implements SyntaxTreeConstants { SANY.frontEndMain(spec, moduleName, ToolIO.out); } catch (FrontEndException e) { // Error in Frontend, should never happens - return null; + throw new de.tla2b.exceptions.FrontEndException( + "Frontend error! This should never happen.", spec); } if (spec.parseErrors.isFailure()) { - // String[] m = ToolIO.getAllMessages(); String message = module + "\n\n" + spec.parseErrors; - // System.out.println(spec.parseErrors); message += allMessagesToString(ToolIO.getAllMessages()); throw new de.tla2b.exceptions.FrontEndException(message, spec); } if (spec.semanticErrors.isFailure()) { - // String[] m = ToolIO.getAllMessages(); String message = module + "\n\n" + spec.semanticErrors; message += allMessagesToString(ToolIO.getAllMessages()); throw new de.tla2b.exceptions.FrontEndException(message, spec); diff --git a/src/main/java/de/tla2bAst/Translator.java b/src/main/java/de/tla2bAst/Translator.java index 83642e0da89d4b18b189c6d65bb078f847758a78..437729ee6e61430a1b7ce41690abae499b42985b 100644 --- a/src/main/java/de/tla2bAst/Translator.java +++ b/src/main/java/de/tla2bAst/Translator.java @@ -357,7 +357,12 @@ public class Translator implements TranslationGlobals { public static Start translateTlaExpression(String tlaExpression) { ExpressionTranslator expressionTranslator = new ExpressionTranslator( tlaExpression); - expressionTranslator.parse(); + try { + expressionTranslator.parse(); + } catch (FrontEndException e) { + System.out.println(e.getMessage()); + throw new RuntimeException(); + } expressionTranslator.translate(); return expressionTranslator.getBExpressionParseUnit(); }