1 package de.lathanda.eos.baseparser;
3 import de.lathanda.eos.vm.Command;
4 import de.lathanda.eos.vm.DebugPoint;
5 import de.lathanda.eos.vm.ReservedVariables;
6 import de.lathanda.eos.vm.commands.CreateVariable;
7 import de.lathanda.eos.vm.commands.LoadVariable;
8 import java.util.ArrayList;
9 import java.util.LinkedList;
10 import java.util.List;
18 protected final List<String>
names;
22 this.names =
new LinkedList<>();
28 names.add(name.toLowerCase());
41 public void compile(ArrayList<Command> ops,
boolean autoWindow)
throws Exception {
43 for (String name :
names) {
58 names.stream().forEach((name) -> {
60 env.addError(marker,
"DoubleVariableDefinition", name);
62 env.setVariableType(name.toLowerCase(), vartype);
81 StringBuilder res =
new StringBuilder();
83 for (String name :
names) {
87 res.append(
",").append(name);
91 res.append(
":").append(
vartype);
92 return res.toString();
97 StringBuilder text =
new StringBuilder();
99 for (String name :
names) {
104 text.append(
", ").append(name);
107 text.append(
":").append(
vartype);
108 return text.toString();
void compile(ArrayList< Command > ops, boolean autoWindow)
void resolveNamesAndTypes(Expression with, Environment env)
void setType(Type vartype)
final List< String > names
List< String > getNames()
void addName(String name)
boolean isVariableDefined(String name)
void addError(Marker marker, String errorId, Object... data)
static void addGuess(String name, Type type)
static MethodType getAddFigureMethod()
static SystemType getWindow()
static SystemType getFigure()
abstract MType getMType()
static SystemType getVoid()
static SystemType getUnknown()
abstract boolean isAbstract()
void compile(ArrayList< Command > ops, Expression target, boolean autowindow)