main3.red 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. % MAIN3.RED - Test CASE and CONS
  2. % Need: SUB2.RED simple print routines
  3. % SUB3.RED simple allocator
  4. IN "XXX-HEADER.RED"$
  5. IN "PT:STUBS3.RED"$
  6. on syslisp;
  7. syslsp Procedure FirstCall;
  8. begin scalar X, Y;
  9. Init();
  10. Print '"MAIN3: Casetest"$
  11. CaseTest();
  12. Print '"MAIN3: test CONS"$
  13. InitHeap();
  14. ConsTest();
  15. quit;
  16. end;
  17. syslsp procedure CaseTest;
  18. <<Prin2t '"Test case from -1 to 11";
  19. Prin2t '"Will classify argument";
  20. Ctest (-1);
  21. Ctest 0;
  22. Ctest 1;
  23. Ctest 2;
  24. Ctest 3;
  25. Ctest 4;
  26. Ctest 5;
  27. Ctest 6;
  28. Ctest 7;
  29. Ctest 8;
  30. Ctest 9;
  31. Ctest 10;
  32. Ctest 11;
  33. Ctest 12>>;
  34. syslsp procedure CTest N;
  35. Case N of
  36. 0: Show(N,"0 case");
  37. 1,2,3: Show(N,"1,2,3 case");
  38. 6 to 10:Show(N,"6 ... 10 case");
  39. default:Show(N,"default case");
  40. end;
  41. syslsp procedure Show(N,S);
  42. <<Prin2String "Show for N=";
  43. Prin1Int N;
  44. Prin2String ", expect ";
  45. Prin2String S;
  46. Terpri()>>;
  47. Procedure CONStest();
  48. Begin scalar Z,N;
  49. Z:='1;
  50. N:='2;
  51. While N<10 do
  52. <<z:=cons(N,z);
  53. Print z;
  54. N:=N+1>>;
  55. End;
  56. FLUID '(UndefnCode!* UndefnNarg!*);
  57. syslsp procedure UndefinedFunctionAux;
  58. % Should preserve all regs
  59. <<Terpri();
  60. Prin2String "**** Undefined Function: ";
  61. Prin1ID LispVar UndefnCode!*;
  62. Prin2String " , called with ";
  63. Prin2 LispVar UndefnNarg!*;
  64. Prin2T " arguments";
  65. Quit;>>;
  66. Off syslisp;
  67. End;