home *** CD-ROM | disk | FTP | other *** search
/ Mega Top 1 / os2_top1.zip / os2_top1 / APPS / TEKST / FUNNEL_S / ANSWERS / PR08.LIS < prev    next >
File List  |  1992-05-27  |  48KB  |  1,267 lines

  1. FUNNELWEB LISTING FILE
  2. ======================
  3.  
  4. Dump of mapped file "<<Suppressed>>".
  5.  
  6. MEMORY DUMP OF MAPPED FILE
  7. ==========================
  8.  
  9. +-------------------------------------------------+------------------+
  10. | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | 0123456789ABCDEF |
  11. +-------------------------------------------------+------------------+
  12. | 50 52 30 38 3A 20 54 65 73 74 20 73 65 6D 61 6E | PR08: Test seman |
  13. | 74 69 63 20 63 68 65 63 6B 69 6E 67 20 6F 66 20 | tic checking of  |
  14. | 6D 61 63 72 6F 20 64 65 66 69 6E 69 74 69 6F 6E | macro definition |
  15. | 73 2E 0A 0A 54 72 69 70 20 70 61 72 73 65 72 20 | s...Trip parser  |
  16. | 74 6F 20 62 65 20 73 75 72 65 20 74 68 61 74 20 | to be sure that  |
  17. | 77 65 20 77 6F 6E 27 74 20 67 65 74 20 61 6E 79 | we won't get any |
  18. | 20 6F 75 74 70 75 74 20 66 69 6C 65 73 21 0A 40 |  output files!.@ |
  19. | 3E 0A 0A 31 2E 20 46 69 6C 65 20 6D 61 63 72 6F | >..1. File macro |
  20. | 20 68 61 73 20 70 61 72 61 6D 65 74 65 72 73 2E |  has parameters. |
  21. | 20 45 72 72 6F 72 2E 0A 40 4F 40 3C 53 6C 6F 74 |  Error..@O@<Slot |
  22. | 68 20 31 40 3E 40 28 40 33 40 29 40 7B 57 61 6C | h 1@>@(@3@)@{Wal |
  23. | 72 75 73 40 7D 0A 40 41 40 3C 45 72 72 6F 72 20 | rus@}.@A@<Error  |
  24. | 72 65 63 6F 76 65 72 79 20 70 6F 69 6E 74 40 3E | recovery point@> |
  25. | 0A 0A 32 2E 20 46 69 6C 65 20 6D 61 63 72 6F 20 | ..2. File macro  |
  26. | 69 73 20 61 64 64 69 74 69 76 65 2E 20 45 72 72 | is additive. Err |
  27. | 6F 72 2E 0A 40 4F 40 3C 53 6C 6F 74 68 20 32 40 | or..@O@<Sloth 2@ |
  28. | 3E 2B 3D 40 7B 57 61 6C 72 75 73 40 7D 0A 40 41 | >+=@{Walrus@}.@A |
  29. | 40 3C 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 | @<Error recovery |
  30. | 20 70 6F 69 6E 74 40 3E 0A 0A 33 2E 20 46 69 6C |  point@>..3. Fil |
  31. | 65 20 6D 61 63 72 6F 20 68 61 73 20 74 6F 6F 20 | e macro has too  |
  32. | 6C 6F 6E 67 20 61 20 6E 61 6D 65 2E 20 54 68 65 | long a name. The |
  33. | 20 74 65 73 74 20 6E 61 6D 65 20 68 61 73 20 31 |  test name has 1 |
  34. | 32 30 30 20 63 68 61 72 61 63 74 65 72 73 2E 20 | 200 characters.  |
  35. | 45 72 72 2E 0A 4E 6F 74 65 3A 20 54 68 69 73 20 | Err..Note: This  |
  36. | 74 65 73 74 20 63 61 6E 27 74 20 74 65 73 74 20 | test can't test  |
  37. | 74 68 65 20 65 72 72 6F 72 20 6D 65 73 73 61 67 | the error messag |
  38. | 65 20 69 66 20 74 68 65 20 6D 61 78 69 6D 75 6D | e if the maximum |
  39. | 20 6C 65 6E 67 74 68 20 6F 66 20 61 0A 6D 61 63 |  length of a.mac |
  40. | 72 6F 20 6E 61 6D 65 20 69 73 20 6C 65 73 73 20 | ro name is less  |
  41. | 74 68 61 6E 20 74 68 65 20 6D 61 78 69 6D 75 6D | than the maximum |
  42. | 20 6C 65 6E 67 74 68 20 6F 66 20 61 20 66 69 6C |  length of a fil |
  43. | 65 20 6E 61 6D 65 20 61 73 20 74 68 65 20 6E 61 | e name as the na |
  44. | 6D 65 0A 65 72 72 6F 72 20 69 73 20 63 61 75 67 | me.error is caug |
  45. | 68 74 20 66 69 72 73 74 2E 0A 40 70 20 6D 61 78 | ht first..@p max |
  46. | 69 6D 75 6D 5F 69 6E 70 75 74 5F 6C 69 6E 65 5F | imum_input_line_ |
  47. | 6C 65 6E 67 74 68 20 3D 20 69 6E 66 69 6E 69 74 | length = infinit |
  48. | 79 0A 40 4F 40 3C 31 32 33 34 35 36 37 38 39 30 | y.@O@<1234567890 |
  49. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  50. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  51. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  52. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  53. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  54. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  55. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  56. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  57. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  58. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  59. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  60. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  61. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  62. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  63. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  64. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  65. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  66. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  67. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  68. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  69. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  70. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  71. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  72. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  73. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  74. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  75. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  76. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  77. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  78. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  79. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  80. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  81. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  82. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  83. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  84. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  85. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  86. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  87. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  88. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  89. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  90. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  91. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  92. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  93. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  94. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  95. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  96. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  97. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  98. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  99. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  100. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  101. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  102. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  103. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  104. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  105. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  106. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  107. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  108. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  109. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  110. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  111. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  112. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  113. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  114. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  115. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  116. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  117. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  118. | 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
  119. | 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
  120. | 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
  121. | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
  122. | 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
  123. | 35 36 37 38 39 30 40 3E 40 7B 40 7D 0A 40 41 40 | 567890@>@{@}.@A@ |
  124. | 3C 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 | <Error recovery  |
  125. | 70 6F 69 6E 74 40 3E 0A 0A 34 2E 20 46 69 6C 65 | point@>..4. File |
  126. | 20 6D 61 63 72 6F 20 68 61 73 20 7A 65 72 6F 20 |  macro has zero  |
  127. | 6F 72 20 6D 61 6E 79 20 61 74 74 72 69 62 75 74 | or many attribut |
  128. | 65 73 2E 20 45 72 72 6F 72 2E 0A 40 4F 40 3C 53 | es. Error..@O@<S |
  129. | 6C 6F 74 68 20 33 40 3E 40 5A 40 7B 57 61 6C 72 | loth 3@>@Z@{Walr |
  130. | 75 73 40 7D 0A 40 41 40 3C 45 72 72 6F 72 20 72 | us@}.@A@<Error r |
  131. | 65 63 6F 76 65 72 79 20 70 6F 69 6E 74 40 3E 0A | ecovery point@>. |
  132. | 0A 40 4F 40 3C 53 6C 6F 74 68 20 34 40 3E 40 4D | .@O@<Sloth 4@>@M |
  133. | 40 7B 57 61 6C 72 75 73 40 7D 0A 40 41 40 3C 45 | @{Walrus@}.@A@<E |
  134. | 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 70 6F | rror recovery po |
  135. | 69 6E 74 40 3E 0A 0A 40 4F 40 3C 53 6C 6F 74 68 | int@>..@O@<Sloth |
  136. | 20 35 40 3E 40 5A 40 4D 40 7B 57 61 6C 72 75 73 |  5@>@Z@M@{Walrus |
  137. | 40 7D 0A 40 41 40 3C 45 72 72 6F 72 20 72 65 63 | @}.@A@<Error rec |
  138. | 6F 76 65 72 79 20 70 6F 69 6E 74 40 3E 0A 0A 35 | overy point@>..5 |
  139. | 2E 20 50 72 65 76 69 6F 75 73 20 64 65 66 69 6E | . Previous defin |
  140. | 69 74 69 6F 6E 20 69 73 20 66 75 6C 6C 2C 20 63 | ition is full, c |
  141. | 75 72 72 65 6E 74 20 69 73 20 61 64 64 69 74 69 | urrent is additi |
  142. | 76 65 2E 0A 40 24 40 3C 57 61 6C 72 75 73 20 31 | ve..@$@<Walrus 1 |
  143. | 40 3E 3D 3D 40 7B 53 6C 6F 74 68 40 7D 0A 40 24 | @>==@{Sloth@}.@$ |
  144. | 40 3C 57 61 6C 72 75 73 20 31 40 3E 2B 3D 40 7B | @<Walrus 1@>+=@{ |
  145. | 41 61 72 64 76 61 72 6B 40 7D 0A 40 41 40 3C 45 | Aardvark@}.@A@<E |
  146. | 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 70 6F | rror recovery po |
  147. | 69 6E 74 40 3E 0A 0A 36 2E 20 50 72 65 76 69 6F | int@>..6. Previo |
  148. | 75 73 20 64 65 66 69 6E 69 74 69 6F 6E 20 69 73 | us definition is |
  149. | 20 61 64 64 69 74 69 76 65 2C 20 63 75 72 72 65 |  additive, curre |
  150. | 6E 74 20 69 73 20 66 75 6C 6C 2E 0A 40 24 40 3C | nt is full..@$@< |
  151. | 57 61 6C 72 75 73 20 32 40 3E 2B 3D 40 7B 53 6C | Walrus 2@>+=@{Sl |
  152. | 6F 74 68 40 7D 0A 40 24 40 3C 57 61 6C 72 75 73 | oth@}.@$@<Walrus |
  153. | 20 32 40 3E 3D 3D 40 7B 41 61 72 64 76 61 72 6B |  2@>==@{Aardvark |
  154. | 40 7D 0A 40 41 40 3C 45 72 72 6F 72 20 72 65 63 | @}.@A@<Error rec |
  155. | 6F 76 65 72 79 20 70 6F 69 6E 74 40 3E 0A 0A 37 | overy point@>..7 |
  156. | 2E 20 4E 6F 6E 2D 66 69 72 73 74 20 62 6F 64 79 | . Non-first body |
  157. | 20 70 61 72 74 20 6F 66 20 70 61 72 74 69 61 6C |  part of partial |
  158. | 20 68 61 73 20 70 61 72 61 6D 65 74 65 72 2E 0A |  has parameter.. |
  159. | 40 24 40 3C 55 6E 69 63 6F 72 6E 40 3E 40 28 40 | @$@<Unicorn@>@(@ |
  160. | 33 40 29 2B 3D 40 7B 54 75 72 6B 65 79 40 7D 0A | 3@)+=@{Turkey@}. |
  161. | 40 24 40 3C 55 6E 69 63 6F 72 6E 40 3E 40 28 40 | @$@<Unicorn@>@(@ |
  162. | 33 40 29 2B 3D 40 7B 54 75 72 6B 65 79 40 7D 0A | 3@)+=@{Turkey@}. |
  163. | 40 41 40 3C 45 72 72 6F 72 20 72 65 63 6F 76 65 | @A@<Error recove |
  164. | 72 79 20 70 6F 69 6E 74 40 3E 0A 0A 38 2E 20 5A | ry point@>..8. Z |
  165. | 65 72 6F 20 6F 72 20 6D 61 6E 79 20 61 74 74 72 | ero or many attr |
  166. | 69 62 75 74 65 73 20 6F 6E 20 6E 6F 6E 2D 66 69 | ibutes on non-fi |
  167. | 72 73 74 20 62 6F 64 79 20 70 61 72 74 20 6F 66 | rst body part of |
  168. | 20 61 64 64 69 74 69 76 65 2E 0A 40 24 40 3C 45 |  additive..@$@<E |
  169. | 6C 65 70 68 61 6E 74 40 3E 40 5A 40 4D 2B 3D 40 | lephant@>@Z@M+=@ |
  170. | 7B 54 75 72 6B 65 79 40 7D 0A 40 24 40 3C 45 6C | {Turkey@}.@$@<El |
  171. | 65 70 68 61 6E 74 40 3E 40 5A 40 4D 2B 3D 40 7B | ephant@>@Z@M+=@{ |
  172. | 54 75 72 6B 65 79 40 7D 0A 40 41 40 3C 45 72 72 | Turkey@}.@A@<Err |
  173. | 6F 72 20 72 65 63 6F 76 65 72 79 20 70 6F 69 6E | or recovery poin |
  174. | 74 40 3E 0A 0A 39 2E 20 43 68 65 63 6B 20 74 68 | t@>..9. Check th |
  175. | 61 74 20 6E 6F 6E 2D 65 78 69 73 74 65 6E 74 20 | at non-existent  |
  176. | 66 6F 72 6D 61 6C 20 70 61 72 61 6D 65 74 65 72 | formal parameter |
  177. | 73 20 61 72 65 20 63 61 75 67 68 74 2E 0A 0A 40 | s are caught...@ |
  178. | 24 40 3C 5A 65 72 6F 40 3E 40 5A 40 7B 53 6C 6F | $@<Zero@>@Z@{Slo |
  179. | 74 68 40 31 57 61 6C 72 75 73 40 7D 0A 40 41 40 | th@1Walrus@}.@A@ |
  180. | 3C 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 | <Error recovery  |
  181. | 70 6F 69 6E 74 40 3E 0A 0A 40 24 40 3C 4F 6E 65 | point@>..@$@<One |
  182. | 40 3E 40 28 40 31 40 29 40 5A 40 7B 53 6C 6F 74 | @>@(@1@)@Z@{Slot |
  183. | 68 40 32 57 61 6C 72 75 73 40 7D 0A 40 41 40 3C | h@2Walrus@}.@A@< |
  184. | 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 70 | Error recovery p |
  185. | 6F 69 6E 74 40 3E 0A 0A 40 24 40 3C 4D 61 6E 79 | oint@>..@$@<Many |
  186. | 40 3E 40 28 40 37 40 29 40 5A 40 7B 53 6C 6F 74 | @>@(@7@)@Z@{Slot |
  187. | 68 40 38 57 61 6C 72 75 73 40 7D 0A 40 41 40 3C | h@8Walrus@}.@A@< |
  188. | 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 70 | Error recovery p |
  189. | 6F 69 6E 74 40 3E 0A                            | oint@>.          |
  190. +-------------------------------------------------+------------------+
  191.  
  192.  
  193. =========================== Start of LINE LIST DUMP ============================
  194.  
  195. Globl Local| Text
  196. -----------+--------------------------------------------------------------------
  197. 00001 00001| PR08: Test semantic checking of macro definitions.<010>
  198. 00002 00002| <010>
  199. 00003 00003| Trip parser to be sure that we won't get any output files!<010>
  200. 00004 00004| @><010>
  201. 00005 00005| <010>
  202. 00006 00006| 1. File macro has parameters. Error.<010>
  203. 00007 00007| @O@<Sloth 1@>@(@3@)@{Walrus@}<010>
  204. 00008 00008| @A@<Error recovery point@><010>
  205. 00009 00009| <010>
  206. 00010 00010| 2. File macro is additive. Error.<010>
  207. 00011 00011| @O@<Sloth 2@>+=@{Walrus@}<010>
  208. 00012 00012| @A@<Error recovery point@><010>
  209. 00013 00013| <010>
  210. 00014 00014| 3. File macro has too long a name. The test name has 1200 characters. Err.<010>
  211. 00015 00015| Note: This test can't test the error message if the maximum length of a<010>
  212. 00016 00016| macro name is less than the maximum length of a file name as the name<010>
  213. 00017 00017| error is caught first.<010>
  214. 00018 00018| @p maximum_input_line_length = infinity<010>
  215. 00019 00019| @O@<123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890@>@{@}<010>
  216. 00020 00020| @A@<Error recovery point@><010>
  217. 00021 00021| <010>
  218. 00022 00022| 4. File macro has zero or many attributes. Error.<010>
  219. 00023 00023| @O@<Sloth 3@>@Z@{Walrus@}<010>
  220. 00024 00024| @A@<Error recovery point@><010>
  221. 00025 00025| <010>
  222. 00026 00026| @O@<Sloth 4@>@M@{Walrus@}<010>
  223. 00027 00027| @A@<Error recovery point@><010>
  224. 00028 00028| <010>
  225. 00029 00029| @O@<Sloth 5@>@Z@M@{Walrus@}<010>
  226. 00030 00030| @A@<Error recovery point@><010>
  227. 00031 00031| <010>
  228. 00032 00032| 5. Previous definition is full, current is additive.<010>
  229. 00033 00033| @$@<Walrus 1@>==@{Sloth@}<010>
  230. 00034 00034| @$@<Walrus 1@>+=@{Aardvark@}<010>
  231. 00035 00035| @A@<Error recovery point@><010>
  232. 00036 00036| <010>
  233. 00037 00037| 6. Previous definition is additive, current is full.<010>
  234. 00038 00038| @$@<Walrus 2@>+=@{Sloth@}<010>
  235. 00039 00039| @$@<Walrus 2@>==@{Aardvark@}<010>
  236. 00040 00040| @A@<Error recovery point@><010>
  237. 00041 00041| <010>
  238. 00042 00042| 7. Non-first body part of partial has parameter.<010>
  239. 00043 00043| @$@<Unicorn@>@(@3@)+=@{Turkey@}<010>
  240. 00044 00044| @$@<Unicorn@>@(@3@)+=@{Turkey@}<010>
  241. 00045 00045| @A@<Error recovery point@><010>
  242. 00046 00046| <010>
  243. 00047 00047| 8. Zero or many attributes on non-first body part of additive.<010>
  244. 00048 00048| @$@<Elephant@>@Z@M+=@{Turkey@}<010>
  245. 00049 00049| @$@<Elephant@>@Z@M+=@{Turkey@}<010>
  246. 00050 00050| @A@<Error recovery point@><010>
  247. 00051 00051| <010>
  248. 00052 00052| 9. Check that non-existent formal parameters are caught.<010>
  249. 00053 00053| <010>
  250. 00054 00054| @$@<Zero@>@Z@{Sloth@1Walrus@}<010>
  251. 00055 00055| @A@<Error recovery point@><010>
  252. 00056 00056| <010>
  253. 00057 00057| @$@<One@>@(@1@)@Z@{Sloth@2Walrus@}<010>
  254. 00058 00058| @A@<Error recovery point@><010>
  255. 00059 00059| <010>
  256. 00060 00060| @$@<Many@>@(@7@)@Z@{Sloth@8Walrus@}<010>
  257. 00061 00061| @A@<Error recovery point@><010>
  258. 00062 00062| <End-Of-File><010>
  259. -----------+--------------------------------------------------------------------
  260. Globl Local| Text
  261.  
  262. ============================ End of LINE LIST DUMP =============================
  263.  
  264.  
  265. =========================== Start of TOKEN LIST DUMP ===========================
  266.  
  267. Summary: There are 245 tokens in the token list.
  268.  
  269. Line[Column]: Token Description
  270. -------------------------------
  271.  
  272. 0001[01]: Text. Text scrap[Grey]="PR08: Test semantic checking of macro definitions.<010>
  273. <010>
  274. Trip parser to be sure that we won't get any output files!<010>
  275. "
  276. 0004[01]: @> Close name. 
  277. 0004[03]: Text. Text scrap[Grey]="<010>
  278. <010>
  279. 1. File macro has parameters. Error.<010>
  280. "
  281. 0007[01]: @F File defn. 
  282. 0007[03]: @< Open name. 
  283. 0007[05]: Text. Text scrap[Grey]="Sloth 1"
  284. 0007[12]: @> Close name. 
  285. 0007[14]: @( Open param. 
  286. 0007[16]: @n Parameter. Parameterno=3.
  287. 0007[18]: @} Close param. 
  288. 0007[20]: @{ Open defn. 
  289. 0007[22]: Text. Text scrap[Grey]="Walrus"
  290. 0007[28]: @} Close defn. 
  291. 0007[30]: Text. Text scrap[White]="<010>
  292. "
  293. 0008[01]: @A New section (Level 1). 
  294. 0008[03]: @< Open name. 
  295. 0008[05]: Text. Text scrap[Grey]="Error recovery point"
  296. 0008[25]: @> Close name. 
  297. 0008[27]: Text. Text scrap[Grey]="<010>
  298. <010>
  299. 2. File macro is additive. Error.<010>
  300. "
  301. 0011[01]: @F File defn. 
  302. 0011[03]: @< Open name. 
  303. 0011[05]: Text. Text scrap[Grey]="Sloth 2"
  304. 0011[12]: @> Close name. 
  305. 0011[14]: Text. Text scrap[Grey]="+="
  306. 0011[16]: @{ Open defn. 
  307. 0011[18]: Text. Text scrap[Grey]="Walrus"
  308. 0011[24]: @} Close defn. 
  309. 0011[26]: Text. Text scrap[White]="<010>
  310. "
  311. 0012[01]: @A New section (Level 1). 
  312. 0012[03]: @< Open name. 
  313. 0012[05]: Text. Text scrap[Grey]="Error recovery point"
  314. 0012[25]: @> Close name. 
  315. 0012[27]: Text. Text scrap[Grey]="<010>
  316. <010>
  317. 3. File macro has too long a name. The test name has 1200 characters. Err.<010>
  318. Note: This test can't test the error message if the maximum length of a<010>
  319. macro name is less than the maximum length of a file name as the name<010>
  320. error is caught first.<010>
  321. "
  322. 0019[01]: @F File defn. 
  323. 0019[03]: @< Open name. 
  324. 0019[05]: Text. Text scrap[Grey]="123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
  325. 0019[1205]: @> Close name. 
  326. 0019[1207]: @{ Open defn. 
  327. 0019[1209]: @} Close defn. 
  328. 0019[1211]: Text. Text scrap[White]="<010>
  329. "
  330. 0020[01]: @A New section (Level 1). 
  331. 0020[03]: @< Open name. 
  332. 0020[05]: Text. Text scrap[Grey]="Error recovery point"
  333. 0020[25]: @> Close name. 
  334. 0020[27]: Text. Text scrap[Grey]="<010>
  335. <010>
  336. 4. File macro has zero or many attributes. Error.<010>
  337. "
  338. 0023[01]: @F File defn. 
  339. 0023[03]: @< Open name. 
  340. 0023[05]: Text. Text scrap[Grey]="Sloth 3"
  341. 0023[12]: @> Close name. 
  342. 0023[14]: @Z Zero calls. 
  343. 0023[16]: @{ Open defn. 
  344. 0023[18]: Text. Text scrap[Grey]="Walrus"
  345. 0023[24]: @} Close defn. 
  346. 0023[26]: Text. Text scrap[White]="<010>
  347. "
  348. 0024[01]: @A New section (Level 1). 
  349. 0024[03]: @< Open name. 
  350. 0024[05]: Text. Text scrap[Grey]="Error recovery point"
  351. 0024[25]: @> Close name. 
  352. 0024[27]: Text. Text scrap[White]="<010>
  353. <010>
  354. "
  355. 0026[01]: @F File defn. 
  356. 0026[03]: @< Open name. 
  357. 0026[05]: Text. Text scrap[Grey]="Sloth 4"
  358. 0026[12]: @> Close name. 
  359. 0026[14]: @M Many calls. 
  360. 0026[16]: @{ Open defn. 
  361. 0026[18]: Text. Text scrap[Grey]="Walrus"
  362. 0026[24]: @} Close defn. 
  363. 0026[26]: Text. Text scrap[White]="<010>
  364. "
  365. 0027[01]: @A New section (Level 1). 
  366. 0027[03]: @< Open name. 
  367. 0027[05]: Text. Text scrap[Grey]="Error recovery point"
  368. 0027[25]: @> Close name. 
  369. 0027[27]: Text. Text scrap[White]="<010>
  370. <010>
  371. "
  372. 0029[01]: @F File defn. 
  373. 0029[03]: @< Open name. 
  374. 0029[05]: Text. Text scrap[Grey]="Sloth 5"
  375. 0029[12]: @> Close name. 
  376. 0029[14]: @Z Zero calls. 
  377. 0029[16]: @M Many calls. 
  378. 0029[18]: @{ Open defn. 
  379. 0029[20]: Text. Text scrap[Grey]="Walrus"
  380. 0029[26]: @} Close defn. 
  381. 0029[28]: Text. Text scrap[White]="<010>
  382. "
  383. 0030[01]: @A New section (Level 1). 
  384. 0030[03]: @< Open name. 
  385. 0030[05]: Text. Text scrap[Grey]="Error recovery point"
  386. 0030[25]: @> Close name. 
  387. 0030[27]: Text. Text scrap[Grey]="<010>
  388. <010>
  389. 5. Previous definition is full, current is additive.<010>
  390. "
  391. 0033[01]: @$ Macro defn. 
  392. 0033[03]: @< Open name. 
  393. 0033[05]: Text. Text scrap[Grey]="Walrus 1"
  394. 0033[13]: @> Close name. 
  395. 0033[15]: Text. Text scrap[Grey]="=="
  396. 0033[17]: @{ Open defn. 
  397. 0033[19]: Text. Text scrap[Grey]="Sloth"
  398. 0033[24]: @} Close defn. 
  399. 0033[26]: Text. Text scrap[White]="<010>
  400. "
  401. 0034[01]: @$ Macro defn. 
  402. 0034[03]: @< Open name. 
  403. 0034[05]: Text. Text scrap[Grey]="Walrus 1"
  404. 0034[13]: @> Close name. 
  405. 0034[15]: Text. Text scrap[Grey]="+="
  406. 0034[17]: @{ Open defn. 
  407. 0034[19]: Text. Text scrap[Grey]="Aardvark"
  408. 0034[27]: @} Close defn. 
  409. 0034[29]: Text. Text scrap[White]="<010>
  410. "
  411. 0035[01]: @A New section (Level 1). 
  412. 0035[03]: @< Open name. 
  413. 0035[05]: Text. Text scrap[Grey]="Error recovery point"
  414. 0035[25]: @> Close name. 
  415. 0035[27]: Text. Text scrap[Grey]="<010>
  416. <010>
  417. 6. Previous definition is additive, current is full.<010>
  418. "
  419. 0038[01]: @$ Macro defn. 
  420. 0038[03]: @< Open name. 
  421. 0038[05]: Text. Text scrap[Grey]="Walrus 2"
  422. 0038[13]: @> Close name. 
  423. 0038[15]: Text. Text scrap[Grey]="+="
  424. 0038[17]: @{ Open defn. 
  425. 0038[19]: Text. Text scrap[Grey]="Sloth"
  426. 0038[24]: @} Close defn. 
  427. 0038[26]: Text. Text scrap[White]="<010>
  428. "
  429. 0039[01]: @$ Macro defn. 
  430. 0039[03]: @< Open name. 
  431. 0039[05]: Text. Text scrap[Grey]="Walrus 2"
  432. 0039[13]: @> Close name. 
  433. 0039[15]: Text. Text scrap[Grey]="=="
  434. 0039[17]: @{ Open defn. 
  435. 0039[19]: Text. Text scrap[Grey]="Aardvark"
  436. 0039[27]: @} Close defn. 
  437. 0039[29]: Text. Text scrap[White]="<010>
  438. "
  439. 0040[01]: @A New section (Level 1). 
  440. 0040[03]: @< Open name. 
  441. 0040[05]: Text. Text scrap[Grey]="Error recovery point"
  442. 0040[25]: @> Close name. 
  443. 0040[27]: Text. Text scrap[Grey]="<010>
  444. <010>
  445. 7. Non-first body part of partial has parameter.<010>
  446. "
  447. 0043[01]: @$ Macro defn. 
  448. 0043[03]: @< Open name. 
  449. 0043[05]: Text. Text scrap[Grey]="Unicorn"
  450. 0043[12]: @> Close name. 
  451. 0043[14]: @( Open param. 
  452. 0043[16]: @n Parameter. Parameterno=3.
  453. 0043[18]: @} Close param. 
  454. 0043[20]: Text. Text scrap[Grey]="+="
  455. 0043[22]: @{ Open defn. 
  456. 0043[24]: Text. Text scrap[Grey]="Turkey"
  457. 0043[30]: @} Close defn. 
  458. 0043[32]: Text. Text scrap[White]="<010>
  459. "
  460. 0044[01]: @$ Macro defn. 
  461. 0044[03]: @< Open name. 
  462. 0044[05]: Text. Text scrap[Grey]="Unicorn"
  463. 0044[12]: @> Close name. 
  464. 0044[14]: @( Open param. 
  465. 0044[16]: @n Parameter. Parameterno=3.
  466. 0044[18]: @} Close param. 
  467. 0044[20]: Text. Text scrap[Grey]="+="
  468. 0044[22]: @{ Open defn. 
  469. 0044[24]: Text. Text scrap[Grey]="Turkey"
  470. 0044[30]: @} Close defn. 
  471. 0044[32]: Text. Text scrap[White]="<010>
  472. "
  473. 0045[01]: @A New section (Level 1). 
  474. 0045[03]: @< Open name. 
  475. 0045[05]: Text. Text scrap[Grey]="Error recovery point"
  476. 0045[25]: @> Close name. 
  477. 0045[27]: Text. Text scrap[Grey]="<010>
  478. <010>
  479. 8. Zero or many attributes on non-first body part of additive.<010>
  480. "
  481. 0048[01]: @$ Macro defn. 
  482. 0048[03]: @< Open name. 
  483. 0048[05]: Text. Text scrap[Grey]="Elephant"
  484. 0048[13]: @> Close name. 
  485. 0048[15]: @Z Zero calls. 
  486. 0048[17]: @M Many calls. 
  487. 0048[19]: Text. Text scrap[Grey]="+="
  488. 0048[21]: @{ Open defn. 
  489. 0048[23]: Text. Text scrap[Grey]="Turkey"
  490. 0048[29]: @} Close defn. 
  491. 0048[31]: Text. Text scrap[White]="<010>
  492. "
  493. 0049[01]: @$ Macro defn. 
  494. 0049[03]: @< Open name. 
  495. 0049[05]: Text. Text scrap[Grey]="Elephant"
  496. 0049[13]: @> Close name. 
  497. 0049[15]: @Z Zero calls. 
  498. 0049[17]: @M Many calls. 
  499. 0049[19]: Text. Text scrap[Grey]="+="
  500. 0049[21]: @{ Open defn. 
  501. 0049[23]: Text. Text scrap[Grey]="Turkey"
  502. 0049[29]: @} Close defn. 
  503. 0049[31]: Text. Text scrap[White]="<010>
  504. "
  505. 0050[01]: @A New section (Level 1). 
  506. 0050[03]: @< Open name. 
  507. 0050[05]: Text. Text scrap[Grey]="Error recovery point"
  508. 0050[25]: @> Close name. 
  509. 0050[27]: Text. Text scrap[Grey]="<010>
  510. <010>
  511. 9. Check that non-existent formal parameters are caught.<010>
  512. <010>
  513. "
  514. 0054[01]: @$ Macro defn. 
  515. 0054[03]: @< Open name. 
  516. 0054[05]: Text. Text scrap[Grey]="Zero"
  517. 0054[09]: @> Close name. 
  518. 0054[11]: @Z Zero calls. 
  519. 0054[13]: @{ Open defn. 
  520. 0054[15]: Text. Text scrap[Grey]="Sloth"
  521. 0054[20]: @n Parameter. Parameterno=1.
  522. 0054[22]: Text. Text scrap[Grey]="Walrus"
  523. 0054[28]: @} Close defn. 
  524. 0054[30]: Text. Text scrap[White]="<010>
  525. "
  526. 0055[01]: @A New section (Level 1). 
  527. 0055[03]: @< Open name. 
  528. 0055[05]: Text. Text scrap[Grey]="Error recovery point"
  529. 0055[25]: @> Close name. 
  530. 0055[27]: Text. Text scrap[White]="<010>
  531. <010>
  532. "
  533. 0057[01]: @$ Macro defn. 
  534. 0057[03]: @< Open name. 
  535. 0057[05]: Text. Text scrap[Grey]="One"
  536. 0057[08]: @> Close name. 
  537. 0057[10]: @( Open param. 
  538. 0057[12]: @n Parameter. Parameterno=1.
  539. 0057[14]: @} Close param. 
  540. 0057[16]: @Z Zero calls. 
  541. 0057[18]: @{ Open defn. 
  542. 0057[20]: Text. Text scrap[Grey]="Sloth"
  543. 0057[25]: @n Parameter. Parameterno=2.
  544. 0057[27]: Text. Text scrap[Grey]="Walrus"
  545. 0057[33]: @} Close defn. 
  546. 0057[35]: Text. Text scrap[White]="<010>
  547. "
  548. 0058[01]: @A New section (Level 1). 
  549. 0058[03]: @< Open name. 
  550. 0058[05]: Text. Text scrap[Grey]="Error recovery point"
  551. 0058[25]: @> Close name. 
  552. 0058[27]: Text. Text scrap[White]="<010>
  553. <010>
  554. "
  555. 0060[01]: @$ Macro defn. 
  556. 0060[03]: @< Open name. 
  557. 0060[05]: Text. Text scrap[Grey]="Many"
  558. 0060[09]: @> Close name. 
  559. 0060[11]: @( Open param. 
  560. 0060[13]: @n Parameter. Parameterno=7.
  561. 0060[15]: @} Close param. 
  562. 0060[17]: @Z Zero calls. 
  563. 0060[19]: @{ Open defn. 
  564. 0060[21]: Text. Text scrap[Grey]="Sloth"
  565. 0060[26]: @n Parameter. Parameterno=8.
  566. 0060[28]: Text. Text scrap[Grey]="Walrus"
  567. 0060[34]: @} Close defn. 
  568. 0060[36]: Text. Text scrap[White]="<010>
  569. "
  570. 0061[01]: @A New section (Level 1). 
  571. 0061[03]: @< Open name. 
  572. 0061[05]: Text. Text scrap[Grey]="Error recovery point"
  573. 0061[25]: @> Close name. 
  574. 0061[27]: Text. Text scrap[White]="<010>
  575. "
  576. 0062[01]: End Of File. 
  577. ============================ End of TOKEN LIST DUMP ============================
  578.  
  579.  
  580. ========================== Start of MACRO TABLE DUMP ===========================
  581.  
  582.  
  583. ------------------- Start of Macro Dump --------------------
  584. Macro Name  : "Elephant"
  585. Defined?    : Yes.
  586. Parameters  : 0
  587. Additive?   : Yes.
  588. Zero Calls? : Yes.
  589. Many Calls? : Yes.
  590. Output File?: No.
  591. Call list   :
  592. Macro body  :
  593.  
  594. --Start of List of Body Parts--
  595. This macro has 1 body part.
  596. Body part 1: Seqnum=4, Pos(L,C)=(48,3), Expression follows:
  597.  
  598. ---- Start of Expression ----
  599.  
  600. ----- Start Text Element -----
  601. Text scrap[Grey]="Turkey"
  602. ------ End Text Element ------
  603.  
  604. ----- End of Expression -----
  605.  
  606. ---End of List of Body Parts---
  607.  
  608. -------------------- End of Macro Dump ---------------------
  609.  
  610.  
  611.  
  612. ------------------- Start of Macro Dump --------------------
  613. Macro Name  : "Many"
  614. Defined?    : Yes.
  615. Parameters  : 7
  616. Additive?   : No.
  617. Zero Calls? : Yes.
  618. Many Calls? : No.
  619. Output File?: No.
  620. Call list   :
  621. Macro body  :
  622.  
  623. --Start of List of Body Parts--
  624. This macro has 1 body part.
  625. Body part 1: Seqnum=7, Pos(L,C)=(60,3), Expression follows:
  626.  
  627. ---- Start of Expression ----
  628.  
  629. ----- Start Text Element -----
  630. Text scrap[Grey]="Sloth"
  631. ------ End Text Element ------
  632.  
  633.  
  634. -- Start Parameter Element --
  635. Parameter number=8.
  636. Parameter is of macro "Many".
  637. --- End Parameter Element ---
  638.  
  639.  
  640. ----- Start Text Element -----
  641. Text scrap[Grey]="Walrus"
  642. ------ End Text Element ------
  643.  
  644. ----- End of Expression -----
  645.  
  646. ---End of List of Body Parts---
  647.  
  648. -------------------- End of Macro Dump ---------------------
  649.  
  650.  
  651.  
  652. ------------------- Start of Macro Dump --------------------
  653. Macro Name  : "One"
  654. Defined?    : Yes.
  655. Parameters  : 1
  656. Additive?   : No.
  657. Zero Calls? : Yes.
  658. Many Calls? : No.
  659. Output File?: No.
  660. Call list   :
  661. Macro body  :
  662.  
  663. --Start of List of Body Parts--
  664. This macro has 1 body part.
  665. Body part 1: Seqnum=6, Pos(L,C)=(57,3), Expression follows:
  666.  
  667. ---- Start of Expression ----
  668.  
  669. ----- Start Text Element -----
  670. Text scrap[Grey]="Sloth"
  671. ------ End Text Element ------
  672.  
  673.  
  674. -- Start Parameter Element --
  675. Parameter number=2.
  676. Parameter is of macro "One".
  677. --- End Parameter Element ---
  678.  
  679.  
  680. ----- Start Text Element -----
  681. Text scrap[Grey]="Walrus"
  682. ------ End Text Element ------
  683.  
  684. ----- End of Expression -----
  685.  
  686. ---End of List of Body Parts---
  687.  
  688. -------------------- End of Macro Dump ---------------------
  689.  
  690.  
  691.  
  692. ------------------- Start of Macro Dump --------------------
  693. Macro Name  : "Sloth 1"
  694. Defined?    : No.
  695. -------------------- End of Macro Dump ---------------------
  696.  
  697.  
  698.  
  699. ------------------- Start of Macro Dump --------------------
  700. Macro Name  : "Sloth 2"
  701. Defined?    : No.
  702. -------------------- End of Macro Dump ---------------------
  703.  
  704.  
  705.  
  706. ------------------- Start of Macro Dump --------------------
  707. Macro Name  : "Sloth 3"
  708. Defined?    : No.
  709. -------------------- End of Macro Dump ---------------------
  710.  
  711.  
  712.  
  713. ------------------- Start of Macro Dump --------------------
  714. Macro Name  : "Sloth 4"
  715. Defined?    : No.
  716. -------------------- End of Macro Dump ---------------------
  717.  
  718.  
  719.  
  720. ------------------- Start of Macro Dump --------------------
  721. Macro Name  : "Sloth 5"
  722. Defined?    : No.
  723. -------------------- End of Macro Dump ---------------------
  724.  
  725.  
  726.  
  727. ------------------- Start of Macro Dump --------------------
  728. Macro Name  : "Unicorn"
  729. Defined?    : Yes.
  730. Parameters  : 3
  731. Additive?   : Yes.
  732. Zero Calls? : No.
  733. Many Calls? : No.
  734. Output File?: No.
  735. Call list   :
  736. Macro body  :
  737.  
  738. --Start of List of Body Parts--
  739. This macro has 1 body part.
  740. Body part 1: Seqnum=3, Pos(L,C)=(43,3), Expression follows:
  741.  
  742. ---- Start of Expression ----
  743.  
  744. ----- Start Text Element -----
  745. Text scrap[Grey]="Turkey"
  746. ------ End Text Element ------
  747.  
  748. ----- End of Expression -----
  749.  
  750. ---End of List of Body Parts---
  751.  
  752. -------------------- End of Macro Dump ---------------------
  753.  
  754.  
  755.  
  756. ------------------- Start of Macro Dump --------------------
  757. Macro Name  : "Walrus 1"
  758. Defined?    : Yes.
  759. Parameters  : 0
  760. Additive?   : No.
  761. Zero Calls? : No.
  762. Many Calls? : No.
  763. Output File?: No.
  764. Call list   :
  765. Macro body  :
  766.  
  767. --Start of List of Body Parts--
  768. This macro has 1 body part.
  769. Body part 1: Seqnum=1, Pos(L,C)=(33,3), Expression follows:
  770.  
  771. ---- Start of Expression ----
  772.  
  773. ----- Start Text Element -----
  774. Text scrap[Grey]="Sloth"
  775. ------ End Text Element ------
  776.  
  777. ----- End of Expression -----
  778.  
  779. ---End of List of Body Parts---
  780.  
  781. -------------------- End of Macro Dump ---------------------
  782.  
  783.  
  784.  
  785. ------------------- Start of Macro Dump --------------------
  786. Macro Name  : "Walrus 2"
  787. Defined?    : Yes.
  788. Parameters  : 0
  789. Additive?   : Yes.
  790. Zero Calls? : No.
  791. Many Calls? : No.
  792. Output File?: No.
  793. Call list   :
  794. Macro body  :
  795.  
  796. --Start of List of Body Parts--
  797. This macro has 1 body part.
  798. Body part 1: Seqnum=2, Pos(L,C)=(38,3), Expression follows:
  799.  
  800. ---- Start of Expression ----
  801.  
  802. ----- Start Text Element -----
  803. Text scrap[Grey]="Sloth"
  804. ------ End Text Element ------
  805.  
  806. ----- End of Expression -----
  807.  
  808. ---End of List of Body Parts---
  809.  
  810. -------------------- End of Macro Dump ---------------------
  811.  
  812.  
  813.  
  814. ------------------- Start of Macro Dump --------------------
  815. Macro Name  : "Zero"
  816. Defined?    : Yes.
  817. Parameters  : 0
  818. Additive?   : No.
  819. Zero Calls? : Yes.
  820. Many Calls? : No.
  821. Output File?: No.
  822. Call list   :
  823. Macro body  :
  824.  
  825. --Start of List of Body Parts--
  826. This macro has 1 body part.
  827. Body part 1: Seqnum=5, Pos(L,C)=(54,3), Expression follows:
  828.  
  829. ---- Start of Expression ----
  830.  
  831. ----- Start Text Element -----
  832. Text scrap[Grey]="Sloth"
  833. ------ End Text Element ------
  834.  
  835.  
  836. -- Start Parameter Element --
  837. Parameter number=1.
  838. Parameter is of macro "Zero".
  839. --- End Parameter Element ---
  840.  
  841.  
  842. ----- Start Text Element -----
  843. Text scrap[Grey]="Walrus"
  844. ------ End Text Element ------
  845.  
  846. ----- End of Expression -----
  847.  
  848. ---End of List of Body Parts---
  849.  
  850. -------------------- End of Macro Dump ---------------------
  851.  
  852.  
  853.  
  854. =========================== End of MACRO TABLE DUMP ============================
  855.  
  856.  
  857. ========================= Start of DOCUMENT LIST DUMP ==========================
  858.  
  859.  
  860. TEXT COMPONENT: Pos(L,C)=(1,1). 
  861.  
  862. -- Start of Text Scrap List --
  863. Text scrap[Grey]="PR08: Test semantic checking of macro definitions.<010>
  864. <010>
  865. Trip parser to be sure that we won't get any output files!<010>
  866. "
  867. --- End of Text Scrap List ---
  868.  
  869.  
  870. TEXT COMPONENT: Pos(L,C)=(4,3). 
  871.  
  872. -- Start of Text Scrap List --
  873. Text scrap[Grey]="<010>
  874. <010>
  875. 1. File macro has parameters. Error.<010>
  876. "
  877. --- End of Text Scrap List ---
  878.  
  879.  
  880. TYPESETTER DIRECTIVE COMPONENT: 
  881.    Section "1", Section name="Error recovery point".
  882.  
  883. TEXT COMPONENT: Pos(L,C)=(8,27). 
  884.  
  885. -- Start of Text Scrap List --
  886. Text scrap[Grey]="<010>
  887. <010>
  888. 2. File macro is additive. Error.<010>
  889. "
  890. --- End of Text Scrap List ---
  891.  
  892.  
  893. TYPESETTER DIRECTIVE COMPONENT: 
  894.    Section "2", Section name="Error recovery point".
  895.  
  896. TEXT COMPONENT: Pos(L,C)=(12,27). 
  897.  
  898. -- Start of Text Scrap List --
  899. Text scrap[Grey]="<010>
  900. <010>
  901. 3. File macro has too long a name. The test name has 1200 characters. Err.<010>
  902. Note: This test can't test the error message if the maximum length of a<010>
  903. macro name is less than the maximum length of a file name as the name<010>
  904. error is caught first.<010>
  905. "
  906. --- End of Text Scrap List ---
  907.  
  908.  
  909. TYPESETTER DIRECTIVE COMPONENT: 
  910.    Section "3", Section name="Error recovery point".
  911.  
  912. TEXT COMPONENT: Pos(L,C)=(20,27). 
  913.  
  914. -- Start of Text Scrap List --
  915. Text scrap[Grey]="<010>
  916. <010>
  917. 4. File macro has zero or many attributes. Error.<010>
  918. "
  919. --- End of Text Scrap List ---
  920.  
  921.  
  922. TYPESETTER DIRECTIVE COMPONENT: 
  923.    Section "4", Section name="Error recovery point".
  924.  
  925. TEXT COMPONENT: Pos(L,C)=(24,27). 
  926.  
  927. -- Start of Text Scrap List --
  928. Text scrap[White]="<010>
  929. <010>
  930. "
  931. --- End of Text Scrap List ---
  932.  
  933.  
  934. TYPESETTER DIRECTIVE COMPONENT: 
  935.    Section "5", Section name="Error recovery point".
  936.  
  937. TEXT COMPONENT: Pos(L,C)=(27,27). 
  938.  
  939. -- Start of Text Scrap List --
  940. Text scrap[White]="<010>
  941. <010>
  942. "
  943. --- End of Text Scrap List ---
  944.  
  945.  
  946. TYPESETTER DIRECTIVE COMPONENT: 
  947.    Section "6", Section name="Error recovery point".
  948.  
  949. TEXT COMPONENT: Pos(L,C)=(30,27). 
  950.  
  951. -- Start of Text Scrap List --
  952. Text scrap[Grey]="<010>
  953. <010>
  954. 5. Previous definition is full, current is additive.<010>
  955. "
  956. --- End of Text Scrap List ---
  957.  
  958.  
  959. MACRO DEFINITION COMPONENT: Pos(L,C)=(33,1). 
  960. Part 1 of macro @<Walrus 1@>.
  961.  
  962. TEXT COMPONENT: Pos(L,C)=(33,26). 
  963.  
  964. -- Start of Text Scrap List --
  965. Text scrap[White]="<010>
  966. "
  967. --- End of Text Scrap List ---
  968.  
  969.  
  970. TYPESETTER DIRECTIVE COMPONENT: 
  971.    Section "7", Section name="Error recovery point".
  972.  
  973. TEXT COMPONENT: Pos(L,C)=(35,27). 
  974.  
  975. -- Start of Text Scrap List --
  976. Text scrap[Grey]="<010>
  977. <010>
  978. 6. Previous definition is additive, current is full.<010>
  979. "
  980. --- End of Text Scrap List ---
  981.  
  982.  
  983. MACRO DEFINITION COMPONENT: Pos(L,C)=(38,1). 
  984. Part 1 of macro @<Walrus 2@>.
  985.  
  986. TEXT COMPONENT: Pos(L,C)=(38,26). 
  987.  
  988. -- Start of Text Scrap List --
  989. Text scrap[White]="<010>
  990. "
  991. --- End of Text Scrap List ---
  992.  
  993.  
  994. TYPESETTER DIRECTIVE COMPONENT: 
  995.    Section "8", Section name="Error recovery point".
  996.  
  997. TEXT COMPONENT: Pos(L,C)=(40,27). 
  998.  
  999. -- Start of Text Scrap List --
  1000. Text scrap[Grey]="<010>
  1001. <010>
  1002. 7. Non-first body part of partial has parameter.<010>
  1003. "
  1004. --- End of Text Scrap List ---
  1005.  
  1006.  
  1007. MACRO DEFINITION COMPONENT: Pos(L,C)=(43,1). 
  1008. Part 1 of macro @<Unicorn@>.
  1009.  
  1010. TEXT COMPONENT: Pos(L,C)=(43,32). 
  1011.  
  1012. -- Start of Text Scrap List --
  1013. Text scrap[White]="<010>
  1014. "
  1015. --- End of Text Scrap List ---
  1016.  
  1017.  
  1018. TYPESETTER DIRECTIVE COMPONENT: 
  1019.    Section "9", Section name="Error recovery point".
  1020.  
  1021. TEXT COMPONENT: Pos(L,C)=(45,27). 
  1022.  
  1023. -- Start of Text Scrap List --
  1024. Text scrap[Grey]="<010>
  1025. <010>
  1026. 8. Zero or many attributes on non-first body part of additive.<010>
  1027. "
  1028. --- End of Text Scrap List ---
  1029.  
  1030.  
  1031. MACRO DEFINITION COMPONENT: Pos(L,C)=(48,1). 
  1032. Part 1 of macro @<Elephant@>.
  1033.  
  1034. TEXT COMPONENT: Pos(L,C)=(48,31). 
  1035.  
  1036. -- Start of Text Scrap List --
  1037. Text scrap[White]="<010>
  1038. "
  1039. --- End of Text Scrap List ---
  1040.  
  1041.  
  1042. TYPESETTER DIRECTIVE COMPONENT: 
  1043.    Section "10", Section name="Error recovery point".
  1044.  
  1045. TEXT COMPONENT: Pos(L,C)=(50,27). 
  1046.  
  1047. -- Start of Text Scrap List --
  1048. Text scrap[Grey]="<010>
  1049. <010>
  1050. 9. Check that non-existent formal parameters are caught.<010>
  1051. <010>
  1052. "
  1053. --- End of Text Scrap List ---
  1054.  
  1055.  
  1056. MACRO DEFINITION COMPONENT: Pos(L,C)=(54,1). 
  1057. Part 1 of macro @<Zero@>.
  1058.  
  1059. TEXT COMPONENT: Pos(L,C)=(54,30). 
  1060.  
  1061. -- Start of Text Scrap List --
  1062. Text scrap[White]="<010>
  1063. "
  1064. --- End of Text Scrap List ---
  1065.  
  1066.  
  1067. TYPESETTER DIRECTIVE COMPONENT: 
  1068.    Section "11", Section name="Error recovery point".
  1069.  
  1070. TEXT COMPONENT: Pos(L,C)=(55,27). 
  1071.  
  1072. -- Start of Text Scrap List --
  1073. Text scrap[White]="<010>
  1074. <010>
  1075. "
  1076. --- End of Text Scrap List ---
  1077.  
  1078.  
  1079. MACRO DEFINITION COMPONENT: Pos(L,C)=(57,1). 
  1080. Part 1 of macro @<One@>.
  1081.  
  1082. TEXT COMPONENT: Pos(L,C)=(57,35). 
  1083.  
  1084. -- Start of Text Scrap List --
  1085. Text scrap[White]="<010>
  1086. "
  1087. --- End of Text Scrap List ---
  1088.  
  1089.  
  1090. TYPESETTER DIRECTIVE COMPONENT: 
  1091.    Section "12", Section name="Error recovery point".
  1092.  
  1093. TEXT COMPONENT: Pos(L,C)=(58,27). 
  1094.  
  1095. -- Start of Text Scrap List --
  1096. Text scrap[White]="<010>
  1097. <010>
  1098. "
  1099. --- End of Text Scrap List ---
  1100.  
  1101.  
  1102. MACRO DEFINITION COMPONENT: Pos(L,C)=(60,1). 
  1103. Part 1 of macro @<Many@>.
  1104.  
  1105. TEXT COMPONENT: Pos(L,C)=(60,36). 
  1106.  
  1107. -- Start of Text Scrap List --
  1108. Text scrap[White]="<010>
  1109. "
  1110. --- End of Text Scrap List ---
  1111.  
  1112.  
  1113. TYPESETTER DIRECTIVE COMPONENT: 
  1114.    Section "13", Section name="Error recovery point".
  1115.  
  1116. TEXT COMPONENT: Pos(L,C)=(61,27). 
  1117.  
  1118. -- Start of Text Scrap List --
  1119. Text scrap[White]="<010>
  1120. "
  1121. --- End of Text Scrap List ---
  1122.  
  1123.  
  1124. ========================== End of DOCUMENT LIST DUMP ===========================
  1125.  
  1126.  
  1127. Global Local| Input File
  1128. ------------+-------------------------------------------------------------------
  1129.      1     1| PR08: Test semantic checking of macro definitions.
  1130.      2     2| 
  1131.      3     3| Trip parser to be sure that we won't get any output files!
  1132.      4     4| @>
  1133.        Error|.^The parser was at the top level and was expecting
  1134.             |.^one of: {Directive, Text, Macro definition, EOF}.
  1135.      5     5| 
  1136.      6     6| 1. File macro has parameters. Error.
  1137.      7     7| @O@<Sloth 1@>@(@3@)@{Walrus@}
  1138.             |...^Macro definition ignored.
  1139.        Error|................^Macros attached to output files cannot be parameterized.
  1140.             |................^Reason: No actual parameters would be available during
  1141.             |................^        output file generation.
  1142.             |....................^Skipping after error to the next major construct...
  1143.      8     8| @A@<Error recovery point@>
  1144.             |.^...skipped to here after the error.
  1145.      9     9| 
  1146.     10    10| 2. File macro is additive. Error.
  1147.     11    11| @O@<Sloth 2@>+=@{Walrus@}
  1148.             |...^Macro definition ignored.
  1149.        Error|..............^Macros attached to output files cannot be additive.
  1150.             |..............^Reason: Preventing this makes it easy to find output
  1151.             |..............^file macros later, because there will be exactly one
  1152.             |..............^@O declaration in the input file for each output file.
  1153.             |..............^To do what you are trying to do, just create an additive
  1154.             |..............^bridging macro, like this:
  1155.             |..............^   @O@<prog.c@>@{@<Bridge@>@}
  1156.             |..............^   @$@<Bridge@>+=@{void stringhack()...@}
  1157.             |..............^   @$@<Bridge@>+=@{main()...@}
  1158.             |................^Skipping after error to the next major construct...
  1159.     12    12| @A@<Error recovery point@>
  1160.             |.^...skipped to here after the error.
  1161.     13    13| 
  1162.     14    14| 3. File macro has too long a name. The test name has 1200 characters. Err.
  1163.     15    15| Note: This test can't test the error message if the maximum length of a
  1164.     16    16| macro name is less than the maximum length of a file name as the name
  1165.     17    17| error is caught first.
  1166.     18    18| @p maximum_input_line_length = infinity
  1167.     19    19| @O@<123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890@>@{@}
  1168.        Error|.....^Name is too long.
  1169.             |.....^The maximum length of a legal name is 80 characters.
  1170.             |.....^Skipping after error to the next major construct...
  1171.     20    20| @A@<Error recovery point@>
  1172.             |.^...skipped to here after the error.
  1173.     21    21| 
  1174.     22    22| 4. File macro has zero or many attributes. Error.
  1175.     23    23| @O@<Sloth 3@>@Z@{Walrus@}
  1176.             |...^Macro definition ignored.
  1177.        Error|..............^Macros attached to output files cannot have @Z or @M.
  1178.             |..............^Reason: They are always called once to generate their
  1179.             |..............^output file and they cannot be called from other macros.
  1180.             |..............^Hence they are always called exactly once and so there
  1181.             |..............^can be no need for @Z or @M in their declarations.
  1182.             |................^Skipping after error to the next major construct...
  1183.     24    24| @A@<Error recovery point@>
  1184.             |.^...skipped to here after the error.
  1185.     25    25| 
  1186.     26    26| @O@<Sloth 4@>@M@{Walrus@}
  1187.             |...^Macro definition ignored.
  1188.        Error|..............^Macros attached to output files cannot have @Z or @M.
  1189.             |..............^Reason: They are always called once to generate their
  1190.             |..............^output file and they cannot be called from other macros.
  1191.             |..............^Hence they are always called exactly once and so there
  1192.             |..............^can be no need for @Z or @M in their declarations.
  1193.             |................^Skipping after error to the next major construct...
  1194.     27    27| @A@<Error recovery point@>
  1195.             |.^...skipped to here after the error.
  1196.     28    28| 
  1197.     29    29| @O@<Sloth 5@>@Z@M@{Walrus@}
  1198.             |...^Macro definition ignored.
  1199.        Error|..............^Macros attached to output files cannot have @Z or @M.
  1200.             |..............^Reason: They are always called once to generate their
  1201.             |..............^output file and they cannot be called from other macros.
  1202.             |..............^Hence they are always called exactly once and so there
  1203.             |..............^can be no need for @Z or @M in their declarations.
  1204.             |..................^Skipping after error to the next major construct...
  1205.     30    30| @A@<Error recovery point@>
  1206.             |.^...skipped to here after the error.
  1207.     31    31| 
  1208.     32    32| 5. Previous definition is full, current is additive.
  1209.     33    33| @$@<Walrus 1@>==@{Sloth@}
  1210.     34    34| @$@<Walrus 1@>+=@{Aardvark@}
  1211.        Error|...^A full definition of this macro appears at line 33.
  1212.             |...^Full and additive definitions of the same macro cannot coexist.
  1213.             |...^Macro definition ignored.
  1214.             |.................^Skipping after error to the next major construct...
  1215.     35    35| @A@<Error recovery point@>
  1216.             |.^...skipped to here after the error.
  1217.     36    36| 
  1218.     37    37| 6. Previous definition is additive, current is full.
  1219.     38    38| @$@<Walrus 2@>+=@{Sloth@}
  1220.     39    39| @$@<Walrus 2@>==@{Aardvark@}
  1221.        Error|...^An additive definition of this macro appears at line 38.
  1222.             |...^Full and additive definitions of the same macro cannot coexist.
  1223.             |...^Macro definition ignored.
  1224.             |.................^Skipping after error to the next major construct...
  1225.     40    40| @A@<Error recovery point@>
  1226.             |.^...skipped to here after the error.
  1227.     41    41| 
  1228.     42    42| 7. Non-first body part of partial has parameter.
  1229.     43    43| @$@<Unicorn@>@(@3@)+=@{Turkey@}
  1230.     44    44| @$@<Unicorn@>@(@3@)+=@{Turkey@}
  1231.             |...^Macro definition ignored.
  1232.        Error|................^The formal parameter list of an additive macro
  1233.             |................^must be placed only in the first definition part.
  1234.             |................^The first part of this macro appears at line 43.
  1235.             |......................^Skipping after error to the next major construct...
  1236.     45    45| @A@<Error recovery point@>
  1237.             |.^...skipped to here after the error.
  1238.     46    46| 
  1239.     47    47| 8. Zero or many attributes on non-first body part of additive.
  1240.     48    48| @$@<Elephant@>@Z@M+=@{Turkey@}
  1241.     49    49| @$@<Elephant@>@Z@M+=@{Turkey@}
  1242.             |...^Macro definition ignored.
  1243.        Error|...............^@Z and @M modifiers for additive macros must
  1244.             |...............^be placed only in the first definition part.
  1245.             |...............^The first part of this macro appears at line 48.
  1246.             |.....................^Skipping after error to the next major construct...
  1247.     50    50| @A@<Error recovery point@>
  1248.             |.^...skipped to here after the error.
  1249.     51    51| 
  1250.     52    52| 9. Check that non-existent formal parameters are caught.
  1251.     53    53| 
  1252.     54    54| @$@<Zero@>@Z@{Sloth@1Walrus@}
  1253.        Error|....................^Macro being defined has only 0 parameters.
  1254.     55    55| @A@<Error recovery point@>
  1255.     56    56| 
  1256.     57    57| @$@<One@>@(@1@)@Z@{Sloth@2Walrus@}
  1257.        Error|.........................^Macro being defined has only 1 parameter.
  1258.     58    58| @A@<Error recovery point@>
  1259.     59    59| 
  1260.     60    60| @$@<Many@>@(@7@)@Z@{Sloth@8Walrus@}
  1261.        Error|..........................^Macro being defined has only 7 parameters.
  1262.     61    61| @A@<Error recovery point@>
  1263.             | <End-Of-File>
  1264. ------------+-------------------------------------------------------------------
  1265.  
  1266. There were 14 Errors.
  1267.