Skip to content
Snippets Groups Projects
Commit f70e7e82 authored by Dominic Daniel Krämer's avatar Dominic Daniel Krämer
Browse files

fixed a bug, parser can now parse numbers that contains zeros

parent 2fd496f2
No related branches found
No related tags found
1 merge request!8Dominicsbranch
x+2/5223+y+44+4+2^12/222
\ No newline at end of file
x+2/40+3*x
\ No newline at end of file
......@@ -101,6 +101,9 @@ public class Parser {
if(ts.size()==1) {
return null;
}
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());
......@@ -151,7 +154,7 @@ public class Parser {
if (ts.size()>1) {
//if the next token is of TokenType.SPECIAL, check if it's a comma
//if it is, create a decimal
if(ts.get(0).getType() == Lexer.TokenType.SPECIAL) {
if(ts.get(1).getType() == Lexer.TokenType.SPECIAL) {
if(parseComma(ts)) {
value = parseDecimal(ts);
}
......@@ -191,8 +194,8 @@ public class Parser {
return new Number(data);
}
parseDigitWithoutZero(data);
parseDigit(data);
parseDigitWithoutZero(data.substring(0,1));
parseDigit(data.substring(1));
return new Number(data);
}
......@@ -219,9 +222,9 @@ public class Parser {
}
private Boolean parseComma(List<Lexer.Token> ts) throws ParserException {
String data = ts.get(0).getData();
String data = ts.get(1).getData();
if(parseCharacter(data, ".")) {
if(ts.get(1).getType()!= Lexer.TokenType.NUMBER) {
if(ts.get(2).getType()!= Lexer.TokenType.NUMBER) {
throw new ParserException("SyntaxError: no number after comma");
}
return true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment