EOS 2  1.1.0
Einfache Objektbasierte Sprache
UserReadProperty.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.baseparser;
2 
3 import java.util.ArrayList;
4 
5 import de.lathanda.eos.vm.Command;
6 import de.lathanda.eos.vm.MType;
7 import de.lathanda.eos.vm.commands.LoadProperty;
14 public class UserReadProperty implements MethodType {
15  private final UserType userType;
16  private final Property property;
17  private final String name;
18 
19  public UserReadProperty(UserType userType, String name, Property property) {
20  this.property = property;
21  this.userType = userType;
22  this.name = name;
23  }
24 
25  @Override
26  public boolean checkType(Type[] types) {
27  return types.length == 0;
28  }
29 
30  @Override
31  public Type getReturnType() {
32  return property.vartype;
33  }
34 
35  @Override
36  public Type getParameterType(int i) {
37  return Type.UNKNOWN;
38  }
39 
40  @Override
41  public MType[] getParameters() {
42  return new MType[] {};
43  }
44 
45  @Override
46  public String getName() {
47  return name;
48  }
49 
50  @Override
51  public void compile(ArrayList<Command> ops, Expression target, boolean autowindow) throws Exception {
52  target.compile(ops, autowindow);
53  ops.add(new LoadProperty(userType.getMClass(), name));
54  }
55 
56 }
static SystemType UNKNOWN
Definition: Type.java:23
void compile(ArrayList< Command > ops, Expression target, boolean autowindow)
UserReadProperty(UserType userType, String name, Property property)
Impressum