aboutsummaryrefslogtreecommitdiffstats
path: root/main/core/tokenizer/Tokenizer.java
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2016-06-15 21:56:03 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2016-07-26 19:46:51 +0300
commitf441022881945db08846e09a8f3bfee2f8cfa95d (patch)
tree3b565c6902e5b5b6c351df89fe1d58b00d79f091 /main/core/tokenizer/Tokenizer.java
parent12eeefcdba1ee392f033f51e6b9826eaae3c4de6 (diff)
Add interpreter and AST
Diffstat (limited to 'main/core/tokenizer/Tokenizer.java')
-rw-r--r--main/core/tokenizer/Tokenizer.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/main/core/tokenizer/Tokenizer.java b/main/core/tokenizer/Tokenizer.java
index 4a12014..c04db22 100644
--- a/main/core/tokenizer/Tokenizer.java
+++ b/main/core/tokenizer/Tokenizer.java
@@ -20,7 +20,8 @@ public class Tokenizer {
private List<Token> tokens = new ArrayList<>();
private static SortedMap<Token.Type, String> tokenRegexes = new TreeMap<>();
- private static final List<Token.Type>illegalTokenTypes = new ArrayList<>();
+ private static final List<Token.Type> discardedTokenTypes = new ArrayList<>();
+ private static final List<Token.Type> erroneousTokenTypes = new ArrayList<>();
private static final Tokenizer instance = new Tokenizer();
@@ -51,7 +52,9 @@ public class Tokenizer {
tokenRegexes.put(Token.Type.IntegerLiteralToken, "^(\\d+)");
tokenRegexes.put(Token.Type.SymbolToken, "^([a-zA-Z]+\\w*)");
- illegalTokenTypes.add(Token.Type.NotAToken);
+ discardedTokenTypes.add(Token.Type.WhitespaceToken);
+
+ erroneousTokenTypes.add(Token.Type.NotAToken);
}
public List<Token> tokenize(String string) {
@@ -71,10 +74,12 @@ public class Tokenizer {
line++;
}
- if (!illegalTokenTypes.contains(token.getTokenType())) {
+ if (!discardedTokenTypes.contains(token.getTokenType())) {
tokens.add(token);
- } else {
- ExceptionManager.raise(InterpreterException.Exception.IllegalTokenException, line, Arrays.asList(token.getText()));
+ }
+
+ if (erroneousTokenTypes.contains(token.getTokenType())) {
+ ExceptionManager.raise(InterpreterException.Exception.IllegalTokenError, line, Arrays.asList(token.getText()));
}
String tokenRawText = token.getRawText();