1 package de.lathanda.eos.baseparser;
3 import de.lathanda.eos.vm.Command;
4 import de.lathanda.eos.vm.DebugPoint;
5 import de.lathanda.eos.vm.ReservedVariables;
6 import de.lathanda.eos.vm.commands.CreateVariable;
7 import de.lathanda.eos.vm.commands.GE;
8 import de.lathanda.eos.vm.commands.Jump;
9 import de.lathanda.eos.vm.commands.JumpIf;
10 import de.lathanda.eos.vm.commands.LoadConstant;
11 import de.lathanda.eos.vm.commands.LoadVariable;
12 import de.lathanda.eos.vm.commands.StoreVariable;
13 import de.lathanda.eos.vm.commands.SubtractI;
15 import java.util.ArrayList;
26 private String varName;
40 public void compile(ArrayList<Command> ops,
boolean autoWindow)
throws Exception {
41 ArrayList<Command> body =
new ArrayList<>();
45 timesE.
compile(ops, autoWindow);
48 ops.add(
new Jump(body.size() + 1));
60 ops.add(
new JumpIf(-(8 + body.size())));
78 return "repeat " + timesE +
" times\n" +
sequence +
"endrepeat";
void addError(Marker marker, String errorId, Object... data)
abstract void compile(ArrayList< Command > ops, boolean autoWindow)
abstract String getLabel()
final String createText(String id, Object... args)
abstract void resolveNamesAndTypes(Expression with, Environment env)
RepeatTimes(Expression times, Sequence sequence)
void compile(ArrayList< Command > ops, boolean autoWindow)
void resolveNamesAndTypes(Expression with, Environment env)
void resolveNamesAndTypes(Expression with, Environment env)
void compile(ArrayList< Command > ops, boolean autoWindow)
static SystemType getInteger()
String REPEAT_TIMES_INDEX