1
0
mirror of https://github.com/aNNiMON/HotaruFX.git synced 2024-09-19 14:14:21 +03:00

Add interpreter skeleton

This commit is contained in:
Victor 2017-08-23 16:30:48 +03:00
parent 43a52fb049
commit 0ac7451627
2 changed files with 72 additions and 0 deletions

View File

@ -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<String, Value> variables;
private final Map<String, Value> functions;
public Context() {
variables = new ConcurrentHashMap<>();
functions = new ConcurrentHashMap<>();
}
public Map<String, Value> variables() {
return variables;
}
public Map<String, Value> functions() {
return functions;
}
}

View File

@ -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<Value, Context> {
@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;
}
}