IfGoto.java 940 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package me.hammerle.snuviscript.instructions;
  2. import me.hammerle.snuviscript.inputprovider.InputProvider;
  3. import me.hammerle.snuviscript.code.Script;
  4. public class IfGoto extends Goto {
  5. private final boolean check;
  6. public IfGoto(int line, boolean check) {
  7. super(line, 0);
  8. this.check = check;
  9. }
  10. @Override
  11. public InputProvider execute(Script sc, InputProvider[] o) throws Exception {
  12. boolean b = sc.peekDataStack().getBoolean(sc);
  13. if(b == check) {
  14. sc.jumpTo(getJump());
  15. }
  16. return null;
  17. }
  18. @Override
  19. public String getName() {
  20. return "if goto";
  21. }
  22. @Override
  23. public String toString() {
  24. StringBuilder sb = new StringBuilder();
  25. sb.append(getName());
  26. sb.append("(");
  27. sb.append(getJump());
  28. sb.append(", ");
  29. sb.append(check);
  30. sb.append(")");
  31. return sb.toString();
  32. }
  33. }