1 package de.lathanda.eos.baseparser;
3 import de.lathanda.eos.vm.Command;
4 import de.lathanda.eos.vm.ReservedVariables;
5 import de.lathanda.eos.vm.commands.CreateVariable;
6 import de.lathanda.eos.vm.commands.DefineVariable;
7 import de.lathanda.eos.vm.commands.LoadVariable;
8 import de.lathanda.eos.vm.commands.StoreVariable;
10 import java.util.ArrayList;
18 private final String name;
21 private final Type returnType;
27 this.parameters = (parameters !=
null) ? parameters :
new Parameters();
28 this.sequence = sequence;
29 this.returnType = (returnType ==
null) ?
Type.
getVoid() : returnType;
42 public void compile(ArrayList<Command> ops,
boolean autoWindow)
throws Exception {
47 if (returnType !=
null && !returnType.
isVoid()) {
51 sequence.
compile(ops, autoWindow);
52 if (returnType !=
null && !returnType.
isVoid()) {
60 if (parameters !=
null) {
63 if (returnType !=
null && !returnType.
isVoid()) {
70 if (methodType ==
null) {
80 if (methodType !=
null) {
84 if (parameters !=
null) {
89 if (returnType !=
null && returnType.
isUnknown()) {
101 StringBuilder autocomplete =
new StringBuilder(name);
102 autocomplete.append(
"(");
103 boolean first =
true;
104 int start = autocomplete.length()+1;
108 autocomplete.append(
", ");
110 start = autocomplete.length();
111 length = p.getName().length();
113 autocomplete.append(p.getName());
115 autocomplete.append(
")");
void setVariableType(String name, Type type)
void addError(Marker marker, String errorId, Object... data)
void compile(ArrayList< Command > ops, boolean autoWindow)
void createMethodType(Environment env)
Method(String name, Parameters parameters, Sequence sequence, Type returnType, UserClass uc)
MethodType getMethodType(Environment env)
MethodType getMethodType()
AutoCompleteInformation getAutoComplete()
void resolveNamesAndTypes(Expression with, Environment env)
void registerParameters(Environment env)
List< Parameter > getParameters()
void resolveNamesAndTypes(Expression with, Environment env)
void compile(ArrayList< Command > ops, boolean autoWindow)
abstract MType getMType()
static SystemType getVoid()
void createMProcedure(ArrayList< Command > ops)