Return.java 1012 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package me.hammerle.snuviscript.instructions;
  2. import me.hammerle.snuviscript.inputprovider.InputProvider;
  3. import me.hammerle.snuviscript.code.Script;
  4. import me.hammerle.snuviscript.inputprovider.ReturnWrapper;
  5. public class Return extends Instruction {
  6. private final int arguments;
  7. public Return(int line, int arguments) {
  8. super(line);
  9. this.arguments = arguments;
  10. }
  11. @Override
  12. public InputProvider execute(Script sc, InputProvider[] o) throws Exception {
  13. if(o.length > 0) {
  14. ReturnWrapper wrapper = new ReturnWrapper();
  15. wrapper.setValue(o[0].get(sc));
  16. sc.handleReturn(wrapper);
  17. } else {
  18. sc.handleReturn(null);
  19. }
  20. return null;
  21. }
  22. @Override
  23. public int getArguments() {
  24. return arguments;
  25. }
  26. @Override
  27. public String getName() {
  28. return "return";
  29. }
  30. @Override
  31. public String toString() {
  32. return String.format("return(%d)", arguments);
  33. }
  34. }