EOS 2  1.1.0
Einfache Objektbasierte Sprache
LogicalNot.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.baseparser;
2 
3 import de.lathanda.eos.vm.Command;
4 import de.lathanda.eos.vm.commands.Not;
5 
6 import java.util.ArrayList;
7 
14 public class LogicalNot extends Expression {
15 
16  private final Expression exp;
17 
18  public LogicalNot(Expression exp) {
19  this.exp = exp;
20  type = Type.getBoolean();
21  prio = 6;
22  }
23 
24  @Override
25  public void compile(ArrayList<Command> ops, boolean autoWindow) throws Exception {
26  exp.compile(ops, autoWindow);
27  ops.add(new Not());
28  }
29 
30  @Override
31  public void resolveNamesAndTypes(Expression with, Environment env) {
32  exp.resolveNamesAndTypes(with, env);
33  if (!exp.getType().isBoolean()) {
34  env.addError(marker, "InvalidBoolean", exp.getType());
35  }
36  }
37 
38  @Override
39  public String toString() {
40  return "not" + exp;
41  }
42 
43  @Override
44  public String getLabel() {
45  return createText("Not.Label", getLabelRight(exp));
46  }
47 }
void addError(Marker marker, String errorId, Object... data)
String getLabelRight(Expression e)
Definition: Expression.java:82
void compile(ArrayList< Command > ops, boolean autoWindow)
Definition: LogicalNot.java:25
void resolveNamesAndTypes(Expression with, Environment env)
Definition: LogicalNot.java:31
abstract void compile(ArrayList< Command > ops, boolean autoWindow)
final String createText(String id, Object... args)
Definition: Node.java:34
abstract void resolveNamesAndTypes(Expression with, Environment env)
static SystemType getBoolean()
Definition: Type.java:88
Impressum