From b453ec0047b5a87e36098b3519e085f03d917d81 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Sat, 28 Mar 2020 12:02:32 -0400 Subject: Add DualExprParser This class parses DualExprs from prefix expressions --- .../java/bjc/utils/exceptions/InvalidToken.java | 9 +++++++ .../bjc/utils/exceptions/NonConstantPower.java | 9 +++++++ .../bjc/utils/exceptions/OperandsRemaining.java | 28 ++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 base/src/main/java/bjc/utils/exceptions/InvalidToken.java create mode 100644 base/src/main/java/bjc/utils/exceptions/NonConstantPower.java create mode 100644 base/src/main/java/bjc/utils/exceptions/OperandsRemaining.java (limited to 'base/src/main/java/bjc/utils/exceptions') diff --git a/base/src/main/java/bjc/utils/exceptions/InvalidToken.java b/base/src/main/java/bjc/utils/exceptions/InvalidToken.java new file mode 100644 index 0000000..b09af78 --- /dev/null +++ b/base/src/main/java/bjc/utils/exceptions/InvalidToken.java @@ -0,0 +1,9 @@ +package bjc.utils.exceptions; + +public class InvalidToken extends RuntimeException { + private static final long serialVersionUID = -5077165766341244689L; + + public InvalidToken(String tok) { + super(String.format("Did not recognize token '%s' as a valid token", tok)); + } +} \ No newline at end of file diff --git a/base/src/main/java/bjc/utils/exceptions/NonConstantPower.java b/base/src/main/java/bjc/utils/exceptions/NonConstantPower.java new file mode 100644 index 0000000..143fb4d --- /dev/null +++ b/base/src/main/java/bjc/utils/exceptions/NonConstantPower.java @@ -0,0 +1,9 @@ +package bjc.utils.exceptions; + +public class NonConstantPower extends RuntimeException { + private static final long serialVersionUID = 1640883448305031149L; + + public NonConstantPower() { + super("Cannot raise an expression to a non-constant power"); + } +} \ No newline at end of file diff --git a/base/src/main/java/bjc/utils/exceptions/OperandsRemaining.java b/base/src/main/java/bjc/utils/exceptions/OperandsRemaining.java new file mode 100644 index 0000000..ca83b30 --- /dev/null +++ b/base/src/main/java/bjc/utils/exceptions/OperandsRemaining.java @@ -0,0 +1,28 @@ +package bjc.utils.exceptions; + +/** + * Exception thrown when an operation has finished, but still has more input + * that has not been processed. + * + * @author Ben Culkin + * + */ +public class OperandsRemaining extends RuntimeException { + private static final long serialVersionUID = 4848222659854671315L; + + /** + * Create a new OperandsRemaining exception with a default message. + */ + public OperandsRemaining() { + super("Operation had input left-over"); + } + + /** + * Create a new OperandsRemaining exception with a specific message. + * + * @param msg The message of the exception. + */ + public OperandsRemaining(String msg) { + super(msg); + } +} -- cgit v1.2.3