diff options
| author | 2024-08-25 17:56:34 +0800 | |
|---|---|---|
| committer | 2024-08-25 17:56:34 +0800 | |
| commit | 97b4f889cd2c3a692da98e681016414587ebf204 (patch) | |
| tree | be3285c61a1e2ebb6da01506e8c793bb3afab482 /ast | |
| parent | Added array access. (diff) | |
| download | orang-main.tar.gz orang-main.tar.xz orang-main.zip | |
Diffstat (limited to 'ast')
| -rw-r--r-- | ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java | 1 | ||||
| -rw-r--r-- | ast/src/main/java/lv/enes/orang/ast/MapExpression.java | 13 |
2 files changed, 14 insertions, 0 deletions
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 60ec3c2..410512f 100644 --- a/ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java +++ b/ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java | |||
| @@ -17,6 +17,7 @@ public interface ExpressionVisitor<R, E extends OrangException> { | |||
| 17 | R visitIfElseExpression(IfElseExpression expr) throws E; | 17 | R visitIfElseExpression(IfElseExpression expr) throws E; |
| 18 | R visitIntLiteral(IntLiteral expr) throws E; | 18 | R visitIntLiteral(IntLiteral expr) throws E; |
| 19 | R visitLetInExpression(LetInExpression expr) throws E; | 19 | R visitLetInExpression(LetInExpression expr) throws E; |
| 20 | R visitMap(MapExpression expr) throws E; | ||
| 20 | R visitStringLiteral(StringLiteral expr) throws E; | 21 | R visitStringLiteral(StringLiteral expr) throws E; |
| 21 | R visitTupleExpression(TupleExpression expr) throws E; | 22 | R visitTupleExpression(TupleExpression expr) throws E; |
| 22 | R visitUnaryExpression(UnaryExpression expr) throws E; | 23 | R visitUnaryExpression(UnaryExpression expr) throws E; |
diff --git a/ast/src/main/java/lv/enes/orang/ast/MapExpression.java b/ast/src/main/java/lv/enes/orang/ast/MapExpression.java new file mode 100644 index 0000000..c758788 --- /dev/null +++ b/ast/src/main/java/lv/enes/orang/ast/MapExpression.java | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | package lv.enes.orang.ast; | ||
| 2 | |||
| 3 | import lv.enes.orang.core.OrangException; | ||
| 4 | |||
| 5 | import java.util.List; | ||
| 6 | |||
| 7 | public record MapExpression(List<MapPair> entries) implements Expression { | ||
| 8 | public record MapPair(Expression from, Expression to) {} | ||
| 9 | @Override | ||
| 10 | public <R, E extends OrangException> R accept(ExpressionVisitor<R, E> visitor) throws E { | ||
| 11 | return visitor.visitMap(this); | ||
| 12 | } | ||
| 13 | } | ||