From e897791330f0b36d61cd85ab5a1015d6194a35de Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Sat, 24 Aug 2024 04:18:28 +0800 Subject: Added array access. --- lexer/src/main/java/lv/enes/orang/lexer/Lexer.java | 8 ++++++++ lexer/src/main/java/lv/enes/orang/lexer/Token.java | 2 ++ 2 files changed, 10 insertions(+) (limited to 'lexer/src/main/java/lv') 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 { } case '(' -> new Token(Token.Type.PAREN_LEFT, input.next()); case ')' -> new Token(Token.Type.PAREN_RIGHT, input.next()); + case '.' -> { + var first = input.next(); + if (input.peek().cp() == '[') { + yield new Token(Token.Type.PERIOD_BRACKET_LEFT, first, input.next()); + } else { + yield new Token(Token.Type.PERIOD, first); + } + } case '+' -> new Token(Token.Type.PLUS, input.next()); case '?' -> { 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) { MINUS_GREATER, PAREN_LEFT, PAREN_RIGHT, + PERIOD, + PERIOD_BRACKET_LEFT, PLUS, QUESTION_EQUAL, SEMICOLON, -- cgit v1.2.3