tnestproc.pp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. program tnestproc;
  2. {$mode delphi}
  3. uses
  4. {$ifdef java}jdk15{$else}androidr14{$endif};
  5. procedure outer(var para: byte);
  6. const xxx: longint = 5;
  7. var
  8. a: longint;
  9. called: boolean;
  10. procedure inner;
  11. begin
  12. if not called then
  13. begin
  14. called:=true;
  15. inner;
  16. exit;
  17. end;
  18. if a<>1 then
  19. raise JLException.Create('a1');
  20. if para<>2 then
  21. raise JLException.Create('para1');
  22. a:=2;
  23. para:=3;
  24. end;
  25. procedure inner2;
  26. var
  27. b: longint;
  28. procedure doubleinner;
  29. begin
  30. b:=b+1;
  31. end;
  32. begin
  33. b:=2;
  34. doubleinner;
  35. if b<>3 then
  36. raise JLException.Create('b');
  37. end;
  38. begin
  39. a:=1;
  40. called:=false;
  41. inner;
  42. if a<>2 then
  43. raise JLException.Create('a2');
  44. if para<>3 then
  45. raise JLException.Create('para2');
  46. inner2;
  47. end;
  48. var
  49. x: record end;
  50. y: byte;
  51. begin
  52. y:=2;
  53. outer(y);
  54. if y<>3 then
  55. raise JLException.Create('para3');
  56. end.