From 688f3f25cd3aef2532d3dca1629f43f791c863fe Mon Sep 17 00:00:00 2001
From: Kraemerd <Dominic_Daniel.Kraemer@Student.Reutlingen-University.de>
Date: Sun, 8 Jan 2023 21:45:42 +0100
Subject: [PATCH] lexer now treats decimals as one token, not split into three
 (number, special, number)

---
 src/Lexer.java  |  3 +++
 src/Parser.java | 33 ++++-----------------------------
 2 files changed, 7 insertions(+), 29 deletions(-)

diff --git a/src/Lexer.java b/src/Lexer.java
index a65c71b..96295ae 100644
--- a/src/Lexer.java
+++ b/src/Lexer.java
@@ -50,6 +50,9 @@ public class Lexer {
                         if(endIndex==input.length()) {
                             break;
                         }
+                        if(Character.compare(input.charAt(endIndex),'.')==0) {
+                            endIndex+=1;
+                        }
                     }
                 }
                 Token token = new Token(TokenType.NUMBER, input.substring(index,endIndex));
diff --git a/src/Parser.java b/src/Parser.java
index fcc6fa3..3ed7129 100644
--- a/src/Parser.java
+++ b/src/Parser.java
@@ -1,6 +1,5 @@
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Optional;
 
 public class Parser {
 
@@ -12,10 +11,12 @@ public class Parser {
         Expression leftExpression;
         String operator;
         Expression rightExpression;
-        public BinaryOperation(Expression leftExpression, String operator, Expression rightExpression) {
+        Boolean capseled;
+        public BinaryOperation(Expression leftExpression, String operator, Expression rightExpression, Boolean capseled) {
             this.leftExpression = leftExpression;
             this.operator = operator;
             this.rightExpression = rightExpression;
+            this.capseled = capseled;
         }
     }
 
@@ -112,15 +113,6 @@ public class Parser {
         if(index==ts.size()) {
             return null;
         }
-        //0
-        //1
-        //2
-        //3
-        //4 * => index=4
-
-        //5
-        //6
-        //7
         List<Lexer.Token> leftList = new LinkedList<>();
         for(int i=0; i<index; i++) {
             leftList.add(ts.remove(0));
@@ -129,24 +121,7 @@ public class Parser {
         String operator = ts.remove(0).getData();
         parseOperator(operator);
         Expression rightExpression = parseExpression(ts);
-
-        /*
-        if(parseCharacter(ts.get(1).getData(), ".")) {
-            return null;
-        }
-        BinaryOperation operation;
-        if(ts.get(1).getType()!= Lexer.TokenType.SPECIAL) {
-            throw new ParserException("SyntaxError: unexpected operator: " + ts.get(1).getData());
-        }
-        List<Lexer.Token> leftList = new LinkedList<>();
-        leftList.add(ts.remove(0));
-        Expression leftExpression = parseExpression(leftList);
-        String operator = ts.remove(0).getData();
-        parseOperator(operator);
-        Expression rightExpression = parseExpression(ts);
-
-         */
-        return new BinaryOperation(leftExpression, operator, rightExpression);
+        return new BinaryOperation(leftExpression, operator, rightExpression, false);
     }
 
     private Variable parseVariable(List<Lexer.Token> ts) throws ParserException {
-- 
GitLab