EOS 2  1.1.0
Einfache Objektbasierte Sprache
UserAssignProperty.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.StoreProperty;
14 public class UserAssignProperty implements MethodType {
15  private final UserType userType;
16  private final Property property;
17  private final String name;
18  public UserAssignProperty(UserType userType, String name, Property property) {
19  this.property = property;
20  this.userType = userType;
21  this.name = name;
22  }
23 
24  @Override
25  public boolean checkType(Type[] types) {
26  return types.length == 0;
27  }
28 
29  @Override
30  public Type getReturnType() {
31  return Type.VOID;
32  }
33 
34  @Override
35  public Type getParameterType(int i) {
36  if (i == 0) {
37  return property.vartype;
38  } else {
39  return null;
40  }
41  }
42 
43  @Override
44  public MType[] getParameters() {
45  return new MType[] {};
46  }
47 
48  @Override
49  public String getName() {
50  return name;
51  }
52 
53  @Override
54  public void compile(ArrayList<Command> ops, Expression target, boolean autowindow) throws Exception {
55  target.compile(ops, autowindow);
56  ops.add(new StoreProperty(userType.getMClass(), name));
57  }
58 }
static SystemType VOID
Definition: Type.java:22
void compile(ArrayList< Command > ops, Expression target, boolean autowindow)
UserAssignProperty(UserType userType, String name, Property property)
Impressum