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:
parent
43a52fb049
commit
0ac7451627
23
app/src/main/java/com/annimon/hotarufx/lib/Context.java
Normal file
23
app/src/main/java/com/annimon/hotarufx/lib/Context.java
Normal 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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user