diff options
Diffstat (limited to 'lexer/src/main/java')
| -rw-r--r-- | lexer/src/main/java/lv/enes/orang/lexer/Lexer.java | 8 | ||||
| -rw-r--r-- | lexer/src/main/java/lv/enes/orang/lexer/Token.java | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/lexer/src/main/java/lv/enes/orang/lexer/Lexer.java b/lexer/src/main/java/lv/enes/orang/lexer/Lexer.java index ac336f4..5cea0a3 100644 --- a/lexer/src/main/java/lv/enes/orang/lexer/Lexer.java +++ b/lexer/src/main/java/lv/enes/orang/lexer/Lexer.java | |||
| @@ -95,6 +95,14 @@ public class Lexer implements Iterator<Token> { | |||
| 95 | } | 95 | } |
| 96 | case '(' -> new Token(Token.Type.PAREN_LEFT, input.next()); | 96 | case '(' -> new Token(Token.Type.PAREN_LEFT, input.next()); |
| 97 | case ')' -> new Token(Token.Type.PAREN_RIGHT, input.next()); | 97 | case ')' -> new Token(Token.Type.PAREN_RIGHT, input.next()); |
| 98 | case '.' -> { | ||
| 99 | var first = input.next(); | ||
| 100 | if (input.peek().cp() == '[') { | ||
| 101 | yield new Token(Token.Type.PERIOD_BRACKET_LEFT, first, input.next()); | ||
| 102 | } else { | ||
| 103 | yield new Token(Token.Type.PERIOD, first); | ||
| 104 | } | ||
| 105 | } | ||
| 98 | case '+' -> new Token(Token.Type.PLUS, input.next()); | 106 | case '+' -> new Token(Token.Type.PLUS, input.next()); |
| 99 | case '?' -> { | 107 | case '?' -> { |
| 100 | var first = input.next(); | 108 | var first = input.next(); |
diff --git a/lexer/src/main/java/lv/enes/orang/lexer/Token.java b/lexer/src/main/java/lv/enes/orang/lexer/Token.java index 13236dd..65e0f1d 100644 --- a/lexer/src/main/java/lv/enes/orang/lexer/Token.java +++ b/lexer/src/main/java/lv/enes/orang/lexer/Token.java | |||
| @@ -54,6 +54,8 @@ public record Token(Type type, String literal) { | |||
| 54 | MINUS_GREATER, | 54 | MINUS_GREATER, |
| 55 | PAREN_LEFT, | 55 | PAREN_LEFT, |
| 56 | PAREN_RIGHT, | 56 | PAREN_RIGHT, |
| 57 | PERIOD, | ||
| 58 | PERIOD_BRACKET_LEFT, | ||
| 57 | PLUS, | 59 | PLUS, |
| 58 | QUESTION_EQUAL, | 60 | QUESTION_EQUAL, |
| 59 | SEMICOLON, | 61 | SEMICOLON, |