From 9c189c2d1ef35184ec9a9d08bdeeb52936902867 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 28 Jun 2016 21:39:10 +0300 Subject: Restructure classes --- .../com/jantuomi/borker/exception/BorkError.java | 53 ++++++++++++++++++++++ .../borker/exception/ExceptionManager.java | 4 +- .../borker/exception/InterpreterException.java | 53 ---------------------- 3 files changed, 55 insertions(+), 55 deletions(-) create mode 100644 src/main/com/jantuomi/borker/exception/BorkError.java delete mode 100644 src/main/com/jantuomi/borker/exception/InterpreterException.java (limited to 'src/main/com/jantuomi/borker/exception') diff --git a/src/main/com/jantuomi/borker/exception/BorkError.java b/src/main/com/jantuomi/borker/exception/BorkError.java new file mode 100644 index 0000000..a9edb20 --- /dev/null +++ b/src/main/com/jantuomi/borker/exception/BorkError.java @@ -0,0 +1,53 @@ +package com.jantuomi.borker.exception; + + +import java.util.HashMap; +import java.util.Map; + +/** + * Created by jan on 12.6.2016. + */ +public class BorkError extends Exception { + + public enum ExceptionType { + IllegalTokenError, + SyntaxError, + TypeError, + ArgumentError, + UndeclaredSymbolError + } + + public static Map errorTexts = new HashMap<>(); + + static { + errorTexts.put(ExceptionType.IllegalTokenError, "Unknown or illegal token %s found."); + errorTexts.put(ExceptionType.SyntaxError, "Unexpected %s."); + errorTexts.put(ExceptionType.TypeError, "Incompatible types %s and %s."); + errorTexts.put(ExceptionType.ArgumentError, "The parameter list given to function %s is either of wrong length or the parameters are of wrong type. Actual: %s"); + errorTexts.put(ExceptionType.UndeclaredSymbolError, "No symbol %s defined, parameters: [%s]."); + } + + private ExceptionType exceptionType; + private String completeMessage; + + public BorkError(ExceptionType exceptionType, int line, String... args) { + super(exceptionType.toString(), null, false, false); + this.exceptionType = exceptionType; + this.completeMessage = formatMessage(exceptionType.toString() + ": " + what(exceptionType), line, args); + } + + private static String formatMessage(String message, int line, String... args) { + + message = String.format(message, args); + return String.format("\nline %d: ", line) + message; + } + + public static String what(ExceptionType type) { + return errorTexts.get(type); + } + + @Override + public void printStackTrace() { + System.err.println(completeMessage); + } +} diff --git a/src/main/com/jantuomi/borker/exception/ExceptionManager.java b/src/main/com/jantuomi/borker/exception/ExceptionManager.java index b9b302b..238c341 100644 --- a/src/main/com/jantuomi/borker/exception/ExceptionManager.java +++ b/src/main/com/jantuomi/borker/exception/ExceptionManager.java @@ -14,8 +14,8 @@ public class ExceptionManager { return instance; } - public static void raise(InterpreterException.ExceptionType ex, int line, String... args) throws InterpreterException { - InterpreterException e = new InterpreterException(ex, line, args); + public static void raise(BorkError.ExceptionType ex, int line, String... args) throws BorkError { + BorkError e = new BorkError(ex, line, args); throw e; } } diff --git a/src/main/com/jantuomi/borker/exception/InterpreterException.java b/src/main/com/jantuomi/borker/exception/InterpreterException.java deleted file mode 100644 index 153da0a..0000000 --- a/src/main/com/jantuomi/borker/exception/InterpreterException.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.jantuomi.borker.exception; - - -import java.util.HashMap; -import java.util.Map; - -/** - * Created by jan on 12.6.2016. - */ -public class InterpreterException extends Exception { - - public enum ExceptionType { - IllegalTokenError, - SyntaxError, - TypeError, - ArgumentError, - UndeclaredSymbolError - } - - public static Map errorTexts = new HashMap<>(); - - static { - errorTexts.put(ExceptionType.IllegalTokenError, "Unknown or illegal token %s found."); - errorTexts.put(ExceptionType.SyntaxError, "Unexpected %s."); - errorTexts.put(ExceptionType.TypeError, "Incompatible types %s and %s."); - errorTexts.put(ExceptionType.ArgumentError, "The parameter list given to function %s is either of wrong length or the parameters are of wrong type. Actual: %s"); - errorTexts.put(ExceptionType.UndeclaredSymbolError, "No symbol %s defined, parameters: [%s]."); - } - - private ExceptionType exceptionType; - private String completeMessage; - - public InterpreterException(ExceptionType exceptionType, int line, String... args) { - super(exceptionType.toString(), null, false, false); - this.exceptionType = exceptionType; - this.completeMessage = formatMessage(exceptionType.toString() + ": " + what(exceptionType), line, args); - } - - private static String formatMessage(String message, int line, String... args) { - - message = String.format(message, args); - return String.format("\nline %d: ", line) + message; - } - - public static String what(ExceptionType type) { - return errorTexts.get(type); - } - - @Override - public void printStackTrace() { - System.err.println(completeMessage); - } -} -- cgit v1.3