summaryrefslogtreecommitdiff
path: root/ast/src/main
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2024-08-24 04:18:28 +0800
committerGravatar Uko Kokņevičs2024-08-24 04:18:28 +0800
commite897791330f0b36d61cd85ab5a1015d6194a35de (patch)
tree8faa8ea7f4c9bcadbccc5af9e6f19ab0b2b1621c /ast/src/main
parentAdded fancier tuple argument specs. (diff)
downloadorang-e897791330f0b36d61cd85ab5a1015d6194a35de.tar.gz
orang-e897791330f0b36d61cd85ab5a1015d6194a35de.tar.xz
orang-e897791330f0b36d61cd85ab5a1015d6194a35de.zip
Added array access.
Diffstat (limited to 'ast/src/main')
-rw-r--r--ast/src/main/java/lv/enes/orang/ast/ArrayAccessExpression.java10
-rw-r--r--ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java1
2 files changed, 11 insertions, 0 deletions
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 @@
1package lv.enes.orang.ast;
2
3import lv.enes.orang.core.OrangException;
4
5public record ArrayAccessExpression(Expression array, Expression index) implements Expression {
6 @Override
7 public <R, E extends OrangException> R accept(ExpressionVisitor<R, E> visitor) throws E {
8 return visitor.visitArrayAccess(this);
9 }
10}
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, E extends OrangException> {
8 } 8 }
9 9
10 R visitArray(ArrayExpression array) throws E; 10 R visitArray(ArrayExpression array) throws E;
11 R visitArrayAccess(ArrayAccessExpression arrayAccess) throws E;
11 R visitBoolean(BooleanLiteral expr) throws E; 12 R visitBoolean(BooleanLiteral expr) throws E;
12 R visitBinaryExpression(BinaryExpression expr) throws E; 13 R visitBinaryExpression(BinaryExpression expr) throws E;
13 R visitCallExpression(CallExpression expr) throws E; 14 R visitCallExpression(CallExpression expr) throws E;