test-goto.nut 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. local s5 = "done5";
  2. local function test10(x)
  3. {
  4. print("goto start");
  5. goto start;
  6. local zz = 77; //this should be an error
  7. x = 99;
  8. //goto p2;
  9. change:
  10. x = 5;
  11. try
  12. {
  13. print("change");
  14. }
  15. catch(e)
  16. {
  17. }
  18. //goto dad;
  19. start:
  20. print("start", zz);
  21. if(x > 10)
  22. {
  23. try
  24. {
  25. goto p2;
  26. print("change");
  27. p2:
  28. print("change p2");
  29. }
  30. catch(e)
  31. {
  32. }
  33. while(true)
  34. {
  35. try
  36. {
  37. try
  38. {
  39. print("x > 10");
  40. //return "x > 10";
  41. goto done2;
  42. goto done5;
  43. goto change;
  44. goto start;
  45. goto done4;
  46. goto done3;
  47. goto done;
  48. return true;
  49. }
  50. catch(e)
  51. {
  52. }
  53. goto done4;
  54. }
  55. catch(e)
  56. {
  57. }
  58. break;
  59. }
  60. }
  61. local z = 0;
  62. while(z < 3)
  63. {
  64. ++z;
  65. try
  66. {
  67. print("while");
  68. try
  69. {
  70. print("while2");
  71. continue;
  72. goto done4;
  73. goto done3;
  74. goto done;
  75. }
  76. catch(e)
  77. {
  78. }
  79. }
  80. catch(e)
  81. {
  82. }
  83. }
  84. done:
  85. return false;
  86. done2:
  87. return "done2";
  88. done3:
  89. return "done3";
  90. done4:
  91. return "done4";
  92. done5:
  93. return "done5";
  94. }
  95. print(test10(23));
  96. print("ok");