EOS 2  1.1.0
Einfache Objektbasierte Sprache
RepeatForever.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.DebugPoint;
7 import de.lathanda.eos.vm.commands.Jump;
8 
15 public class RepeatForever extends Loop implements LoopForeverUnit {
17  super(sequence, null);
18  }
19 
20  @Override
21  public void compile(ArrayList<Command> ops, boolean autoWindow) throws Exception {
22  ArrayList<Command> body = new ArrayList<>();
23  sequence.compile(body, autoWindow);
24  ops.addAll(body);
25  ops.add(new DebugPoint());
26  ops.add(new Jump(-(1 + body.size())));
27  }
28 
29  @Override
30  public void resolveNamesAndTypes(Expression with, Environment env) {
31  sequence.resolveNamesAndTypes(with, env);
32  }
33 
34  @Override
35  public String toString() {
36  return "repeat forever\n" + sequence + "endrepeat";
37  }
38 
39  @Override
40  public String getLabel() {
41  return createText("RepeatForever.Label");
42  }
43 
44  @Override
45  public boolean isPre() {
46  return true;
47  }
48 }
final Sequence sequence
Definition: Loop.java:10
final String createText(String id, Object... args)
Definition: Node.java:34
void resolveNamesAndTypes(Expression with, Environment env)
void compile(ArrayList< Command > ops, boolean autoWindow)
void resolveNamesAndTypes(Expression with, Environment env)
Definition: Sequence.java:67
void compile(ArrayList< Command > ops, boolean autoWindow)
Definition: Sequence.java:53
Impressum