1 package de.lathanda.eos.baseparser;
3 import java.util.ArrayList;
4 import java.util.TreeMap;
6 import de.lathanda.eos.baseparser.exceptions.CyclicStorageException;
7 import de.lathanda.eos.baseparser.exceptions.DoubleMethodDeclarationException;
8 import de.lathanda.eos.baseparser.exceptions.DoublePropertyDeclarationException;
9 import de.lathanda.eos.vm.Command;
10 import de.lathanda.eos.vm.ReservedVariables;
11 import de.lathanda.eos.vm.commands.LoadVariable;
19 private final TreeMap<String, Method> meths =
new TreeMap<>();
20 private final TreeMap<String, Property> props =
new TreeMap<>();
21 private final String name;
32 type =
self.getType();
44 for (String name : prop.getNames()) {
45 if (props.containsKey(name)) {
48 props.put(name, prop);
54 if (meths.containsKey(key)) {
74 self.ut.checkCyclicStorage();
84 p.resolveNamesAndTypes(
self, env);
86 for (
Method m : meths.values()) {
88 m.resolveNamesAndTypes(
self, env);
110 public void bind(Environment env) {
112 for (Method m : meths.values()) {
115 for (Property p : props.values()) {
122 public void compile(ArrayList<Command> ops,
boolean autoWindow)
throws Exception {
123 ops.add(
new LoadVariable(ReservedVariables.SELF));
void setVariableType(String name, Type type)
final String createText(String id, Object... args)
static String createVMMethodSignature(MethodType m)
void setSuperClass(String name)
void addMethod(Method meth)
void bind(Environment env)
void resolveNamesAndTypes(Environment env)
void checkCyclicStorage()
void addProperty(Property prop)
AutoCompleteInformation getAutoComplete()
void addProperty(Property prop)
void setSuperclass(String sup)
void addMethod(Method meth)
void bind(Environment env)