DISCJUMP.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. namespace OpenVIII.Fields.Scripts.Instructions
  3. {
  4. internal sealed class DISCJUMP : JsmInstruction
  5. {
  6. private Int32 _parameter;
  7. private IJsmExpression _arg0;
  8. private IJsmExpression _arg1;
  9. private IJsmExpression _arg2;
  10. private IJsmExpression _arg3;
  11. private IJsmExpression _arg4;
  12. public DISCJUMP(Int32 parameter, IJsmExpression arg0, IJsmExpression arg1, IJsmExpression arg2, IJsmExpression arg3, IJsmExpression arg4)
  13. {
  14. _parameter = parameter;
  15. _arg0 = arg0;
  16. _arg1 = arg1;
  17. _arg2 = arg2;
  18. _arg3 = arg3;
  19. _arg4 = arg4;
  20. }
  21. public DISCJUMP(Int32 parameter, IStack<IJsmExpression> stack)
  22. : this(parameter,
  23. arg4: stack.Pop(),
  24. arg3: stack.Pop(),
  25. arg2: stack.Pop(),
  26. arg1: stack.Pop(),
  27. arg0: stack.Pop())
  28. {
  29. }
  30. public override String ToString()
  31. {
  32. return $"{nameof(DISCJUMP)}({nameof(_parameter)}: {_parameter}, {nameof(_arg0)}: {_arg0}, {nameof(_arg1)}: {_arg1}, {nameof(_arg2)}: {_arg2}, {nameof(_arg3)}: {_arg3}, {nameof(_arg4)}: {_arg4})";
  33. }
  34. }
  35. }