aboutsummaryrefslogtreecommitdiff
path: root/calculator-java/src/main/java/ch/bfh/parser
diff options
context:
space:
mode:
Diffstat (limited to 'calculator-java/src/main/java/ch/bfh/parser')
-rw-r--r--calculator-java/src/main/java/ch/bfh/parser/ExpressionParser.java2
-rw-r--r--calculator-java/src/main/java/ch/bfh/parser/FactorParser.java1
-rw-r--r--calculator-java/src/main/java/ch/bfh/parser/Parser.java2
-rw-r--r--calculator-java/src/main/java/ch/bfh/parser/StatementParser.java2
4 files changed, 5 insertions, 2 deletions
diff --git a/calculator-java/src/main/java/ch/bfh/parser/ExpressionParser.java b/calculator-java/src/main/java/ch/bfh/parser/ExpressionParser.java
index e68983b..91effbd 100644
--- a/calculator-java/src/main/java/ch/bfh/parser/ExpressionParser.java
+++ b/calculator-java/src/main/java/ch/bfh/parser/ExpressionParser.java
@@ -71,6 +71,8 @@ class ExpressionParser extends Parser {
continue loop;
case Token.PAR:
if (lastToken != null && lastToken.type == Token.PAL) { // if equal to '(' it means it was created by a Factor
+ if(parsers.size() == 0)
+ throw new ParserException("Empty parenthesis were found.");
lastToken = token;
break loop;
} else
diff --git a/calculator-java/src/main/java/ch/bfh/parser/FactorParser.java b/calculator-java/src/main/java/ch/bfh/parser/FactorParser.java
index fd54cf4..282a05e 100644
--- a/calculator-java/src/main/java/ch/bfh/parser/FactorParser.java
+++ b/calculator-java/src/main/java/ch/bfh/parser/FactorParser.java
@@ -83,6 +83,7 @@ class FactorParser extends Parser {
@Override
public double getValue() {
+
if (expression != null)
if (isNegative)
return expression.getValue() * (-1);
diff --git a/calculator-java/src/main/java/ch/bfh/parser/Parser.java b/calculator-java/src/main/java/ch/bfh/parser/Parser.java
index 6a03fe1..496dadf 100644
--- a/calculator-java/src/main/java/ch/bfh/parser/Parser.java
+++ b/calculator-java/src/main/java/ch/bfh/parser/Parser.java
@@ -11,7 +11,7 @@ abstract class Parser{
protected CalculatorLexer cl;
protected Token lastToken;
- protected double value;
+ protected Double value = null;
protected abstract void parse();
public abstract double getValue();
diff --git a/calculator-java/src/main/java/ch/bfh/parser/StatementParser.java b/calculator-java/src/main/java/ch/bfh/parser/StatementParser.java
index 7bd0d14..0897df7 100644
--- a/calculator-java/src/main/java/ch/bfh/parser/StatementParser.java
+++ b/calculator-java/src/main/java/ch/bfh/parser/StatementParser.java
@@ -66,7 +66,7 @@ public class StatementParser extends Parser{
@Override
public double getValue() {
if (parsedExpression == null)
- return 0.0;
+ throw new ParserException("Empty statement.");
return parsedExpression.getValue();
}
} \ No newline at end of file