diff options
author | AidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com> | 2021-11-07 01:23:19 +0000 |
---|---|---|
committer | AidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com> | 2021-11-07 01:23:19 +0000 |
commit | f8b888716211b78900db62ede497fa4ac2100c00 (patch) | |
tree | 3ea66c732de6abb95b10e708d0ab33651cb6b327 /src/Compiler/TokenScanner.java | |
parent | d3046e3b1481cf6d190b8fcb814985e29852b5eb (diff) | |
download | esotericFORTRAN-f8b888716211b78900db62ede497fa4ac2100c00.tar.gz esotericFORTRAN-f8b888716211b78900db62ede497fa4ac2100c00.zip |
Basic floating point support and small improvements to error handing
Diffstat (limited to 'src/Compiler/TokenScanner.java')
-rw-r--r-- | src/Compiler/TokenScanner.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Compiler/TokenScanner.java b/src/Compiler/TokenScanner.java index 7783c01..27501fa 100644 --- a/src/Compiler/TokenScanner.java +++ b/src/Compiler/TokenScanner.java @@ -79,17 +79,23 @@ public class TokenScanner { //Check for numer if (checkIsDigit(checkChar)){ + String type = "int"; while (checkIsDigit(lookAhead())){ currentLoc++; } //Check if number contains a decimal point if (lookAhead()=='.' && checkIsDigit(lookTwoAhead())){ + type="double"; currentLoc++; while (checkIsDigit(lookAhead())){ currentLoc++; } } - createToken(TokenType.NUMBER, Double.parseDouble(sourceCode.substring(tokenStart, currentLoc+1))); + if (type.equals("double")){ + createToken(TokenType.NUMBER, Double.parseDouble(sourceCode.substring(tokenStart, currentLoc+1))); + } else{ + createToken(TokenType.NUMBER, Integer.parseInt(sourceCode.substring(tokenStart, currentLoc+1))); + } } else if (checkIsAlpha(checkChar)){ while (checkIsAlpha(lookAhead())){ @@ -173,7 +179,8 @@ public class TokenScanner { static { keywords = new HashMap<>(); - keywords.put("var", TokenType.VAR); + keywords.put("int", TokenType.INT); + keywords.put("real", TokenType.REAL); keywords.put("print", TokenType.PRINT); keywords.put("if", TokenType.IF); keywords.put("then", TokenType.THEN); |