diff options
author | Adrien Hopkins <ahopk127@my.yorku.ca> | 2021-09-27 17:31:22 -0500 |
---|---|---|
committer | Adrien Hopkins <ahopk127@my.yorku.ca> | 2021-09-27 17:34:21 -0500 |
commit | 544ba103f9903bf885e346d34639c05934655f3f (patch) | |
tree | 2acb842e36f6098bf4bfd2a397a395af77a62164 /src/main/java/sevenUnits/utils/ExpressionParser.java | |
parent | 54e36eda34a508379915b270f4a234693aa1775b (diff) |
Added some tests for invalid unitfiles
Diffstat (limited to 'src/main/java/sevenUnits/utils/ExpressionParser.java')
-rw-r--r-- | src/main/java/sevenUnits/utils/ExpressionParser.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/sevenUnits/utils/ExpressionParser.java b/src/main/java/sevenUnits/utils/ExpressionParser.java index 1d3d44d..3c4abad 100644 --- a/src/main/java/sevenUnits/utils/ExpressionParser.java +++ b/src/main/java/sevenUnits/utils/ExpressionParser.java @@ -461,6 +461,8 @@ public final class ExpressionParser<T> { * * @param expression expression * @return expression in RPN + * @throws IllegalArgumentException if expression is invalid (e.g. + * "{@code 3 *}") * @since 2019-03-17 * @since v0.2.0 */ @@ -541,6 +543,9 @@ public final class ExpressionParser<T> { switch (this .getTokenType(components.get(highestPriorityOperatorPosition))) { case UNARY_OPERATOR: + if (components.size() < 2) + throw new IllegalArgumentException( + "Invalid expression \"" + expression + "\""); final String unaryOperator = components .remove(highestPriorityOperatorPosition); final String operand = components @@ -549,6 +554,9 @@ public final class ExpressionParser<T> { operand + " " + unaryOperator); break; case BINARY_OPERATOR: + if (components.size() < 3) + throw new IllegalArgumentException( + "Invalid expression \"" + expression + "\""); final String binaryOperator = components .remove(highestPriorityOperatorPosition); final String operand1 = components |