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. --- ast/src/main/java/lv/enes/orang/ast/ArrayAccessExpression.java | 10 ++++++++++ ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java | 1 + 2 files changed, 11 insertions(+) create mode 100644 ast/src/main/java/lv/enes/orang/ast/ArrayAccessExpression.java (limited to 'ast/src/main/java/lv') diff --git a/ast/src/main/java/lv/enes/orang/ast/ArrayAccessExpression.java b/ast/src/main/java/lv/enes/orang/ast/ArrayAccessExpression.java new file mode 100644 index 0000000..784146c --- /dev/null +++ b/ast/src/main/java/lv/enes/orang/ast/ArrayAccessExpression.java @@ -0,0 +1,10 @@ +package lv.enes.orang.ast; + +import lv.enes.orang.core.OrangException; + +public record ArrayAccessExpression(Expression array, Expression index) implements Expression { + @Override + public R accept(ExpressionVisitor visitor) throws E { + return visitor.visitArrayAccess(this); + } +} diff --git a/ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java b/ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java index 226b340..60ec3c2 100644 --- a/ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java +++ b/ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java @@ -8,6 +8,7 @@ public interface ExpressionVisitor { } R visitArray(ArrayExpression array) throws E; + R visitArrayAccess(ArrayAccessExpression arrayAccess) throws E; R visitBoolean(BooleanLiteral expr) throws E; R visitBinaryExpression(BinaryExpression expr) throws E; R visitCallExpression(CallExpression expr) throws E; -- cgit v1.2.3