diff --git a/src/Lexer.java b/src/Lexer.java index a65c71b0985fbd51f4fc9a793228e2bd2baf31a9..96295ae833384646647653b27d9764d05d412a87 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 fcc6fa333dc8dce123c0c474f149f5d35d9e0ee2..3ed712932826d1928422376f4b977d8879db25a1 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 {