From 0a7958a014eb746390c1e602b0e67c1a43f94a33 Mon Sep 17 00:00:00 2001
From: Maƫl Gassmann <mael.gassmann@students.bfh.ch>
Date: Sat, 12 Jun 2021 18:49:07 +0200
Subject: [~] Added empty expression error messages

---
 calculator-java/src/main/java/ch/bfh/parser/ExpressionParser.java | 2 ++
 calculator-java/src/main/java/ch/bfh/parser/FactorParser.java     | 1 +
 calculator-java/src/main/java/ch/bfh/parser/Parser.java           | 2 +-
 calculator-java/src/main/java/ch/bfh/parser/StatementParser.java  | 2 +-
 4 files changed, 5 insertions(+), 2 deletions(-)

(limited to 'calculator-java/src/main/java/ch/bfh')

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
-- 
cgit v1.2.3