testpat.rig 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. -- test for debugging PAT.RIG alternative optimizations
  2. --
  3. #M
  4. PRINT
  5. (. #A1 () = (.2 NULL.)
  6. #A1 (Z) = (.2 Z.)
  7. #A1 (A) = (.1 NULL.)
  8. #A1 (A B) = (.1 B .)
  9. .) ;
  10. PRINT (.
  11. #A2 () = (. 2 NULL .)
  12. #A2 (Z) = (. 2 Z .)
  13. #A2 (A) = (. 1 NULL .)
  14. #A2 (A Z) = (. 1 Z .)
  15. #A2 (B) = (. 1 NULL .)
  16. #A2 (B Z) = (. 1 Z.)
  17. .);
  18. PRINT (.
  19. #A3 () = (. 2 NULL .)
  20. #A3 (Z) = (. 2 Z .)
  21. #A3 (A) = (.1 NULL .)
  22. #A3 (A Z) = (. 1 Z.)
  23. #A3 (B) = (. 1 NULL .)
  24. #A3 (B Z) = (. 1 Z .)
  25. #A3 (C) = (. 1 NULL .)
  26. #A3 ( C Z) = (. 1 Z.)
  27. .);
  28. PRINT (.
  29. #A4 ( ) = (.2 NULL NULL.)
  30. #A4 (Z ) = (.1 NULL Z.)
  31. #A4 (A ) = (.1 NULL NULL .)
  32. #A4 (Z X ) = (.1 X Z .)
  33. #A4 (A X ) = (.1 X NULL .)
  34. .);
  35. PRINT (.
  36. #A5 ( ) = (.2 NULL NULL.)
  37. #A5 (Z ) = (.1 NULL Z.)
  38. #A5 (A ) = (.1 NULL NULL .)
  39. #A5 (B ) = (. 1 NULL NULL .)
  40. #A5 (Z X ) = (.1 X Z .)
  41. #A5 (A X ) = (.1 X NULL .)
  42. #A5 (B X ) = (. 1 X NULL .)
  43. .);
  44. PRINT (.
  45. #A6 ( ) = (.2 NULL NULL NULL .)
  46. #A6 (Z ) = (.1 NULL Z NULL .)
  47. #A6 (A ) = (.1 NULL NULL NULL .)
  48. #A6 (B ) = (. 1 NULL NULL NULL .)
  49. #A6 (Z X ) = (.1 X Z NULL .)
  50. #A6 (A X ) = (.1 X NULL NULL .)
  51. #A6 (B X ) = (. 1 X NULL NULL .)
  52. .) ;
  53. PRINT
  54. (. #A7 () = (.2 NULL.)
  55. #A7 (Z) = (.2 Z.)
  56. #A7 (A) = (.1 NULL.)
  57. #A7 (A B) = (.1 B .)
  58. .) ;
  59. PRINT (.
  60. #A8 () = (. 2 NULL .)
  61. #A8 (Z) = (. 2 Z .)
  62. #A8 (A) = (. 1 NULL .)
  63. #A8 (A Z) = (. 1 Z .)
  64. #A8 (B) = (. 1 NULL .)
  65. #A8 (B Z) = (. 1 Z.)
  66. .);
  67. #S2();
  68. ##
  69. #S2
  70. /
  71. PRINT (.
  72. #A9 () = (. 2 NULL .)
  73. #A9 (Z) = (. 2 Z .)
  74. #A9 (A) = (. 1 NULL .)
  75. #A9 (A Z) = (. 1 Z .)
  76. #A9 (B) = (. 1 NULL .)
  77. #A9 (B Z) = (. 1 Z.)
  78. .);
  79. PRINT (.
  80. #A10( ) = (.2 NULL NULL.)
  81. #A10(Z ) = (.1 NULL Z.)
  82. #A10(A ) = (.1 NULL NULL .)
  83. #A10(B ) = (. 1 NULL NULL .)
  84. #A10(Z X ) = (.1 X Z .)
  85. #A10(A X ) = (.1 X NULL .)
  86. #A10(B X ) = (. 1 X NULL .)
  87. .) ;
  88. PRINT (.
  89. #A11( ) = (.1 NULL 2.)
  90. #A11(Z ) = (.1 Z 2.)
  91. #A11(A ) = (.1 NULL NULL.)
  92. #A11(Z X ) = (.1 Z 2 .)
  93. #A11(A X ) = (.1 X NULL.)
  94. .) ;
  95. PRINT (.
  96. #A12( ) = (.2 NULL NULL.)
  97. #A12(Z ) = (.2 Z NULL.)
  98. #A12(A ) = (.1 NULL 2 .)
  99. #A12(B ) = (. 1 NULL 3 .)
  100. #A12(Z X ) = (.2 Z NULL .)
  101. #A12(A X ) = (.1 X 2 .)
  102. #A12(B X ) = (. 1 X 3 .)
  103. .) ;
  104. PRINT (.
  105. #A13( ) = (.2 NULL NULL.)
  106. #A13(Z ) = (.1 NULL 4.)
  107. #A13(A ) = (.1 NULL 2 .)
  108. #A13(B ) = (. 1 NULL 3 .)
  109. #A13(Z X ) = (.1 X 4 .)
  110. #A13(A X ) = (.1 X 2 .)
  111. #A13(B X ) = (. 1 X 3 .)
  112. .) ;
  113. PRINT
  114. (. #A14() = (.2 NULL.)
  115. #A14(Z) = (.2 Z.)
  116. #A14(Z X)= (.2 Z.)
  117. #A14(A ) = (.2 A .)
  118. #A14(A B) = (.2 A .)
  119. #A14(A A1) = (.1 NULL .)
  120. #A14(A A1 Z ) = (.1 Z .)
  121. .) ;
  122. PRINT #A16A( A Z);
  123. PRINT (.
  124. #A16A(A A1) = (.1 NULL.)
  125. #A16A(A A1 Z) = (.1 Z.)
  126. #A16A(A Z ) = (.2 A.) -- bad in compiler = (. 2 Z .)
  127. #A16A(A A2) = (.1 NULL.)
  128. #A16A(A A2 Z ) = (.1 Z .)
  129. #A16A(B Z ) = (.2 B.)
  130. #A16A(B B1 Z ) = (.1 Z.)
  131. #A16A(Z Z1 ) = (.2 Z.)
  132. .);
  133. PRINT #A16E ( A Z);
  134. PRINT (.
  135. #A16E (A A1) = (.1 NULL.)
  136. #A16E(A A1 Z) = (.1 Z.)
  137. #A16E(A Z ) = (.2 A.) -- bad in compiler = (. 2 Z .)
  138. #A16E(A A2) = (.1 NULL.)
  139. #A16E(A A2 Z ) = (.1 Z .)
  140. #A16E(B Z ) = (.2 B.)
  141. #A16E(B B1 Z ) = (.1 Z.)
  142. #A16E(Z Z1 ) = (.2 Z.)
  143. .)
  144. /
  145. ##
  146. #A0 ()
  147. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  148. #A1 (A)
  149. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  150. #A2 (A!B)
  151. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  152. #A3 (A!B!C)
  153. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  154. #A4 (A!$E)
  155. /RETURN (.1 $$ $E.) / ONFAIL RETURN (.2 $$ $E.) ##
  156. #A5 (A!B!$E)
  157. /RETURN (.1 $$ $E.) / ONFAIL RETURN (.2 $$ $E.) ##
  158. #A6 (A!B!$E!$F)
  159. /RETURN (.1 $$ $E $F.) / ONFAIL RETURN (.2 $$ $E $F.) ##
  160. #A7 (A!A)
  161. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  162. #A8 (A!B!A)
  163. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  164. #A9 (A!B!A!B)
  165. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  166. #A10 (A!B!A!$E)
  167. /RETURN (.1 $$ $E.) / ONFAIL RETURN (.2 $$ $E.) ##
  168. #A11 (A!/$M:=2/)
  169. /RETURN (.1 $$ $M.) / ONFAIL RETURN (.2 $$ $M.) ##
  170. #A12 (A /$M:=2/ ! B /$M:=3/)
  171. /RETURN (.1 $$ $M.) / ONFAIL RETURN (.2 $$ $M.) ##
  172. #A13 (A /$M:=2/ ! B /$M:=3/! $Z /$M:=4/)
  173. /RETURN (.1 $$ $M.) / ONFAIL RETURN (.2 $$ $M.) ##
  174. #A14 (A A1)
  175. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  176. #A15 ((A A1 ) ! ( B B1))
  177. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  178. #A16A ((A A1 ) ! (B B1) ! ( S'($$=A) A2))
  179. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  180. #A16E ((A A1 ) ! (B B1) ! ( A A2))
  181. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  182. #A17 (A!(B C))
  183. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  184. #A18 ((A B) C)
  185. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##
  186. #A19
  187. /RETURN (.1 $$.) / ONFAIL RETURN (.2 $$.) ##