IfGoto.java 972 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. {
  6. private final boolean check;
  7. public IfGoto(int line, boolean check)
  8. {
  9. super(line, 0);
  10. this.check = check;
  11. }
  12. @Override
  13. public InputProvider execute(Script sc, InputProvider[] o) throws Exception
  14. {
  15. boolean b = sc.peekDataStack().getBoolean(sc);
  16. if(b == check)
  17. {
  18. sc.jumpTo(getJump());
  19. }
  20. return null;
  21. }
  22. @Override
  23. public String getName()
  24. {
  25. return "if goto";
  26. }
  27. @Override
  28. public String toString()
  29. {
  30. StringBuilder sb = new StringBuilder();
  31. sb.append(getName());
  32. sb.append("(");
  33. sb.append(getJump());
  34. sb.append(", ");
  35. sb.append(check);
  36. sb.append(")");
  37. return sb.toString();
  38. }
  39. }