From 97b4f889cd2c3a692da98e681016414587ebf204 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Sun, 25 Aug 2024 17:56:34 +0800 Subject: Added maps --- ast/src/main/java/lv/enes/orang/ast/ExpressionVisitor.java | 1 + ast/src/main/java/lv/enes/orang/ast/MapExpression.java | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 ast/src/main/java/lv/enes/orang/ast/MapExpression.java (limited to 'ast/src/main/java') 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 visitIfElseExpression(IfElseExpression expr) throws E; R visitIntLiteral(IntLiteral expr) throws E; R visitLetInExpression(LetInExpression expr) throws E; + R visitMap(MapExpression expr) throws E; R visitStringLiteral(StringLiteral expr) throws E; R visitTupleExpression(TupleExpression expr) throws E; 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 @@ +package lv.enes.orang.ast; + +import lv.enes.orang.core.OrangException; + +import java.util.List; + +public record MapExpression(List entries) implements Expression { + public record MapPair(Expression from, Expression to) {} + @Override + public R accept(ExpressionVisitor visitor) throws E { + return visitor.visitMap(this); + } +} -- cgit v1.2.3