diff --git a/app/src/main/java/com/annimon/hotarufx/lib/Context.java b/app/src/main/java/com/annimon/hotarufx/lib/Context.java new file mode 100644 index 0000000..d030435 --- /dev/null +++ b/app/src/main/java/com/annimon/hotarufx/lib/Context.java @@ -0,0 +1,23 @@ +package com.annimon.hotarufx.lib; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public final class Context { + + private final Map variables; + private final Map functions; + + public Context() { + variables = new ConcurrentHashMap<>(); + functions = new ConcurrentHashMap<>(); + } + + public Map variables() { + return variables; + } + + public Map functions() { + return functions; + } +} diff --git a/app/src/main/java/com/annimon/hotarufx/parser/visitors/InterpreterVisitor.java b/app/src/main/java/com/annimon/hotarufx/parser/visitors/InterpreterVisitor.java new file mode 100644 index 0000000..ac348fa --- /dev/null +++ b/app/src/main/java/com/annimon/hotarufx/parser/visitors/InterpreterVisitor.java @@ -0,0 +1,49 @@ +package com.annimon.hotarufx.parser.visitors; + +import com.annimon.hotarufx.lib.Context; +import com.annimon.hotarufx.lib.NumberValue; +import com.annimon.hotarufx.lib.Value; +import com.annimon.hotarufx.parser.ast.*; + +public class InterpreterVisitor implements ResultVisitor { + + @Override + public Value visit(AccessNode node, Context context) { + return NumberValue.ZERO; + } + + @Override + public Value visit(AssignNode node, Context context) { + return NumberValue.ZERO; + } + + @Override + public Value visit(BlockNode node, Context context) { + return NumberValue.ZERO; + } + + @Override + public Value visit(FunctionNode node, Context context) { + return NumberValue.ZERO; + } + + @Override + public Value visit(MapNode node, Context context) { + return NumberValue.ZERO; + } + + @Override + public Value visit(UnaryNode node, Context context) { + return NumberValue.ZERO; + } + + @Override + public Value visit(ValueNode node, Context context) { + return NumberValue.ZERO; + } + + @Override + public Value visit(VariableNode node, Context context) { + return NumberValue.ZERO; + } +}