diff options
| author | 2024-08-24 04:18:28 +0800 | |
|---|---|---|
| committer | 2024-08-24 04:18:28 +0800 | |
| commit | e897791330f0b36d61cd85ab5a1015d6194a35de (patch) | |
| tree | 8faa8ea7f4c9bcadbccc5af9e6f19ab0b2b1621c /ast/src | |
| parent | Added fancier tuple argument specs. (diff) | |
| download | orang-e897791330f0b36d61cd85ab5a1015d6194a35de.tar.gz orang-e897791330f0b36d61cd85ab5a1015d6194a35de.tar.xz orang-e897791330f0b36d61cd85ab5a1015d6194a35de.zip | |
Added array access.
Diffstat (limited to 'ast/src')
| -rw-r--r-- | ast/src/main/java/lv/enes/orang/ast/ArrayAccessExpression.java | 10 | ||||
| -rw-r--r-- | ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java | 1 |
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 @@ | |||
| 1 | package lv.enes.orang.ast; | ||
| 2 | |||
| 3 | import lv.enes.orang.core.OrangException; | ||
| 4 | |||
| 5 | public 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; |