diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2016-06-15 21:56:03 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2016-07-26 19:46:51 +0300 |
| commit | f441022881945db08846e09a8f3bfee2f8cfa95d (patch) | |
| tree | 3b565c6902e5b5b6c351df89fe1d58b00d79f091 /main/core/tokenizer/Tokenizer.java | |
| parent | 12eeefcdba1ee392f033f51e6b9826eaae3c4de6 (diff) | |
Add interpreter and AST
Diffstat (limited to 'main/core/tokenizer/Tokenizer.java')
| -rw-r--r-- | main/core/tokenizer/Tokenizer.java | 15 |
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(); |
