FUNNELWEB LISTING FILE
======================

Dump of mapped file "<<Suppressed>>".

MEMORY DUMP OF MAPPED FILE
==========================

+-------------------------------------------------+------------------+
| 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | 0123456789ABCDEF |
+-------------------------------------------------+------------------+
| 50 52 30 38 3A 20 54 65 73 74 20 73 65 6D 61 6E | PR08: Test seman |
| 74 69 63 20 63 68 65 63 6B 69 6E 67 20 6F 66 20 | tic checking of  |
| 6D 61 63 72 6F 20 64 65 66 69 6E 69 74 69 6F 6E | macro definition |
| 73 2E 0A 0A 54 72 69 70 20 70 61 72 73 65 72 20 | s...Trip parser  |
| 74 6F 20 62 65 20 73 75 72 65 20 74 68 61 74 20 | to be sure that  |
| 77 65 20 77 6F 6E 27 74 20 67 65 74 20 61 6E 79 | we won't get any |
| 20 6F 75 74 70 75 74 20 66 69 6C 65 73 21 0A 40 |  output files!.@ |
| 3E 0A 0A 31 2E 20 46 69 6C 65 20 6D 61 63 72 6F | >..1. File macro |
| 20 68 61 73 20 70 61 72 61 6D 65 74 65 72 73 2E |  has parameters. |
| 20 45 72 72 6F 72 2E 0A 40 4F 40 3C 53 6C 6F 74 |  Error..@O@<Slot |
| 68 20 31 40 3E 40 28 40 33 40 29 40 7B 57 61 6C | h 1@>@(@3@)@{Wal |
| 72 75 73 40 7D 0A 40 41 40 3C 45 72 72 6F 72 20 | rus@}.@A@<Error  |
| 72 65 63 6F 76 65 72 79 20 70 6F 69 6E 74 40 3E | recovery point@> |
| 0A 0A 32 2E 20 46 69 6C 65 20 6D 61 63 72 6F 20 | ..2. File macro  |
| 69 73 20 61 64 64 69 74 69 76 65 2E 20 45 72 72 | is additive. Err |
| 6F 72 2E 0A 40 4F 40 3C 53 6C 6F 74 68 20 32 40 | or..@O@<Sloth 2@ |
| 3E 2B 3D 40 7B 57 61 6C 72 75 73 40 7D 0A 40 41 | >+=@{Walrus@}.@A |
| 40 3C 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 | @<Error recovery |
| 20 70 6F 69 6E 74 40 3E 0A 0A 33 2E 20 46 69 6C |  point@>..3. Fil |
| 65 20 6D 61 63 72 6F 20 68 61 73 20 74 6F 6F 20 | e macro has too  |
| 6C 6F 6E 67 20 61 20 6E 61 6D 65 2E 20 54 68 65 | long a name. The |
| 20 74 65 73 74 20 6E 61 6D 65 20 68 61 73 20 31 |  test name has 1 |
| 32 30 30 20 63 68 61 72 61 63 74 65 72 73 2E 20 | 200 characters.  |
| 45 72 72 2E 0A 4E 6F 74 65 3A 20 54 68 69 73 20 | Err..Note: This  |
| 74 65 73 74 20 63 61 6E 27 74 20 74 65 73 74 20 | test can't test  |
| 74 68 65 20 65 72 72 6F 72 20 6D 65 73 73 61 67 | the error messag |
| 65 20 69 66 20 74 68 65 20 6D 61 78 69 6D 75 6D | e if the maximum |
| 20 6C 65 6E 67 74 68 20 6F 66 20 61 0A 6D 61 63 |  length of a.mac |
| 72 6F 20 6E 61 6D 65 20 69 73 20 6C 65 73 73 20 | ro name is less  |
| 74 68 61 6E 20 74 68 65 20 6D 61 78 69 6D 75 6D | than the maximum |
| 20 6C 65 6E 67 74 68 20 6F 66 20 61 20 66 69 6C |  length of a fil |
| 65 20 6E 61 6D 65 20 61 73 20 74 68 65 20 6E 61 | e name as the na |
| 6D 65 0A 65 72 72 6F 72 20 69 73 20 63 61 75 67 | me.error is caug |
| 68 74 20 66 69 72 73 74 2E 0A 40 70 20 6D 61 78 | ht first..@p max |
| 69 6D 75 6D 5F 69 6E 70 75 74 5F 6C 69 6E 65 5F | imum_input_line_ |
| 6C 65 6E 67 74 68 20 3D 20 69 6E 66 69 6E 69 74 | length = infinit |
| 79 0A 40 4F 40 3C 31 32 33 34 35 36 37 38 39 30 | y.@O@<1234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 | 5678901234567890 |
| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 | 1234567890123456 |
| 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | 7890123456789012 |
| 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 | 3456789012345678 |
| 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 | 9012345678901234 |
| 35 36 37 38 39 30 40 3E 40 7B 40 7D 0A 40 41 40 | 567890@>@{@}.@A@ |
| 3C 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 | <Error recovery  |
| 70 6F 69 6E 74 40 3E 0A 0A 34 2E 20 46 69 6C 65 | point@>..4. File |
| 20 6D 61 63 72 6F 20 68 61 73 20 7A 65 72 6F 20 |  macro has zero  |
| 6F 72 20 6D 61 6E 79 20 61 74 74 72 69 62 75 74 | or many attribut |
| 65 73 2E 20 45 72 72 6F 72 2E 0A 40 4F 40 3C 53 | es. Error..@O@<S |
| 6C 6F 74 68 20 33 40 3E 40 5A 40 7B 57 61 6C 72 | loth 3@>@Z@{Walr |
| 75 73 40 7D 0A 40 41 40 3C 45 72 72 6F 72 20 72 | us@}.@A@<Error r |
| 65 63 6F 76 65 72 79 20 70 6F 69 6E 74 40 3E 0A | ecovery point@>. |
| 0A 40 4F 40 3C 53 6C 6F 74 68 20 34 40 3E 40 4D | .@O@<Sloth 4@>@M |
| 40 7B 57 61 6C 72 75 73 40 7D 0A 40 41 40 3C 45 | @{Walrus@}.@A@<E |
| 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 70 6F | rror recovery po |
| 69 6E 74 40 3E 0A 0A 40 4F 40 3C 53 6C 6F 74 68 | int@>..@O@<Sloth |
| 20 35 40 3E 40 5A 40 4D 40 7B 57 61 6C 72 75 73 |  5@>@Z@M@{Walrus |
| 40 7D 0A 40 41 40 3C 45 72 72 6F 72 20 72 65 63 | @}.@A@<Error rec |
| 6F 76 65 72 79 20 70 6F 69 6E 74 40 3E 0A 0A 35 | overy point@>..5 |
| 2E 20 50 72 65 76 69 6F 75 73 20 64 65 66 69 6E | . Previous defin |
| 69 74 69 6F 6E 20 69 73 20 66 75 6C 6C 2C 20 63 | ition is full, c |
| 75 72 72 65 6E 74 20 69 73 20 61 64 64 69 74 69 | urrent is additi |
| 76 65 2E 0A 40 24 40 3C 57 61 6C 72 75 73 20 31 | ve..@$@<Walrus 1 |
| 40 3E 3D 3D 40 7B 53 6C 6F 74 68 40 7D 0A 40 24 | @>==@{Sloth@}.@$ |
| 40 3C 57 61 6C 72 75 73 20 31 40 3E 2B 3D 40 7B | @<Walrus 1@>+=@{ |
| 41 61 72 64 76 61 72 6B 40 7D 0A 40 41 40 3C 45 | Aardvark@}.@A@<E |
| 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 70 6F | rror recovery po |
| 69 6E 74 40 3E 0A 0A 36 2E 20 50 72 65 76 69 6F | int@>..6. Previo |
| 75 73 20 64 65 66 69 6E 69 74 69 6F 6E 20 69 73 | us definition is |
| 20 61 64 64 69 74 69 76 65 2C 20 63 75 72 72 65 |  additive, curre |
| 6E 74 20 69 73 20 66 75 6C 6C 2E 0A 40 24 40 3C | nt is full..@$@< |
| 57 61 6C 72 75 73 20 32 40 3E 2B 3D 40 7B 53 6C | Walrus 2@>+=@{Sl |
| 6F 74 68 40 7D 0A 40 24 40 3C 57 61 6C 72 75 73 | oth@}.@$@<Walrus |
| 20 32 40 3E 3D 3D 40 7B 41 61 72 64 76 61 72 6B |  2@>==@{Aardvark |
| 40 7D 0A 40 41 40 3C 45 72 72 6F 72 20 72 65 63 | @}.@A@<Error rec |
| 6F 76 65 72 79 20 70 6F 69 6E 74 40 3E 0A 0A 37 | overy point@>..7 |
| 2E 20 4E 6F 6E 2D 66 69 72 73 74 20 62 6F 64 79 | . Non-first body |
| 20 70 61 72 74 20 6F 66 20 70 61 72 74 69 61 6C |  part of partial |
| 20 68 61 73 20 70 61 72 61 6D 65 74 65 72 2E 0A |  has parameter.. |
| 40 24 40 3C 55 6E 69 63 6F 72 6E 40 3E 40 28 40 | @$@<Unicorn@>@(@ |
| 33 40 29 2B 3D 40 7B 54 75 72 6B 65 79 40 7D 0A | 3@)+=@{Turkey@}. |
| 40 24 40 3C 55 6E 69 63 6F 72 6E 40 3E 40 28 40 | @$@<Unicorn@>@(@ |
| 33 40 29 2B 3D 40 7B 54 75 72 6B 65 79 40 7D 0A | 3@)+=@{Turkey@}. |
| 40 41 40 3C 45 72 72 6F 72 20 72 65 63 6F 76 65 | @A@<Error recove |
| 72 79 20 70 6F 69 6E 74 40 3E 0A 0A 38 2E 20 5A | ry point@>..8. Z |
| 65 72 6F 20 6F 72 20 6D 61 6E 79 20 61 74 74 72 | ero or many attr |
| 69 62 75 74 65 73 20 6F 6E 20 6E 6F 6E 2D 66 69 | ibutes on non-fi |
| 72 73 74 20 62 6F 64 79 20 70 61 72 74 20 6F 66 | rst body part of |
| 20 61 64 64 69 74 69 76 65 2E 0A 40 24 40 3C 45 |  additive..@$@<E |
| 6C 65 70 68 61 6E 74 40 3E 40 5A 40 4D 2B 3D 40 | lephant@>@Z@M+=@ |
| 7B 54 75 72 6B 65 79 40 7D 0A 40 24 40 3C 45 6C | {Turkey@}.@$@<El |
| 65 70 68 61 6E 74 40 3E 40 5A 40 4D 2B 3D 40 7B | ephant@>@Z@M+=@{ |
| 54 75 72 6B 65 79 40 7D 0A 40 41 40 3C 45 72 72 | Turkey@}.@A@<Err |
| 6F 72 20 72 65 63 6F 76 65 72 79 20 70 6F 69 6E | or recovery poin |
| 74 40 3E 0A 0A 39 2E 20 43 68 65 63 6B 20 74 68 | t@>..9. Check th |
| 61 74 20 6E 6F 6E 2D 65 78 69 73 74 65 6E 74 20 | at non-existent  |
| 66 6F 72 6D 61 6C 20 70 61 72 61 6D 65 74 65 72 | formal parameter |
| 73 20 61 72 65 20 63 61 75 67 68 74 2E 0A 0A 40 | s are caught...@ |
| 24 40 3C 5A 65 72 6F 40 3E 40 5A 40 7B 53 6C 6F | $@<Zero@>@Z@{Slo |
| 74 68 40 31 57 61 6C 72 75 73 40 7D 0A 40 41 40 | th@1Walrus@}.@A@ |
| 3C 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 | <Error recovery  |
| 70 6F 69 6E 74 40 3E 0A 0A 40 24 40 3C 4F 6E 65 | point@>..@$@<One |
| 40 3E 40 28 40 31 40 29 40 5A 40 7B 53 6C 6F 74 | @>@(@1@)@Z@{Slot |
| 68 40 32 57 61 6C 72 75 73 40 7D 0A 40 41 40 3C | h@2Walrus@}.@A@< |
| 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 70 | Error recovery p |
| 6F 69 6E 74 40 3E 0A 0A 40 24 40 3C 4D 61 6E 79 | oint@>..@$@<Many |
| 40 3E 40 28 40 37 40 29 40 5A 40 7B 53 6C 6F 74 | @>@(@7@)@Z@{Slot |
| 68 40 38 57 61 6C 72 75 73 40 7D 0A 40 41 40 3C | h@8Walrus@}.@A@< |
| 45 72 72 6F 72 20 72 65 63 6F 76 65 72 79 20 70 | Error recovery p |
| 6F 69 6E 74 40 3E 0A                            | oint@>.          |
+-------------------------------------------------+------------------+


=========================== Start of LINE LIST DUMP ============================

Globl Local| Text
-----------+--------------------------------------------------------------------
00001 00001| PR08: Test semantic checking of macro definitions.<010>
00002 00002| <010>
00003 00003| Trip parser to be sure that we won't get any output files!<010>
00004 00004| @><010>
00005 00005| <010>
00006 00006| 1. File macro has parameters. Error.<010>
00007 00007| @O@<Sloth 1@>@(@3@)@{Walrus@}<010>
00008 00008| @A@<Error recovery point@><010>
00009 00009| <010>
00010 00010| 2. File macro is additive. Error.<010>
00011 00011| @O@<Sloth 2@>+=@{Walrus@}<010>
00012 00012| @A@<Error recovery point@><010>
00013 00013| <010>
00014 00014| 3. File macro has too long a name. The test name has 1200 characters. Err.<010>
00015 00015| Note: This test can't test the error message if the maximum length of a<010>
00016 00016| macro name is less than the maximum length of a file name as the name<010>
00017 00017| error is caught first.<010>
00018 00018| @p maximum_input_line_length = infinity<010>
00019 00019| @O@<1234567890(elided by comp.sources.unix moderator)1234567890@>@{@}<010>
00020 00020| @A@<Error recovery point@><010>
00021 00021| <010>
00022 00022| 4. File macro has zero or many attributes. Error.<010>
00023 00023| @O@<Sloth 3@>@Z@{Walrus@}<010>
00024 00024| @A@<Error recovery point@><010>
00025 00025| <010>
00026 00026| @O@<Sloth 4@>@M@{Walrus@}<010>
00027 00027| @A@<Error recovery point@><010>
00028 00028| <010>
00029 00029| @O@<Sloth 5@>@Z@M@{Walrus@}<010>
00030 00030| @A@<Error recovery point@><010>
00031 00031| <010>
00032 00032| 5. Previous definition is full, current is additive.<010>
00033 00033| @$@<Walrus 1@>==@{Sloth@}<010>
00034 00034| @$@<Walrus 1@>+=@{Aardvark@}<010>
00035 00035| @A@<Error recovery point@><010>
00036 00036| <010>
00037 00037| 6. Previous definition is additive, current is full.<010>
00038 00038| @$@<Walrus 2@>+=@{Sloth@}<010>
00039 00039| @$@<Walrus 2@>==@{Aardvark@}<010>
00040 00040| @A@<Error recovery point@><010>
00041 00041| <010>
00042 00042| 7. Non-first body part of partial has parameter.<010>
00043 00043| @$@<Unicorn@>@(@3@)+=@{Turkey@}<010>
00044 00044| @$@<Unicorn@>@(@3@)+=@{Turkey@}<010>
00045 00045| @A@<Error recovery point@><010>
00046 00046| <010>
00047 00047| 8. Zero or many attributes on non-first body part of additive.<010>
00048 00048| @$@<Elephant@>@Z@M+=@{Turkey@}<010>
00049 00049| @$@<Elephant@>@Z@M+=@{Turkey@}<010>
00050 00050| @A@<Error recovery point@><010>
00051 00051| <010>
00052 00052| 9. Check that non-existent formal parameters are caught.<010>
00053 00053| <010>
00054 00054| @$@<Zero@>@Z@{Sloth@1Walrus@}<010>
00055 00055| @A@<Error recovery point@><010>
00056 00056| <010>
00057 00057| @$@<One@>@(@1@)@Z@{Sloth@2Walrus@}<010>
00058 00058| @A@<Error recovery point@><010>
00059 00059| <010>
00060 00060| @$@<Many@>@(@7@)@Z@{Sloth@8Walrus@}<010>
00061 00061| @A@<Error recovery point@><010>
00062 00062| <End-Of-File><010>
-----------+--------------------------------------------------------------------
Globl Local| Text

============================ End of LINE LIST DUMP =============================


=========================== Start of TOKEN LIST DUMP ===========================

Summary: There are 245 tokens in the token list.

Line[Column]: Token Description
-------------------------------

0001[01]: Text. Text scrap[Grey]="PR08: Test semantic checking of macro definitions.<010>
<010>
Trip parser to be sure that we won't get any output files!<010>
"
0004[01]: @> Close name. 
0004[03]: Text. Text scrap[Grey]="<010>
<010>
1. File macro has parameters. Error.<010>
"
0007[01]: @F File defn. 
0007[03]: @< Open name. 
0007[05]: Text. Text scrap[Grey]="Sloth 1"
0007[12]: @> Close name. 
0007[14]: @( Open param. 
0007[16]: @n Parameter. Parameterno=3.
0007[18]: @} Close param. 
0007[20]: @{ Open defn. 
0007[22]: Text. Text scrap[Grey]="Walrus"
0007[28]: @} Close defn. 
0007[30]: Text. Text scrap[White]="<010>
"
0008[01]: @A New section (Level 1). 
0008[03]: @< Open name. 
0008[05]: Text. Text scrap[Grey]="Error recovery point"
0008[25]: @> Close name. 
0008[27]: Text. Text scrap[Grey]="<010>
<010>
2. File macro is additive. Error.<010>
"
0011[01]: @F File defn. 
0011[03]: @< Open name. 
0011[05]: Text. Text scrap[Grey]="Sloth 2"
0011[12]: @> Close name. 
0011[14]: Text. Text scrap[Grey]="+="
0011[16]: @{ Open defn. 
0011[18]: Text. Text scrap[Grey]="Walrus"
0011[24]: @} Close defn. 
0011[26]: Text. Text scrap[White]="<010>
"
0012[01]: @A New section (Level 1). 
0012[03]: @< Open name. 
0012[05]: Text. Text scrap[Grey]="Error recovery point"
0012[25]: @> Close name. 
0012[27]: Text. Text scrap[Grey]="<010>
<010>
3. File macro has too long a name. The test name has 1200 characters. Err.<010>
Note: This test can't test the error message if the maximum length of a<010>
macro name is less than the maximum length of a file name as the name<010>
error is caught first.<010>
"
0019[01]: @F File defn. 
0019[03]: @< Open name. 
0019[05]: Text. Text scrap[Grey]="1234567890(elided by comp.sources.unix moderator)1234567890"
0019[1205]: @> Close name. 
0019[1207]: @{ Open defn. 
0019[1209]: @} Close defn. 
0019[1211]: Text. Text scrap[White]="<010>
"
0020[01]: @A New section (Level 1). 
0020[03]: @< Open name. 
0020[05]: Text. Text scrap[Grey]="Error recovery point"
0020[25]: @> Close name. 
0020[27]: Text. Text scrap[Grey]="<010>
<010>
4. File macro has zero or many attributes. Error.<010>
"
0023[01]: @F File defn. 
0023[03]: @< Open name. 
0023[05]: Text. Text scrap[Grey]="Sloth 3"
0023[12]: @> Close name. 
0023[14]: @Z Zero calls. 
0023[16]: @{ Open defn. 
0023[18]: Text. Text scrap[Grey]="Walrus"
0023[24]: @} Close defn. 
0023[26]: Text. Text scrap[White]="<010>
"
0024[01]: @A New section (Level 1). 
0024[03]: @< Open name. 
0024[05]: Text. Text scrap[Grey]="Error recovery point"
0024[25]: @> Close name. 
0024[27]: Text. Text scrap[White]="<010>
<010>
"
0026[01]: @F File defn. 
0026[03]: @< Open name. 
0026[05]: Text. Text scrap[Grey]="Sloth 4"
0026[12]: @> Close name. 
0026[14]: @M Many calls. 
0026[16]: @{ Open defn. 
0026[18]: Text. Text scrap[Grey]="Walrus"
0026[24]: @} Close defn. 
0026[26]: Text. Text scrap[White]="<010>
"
0027[01]: @A New section (Level 1). 
0027[03]: @< Open name. 
0027[05]: Text. Text scrap[Grey]="Error recovery point"
0027[25]: @> Close name. 
0027[27]: Text. Text scrap[White]="<010>
<010>
"
0029[01]: @F File defn. 
0029[03]: @< Open name. 
0029[05]: Text. Text scrap[Grey]="Sloth 5"
0029[12]: @> Close name. 
0029[14]: @Z Zero calls. 
0029[16]: @M Many calls. 
0029[18]: @{ Open defn. 
0029[20]: Text. Text scrap[Grey]="Walrus"
0029[26]: @} Close defn. 
0029[28]: Text. Text scrap[White]="<010>
"
0030[01]: @A New section (Level 1). 
0030[03]: @< Open name. 
0030[05]: Text. Text scrap[Grey]="Error recovery point"
0030[25]: @> Close name. 
0030[27]: Text. Text scrap[Grey]="<010>
<010>
5. Previous definition is full, current is additive.<010>
"
0033[01]: @$ Macro defn. 
0033[03]: @< Open name. 
0033[05]: Text. Text scrap[Grey]="Walrus 1"
0033[13]: @> Close name. 
0033[15]: Text. Text scrap[Grey]="=="
0033[17]: @{ Open defn. 
0033[19]: Text. Text scrap[Grey]="Sloth"
0033[24]: @} Close defn. 
0033[26]: Text. Text scrap[White]="<010>
"
0034[01]: @$ Macro defn. 
0034[03]: @< Open name. 
0034[05]: Text. Text scrap[Grey]="Walrus 1"
0034[13]: @> Close name. 
0034[15]: Text. Text scrap[Grey]="+="
0034[17]: @{ Open defn. 
0034[19]: Text. Text scrap[Grey]="Aardvark"
0034[27]: @} Close defn. 
0034[29]: Text. Text scrap[White]="<010>
"
0035[01]: @A New section (Level 1). 
0035[03]: @< Open name. 
0035[05]: Text. Text scrap[Grey]="Error recovery point"
0035[25]: @> Close name. 
0035[27]: Text. Text scrap[Grey]="<010>
<010>
6. Previous definition is additive, current is full.<010>
"
0038[01]: @$ Macro defn. 
0038[03]: @< Open name. 
0038[05]: Text. Text scrap[Grey]="Walrus 2"
0038[13]: @> Close name. 
0038[15]: Text. Text scrap[Grey]="+="
0038[17]: @{ Open defn. 
0038[19]: Text. Text scrap[Grey]="Sloth"
0038[24]: @} Close defn. 
0038[26]: Text. Text scrap[White]="<010>
"
0039[01]: @$ Macro defn. 
0039[03]: @< Open name. 
0039[05]: Text. Text scrap[Grey]="Walrus 2"
0039[13]: @> Close name. 
0039[15]: Text. Text scrap[Grey]="=="
0039[17]: @{ Open defn. 
0039[19]: Text. Text scrap[Grey]="Aardvark"
0039[27]: @} Close defn. 
0039[29]: Text. Text scrap[White]="<010>
"
0040[01]: @A New section (Level 1). 
0040[03]: @< Open name. 
0040[05]: Text. Text scrap[Grey]="Error recovery point"
0040[25]: @> Close name. 
0040[27]: Text. Text scrap[Grey]="<010>
<010>
7. Non-first body part of partial has parameter.<010>
"
0043[01]: @$ Macro defn. 
0043[03]: @< Open name. 
0043[05]: Text. Text scrap[Grey]="Unicorn"
0043[12]: @> Close name. 
0043[14]: @( Open param. 
0043[16]: @n Parameter. Parameterno=3.
0043[18]: @} Close param. 
0043[20]: Text. Text scrap[Grey]="+="
0043[22]: @{ Open defn. 
0043[24]: Text. Text scrap[Grey]="Turkey"
0043[30]: @} Close defn. 
0043[32]: Text. Text scrap[White]="<010>
"
0044[01]: @$ Macro defn. 
0044[03]: @< Open name. 
0044[05]: Text. Text scrap[Grey]="Unicorn"
0044[12]: @> Close name. 
0044[14]: @( Open param. 
0044[16]: @n Parameter. Parameterno=3.
0044[18]: @} Close param. 
0044[20]: Text. Text scrap[Grey]="+="
0044[22]: @{ Open defn. 
0044[24]: Text. Text scrap[Grey]="Turkey"
0044[30]: @} Close defn. 
0044[32]: Text. Text scrap[White]="<010>
"
0045[01]: @A New section (Level 1). 
0045[03]: @< Open name. 
0045[05]: Text. Text scrap[Grey]="Error recovery point"
0045[25]: @> Close name. 
0045[27]: Text. Text scrap[Grey]="<010>
<010>
8. Zero or many attributes on non-first body part of additive.<010>
"
0048[01]: @$ Macro defn. 
0048[03]: @< Open name. 
0048[05]: Text. Text scrap[Grey]="Elephant"
0048[13]: @> Close name. 
0048[15]: @Z Zero calls. 
0048[17]: @M Many calls. 
0048[19]: Text. Text scrap[Grey]="+="
0048[21]: @{ Open defn. 
0048[23]: Text. Text scrap[Grey]="Turkey"
0048[29]: @} Close defn. 
0048[31]: Text. Text scrap[White]="<010>
"
0049[01]: @$ Macro defn. 
0049[03]: @< Open name. 
0049[05]: Text. Text scrap[Grey]="Elephant"
0049[13]: @> Close name. 
0049[15]: @Z Zero calls. 
0049[17]: @M Many calls. 
0049[19]: Text. Text scrap[Grey]="+="
0049[21]: @{ Open defn. 
0049[23]: Text. Text scrap[Grey]="Turkey"
0049[29]: @} Close defn. 
0049[31]: Text. Text scrap[White]="<010>
"
0050[01]: @A New section (Level 1). 
0050[03]: @< Open name. 
0050[05]: Text. Text scrap[Grey]="Error recovery point"
0050[25]: @> Close name. 
0050[27]: Text. Text scrap[Grey]="<010>
<010>
9. Check that non-existent formal parameters are caught.<010>
<010>
"
0054[01]: @$ Macro defn. 
0054[03]: @< Open name. 
0054[05]: Text. Text scrap[Grey]="Zero"
0054[09]: @> Close name. 
0054[11]: @Z Zero calls. 
0054[13]: @{ Open defn. 
0054[15]: Text. Text scrap[Grey]="Sloth"
0054[20]: @n Parameter. Parameterno=1.
0054[22]: Text. Text scrap[Grey]="Walrus"
0054[28]: @} Close defn. 
0054[30]: Text. Text scrap[White]="<010>
"
0055[01]: @A New section (Level 1). 
0055[03]: @< Open name. 
0055[05]: Text. Text scrap[Grey]="Error recovery point"
0055[25]: @> Close name. 
0055[27]: Text. Text scrap[White]="<010>
<010>
"
0057[01]: @$ Macro defn. 
0057[03]: @< Open name. 
0057[05]: Text. Text scrap[Grey]="One"
0057[08]: @> Close name. 
0057[10]: @( Open param. 
0057[12]: @n Parameter. Parameterno=1.
0057[14]: @} Close param. 
0057[16]: @Z Zero calls. 
0057[18]: @{ Open defn. 
0057[20]: Text. Text scrap[Grey]="Sloth"
0057[25]: @n Parameter. Parameterno=2.
0057[27]: Text. Text scrap[Grey]="Walrus"
0057[33]: @} Close defn. 
0057[35]: Text. Text scrap[White]="<010>
"
0058[01]: @A New section (Level 1). 
0058[03]: @< Open name. 
0058[05]: Text. Text scrap[Grey]="Error recovery point"
0058[25]: @> Close name. 
0058[27]: Text. Text scrap[White]="<010>
<010>
"
0060[01]: @$ Macro defn. 
0060[03]: @< Open name. 
0060[05]: Text. Text scrap[Grey]="Many"
0060[09]: @> Close name. 
0060[11]: @( Open param. 
0060[13]: @n Parameter. Parameterno=7.
0060[15]: @} Close param. 
0060[17]: @Z Zero calls. 
0060[19]: @{ Open defn. 
0060[21]: Text. Text scrap[Grey]="Sloth"
0060[26]: @n Parameter. Parameterno=8.
0060[28]: Text. Text scrap[Grey]="Walrus"
0060[34]: @} Close defn. 
0060[36]: Text. Text scrap[White]="<010>
"
0061[01]: @A New section (Level 1). 
0061[03]: @< Open name. 
0061[05]: Text. Text scrap[Grey]="Error recovery point"
0061[25]: @> Close name. 
0061[27]: Text. Text scrap[White]="<010>
"
0062[01]: End Of File. 
============================ End of TOKEN LIST DUMP ============================


========================== Start of MACRO TABLE DUMP ===========================


------------------- Start of Macro Dump --------------------
Macro Name  : "Elephant"
Defined?    : Yes.
Parameters  : 0
Additive?   : Yes.
Zero Calls? : Yes.
Many Calls? : Yes.
Output File?: No.
Call list   :
Macro body  :

--Start of List of Body Parts--
This macro has 1 body part.
Body part 1: Seqnum=4, Pos(L,C)=(48,3), Expression follows:

---- Start of Expression ----

----- Start Text Element -----
Text scrap[Grey]="Turkey"
------ End Text Element ------

----- End of Expression -----

---End of List of Body Parts---

-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Many"
Defined?    : Yes.
Parameters  : 7
Additive?   : No.
Zero Calls? : Yes.
Many Calls? : No.
Output File?: No.
Call list   :
Macro body  :

--Start of List of Body Parts--
This macro has 1 body part.
Body part 1: Seqnum=7, Pos(L,C)=(60,3), Expression follows:

---- Start of Expression ----

----- Start Text Element -----
Text scrap[Grey]="Sloth"
------ End Text Element ------


-- Start Parameter Element --
Parameter number=8.
Parameter is of macro "Many".
--- End Parameter Element ---


----- Start Text Element -----
Text scrap[Grey]="Walrus"
------ End Text Element ------

----- End of Expression -----

---End of List of Body Parts---

-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "One"
Defined?    : Yes.
Parameters  : 1
Additive?   : No.
Zero Calls? : Yes.
Many Calls? : No.
Output File?: No.
Call list   :
Macro body  :

--Start of List of Body Parts--
This macro has 1 body part.
Body part 1: Seqnum=6, Pos(L,C)=(57,3), Expression follows:

---- Start of Expression ----

----- Start Text Element -----
Text scrap[Grey]="Sloth"
------ End Text Element ------


-- Start Parameter Element --
Parameter number=2.
Parameter is of macro "One".
--- End Parameter Element ---


----- Start Text Element -----
Text scrap[Grey]="Walrus"
------ End Text Element ------

----- End of Expression -----

---End of List of Body Parts---

-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Sloth 1"
Defined?    : No.
-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Sloth 2"
Defined?    : No.
-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Sloth 3"
Defined?    : No.
-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Sloth 4"
Defined?    : No.
-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Sloth 5"
Defined?    : No.
-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Unicorn"
Defined?    : Yes.
Parameters  : 3
Additive?   : Yes.
Zero Calls? : No.
Many Calls? : No.
Output File?: No.
Call list   :
Macro body  :

--Start of List of Body Parts--
This macro has 1 body part.
Body part 1: Seqnum=3, Pos(L,C)=(43,3), Expression follows:

---- Start of Expression ----

----- Start Text Element -----
Text scrap[Grey]="Turkey"
------ End Text Element ------

----- End of Expression -----

---End of List of Body Parts---

-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Walrus 1"
Defined?    : Yes.
Parameters  : 0
Additive?   : No.
Zero Calls? : No.
Many Calls? : No.
Output File?: No.
Call list   :
Macro body  :

--Start of List of Body Parts--
This macro has 1 body part.
Body part 1: Seqnum=1, Pos(L,C)=(33,3), Expression follows:

---- Start of Expression ----

----- Start Text Element -----
Text scrap[Grey]="Sloth"
------ End Text Element ------

----- End of Expression -----

---End of List of Body Parts---

-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Walrus 2"
Defined?    : Yes.
Parameters  : 0
Additive?   : Yes.
Zero Calls? : No.
Many Calls? : No.
Output File?: No.
Call list   :
Macro body  :

--Start of List of Body Parts--
This macro has 1 body part.
Body part 1: Seqnum=2, Pos(L,C)=(38,3), Expression follows:

---- Start of Expression ----

----- Start Text Element -----
Text scrap[Grey]="Sloth"
------ End Text Element ------

----- End of Expression -----

---End of List of Body Parts---

-------------------- End of Macro Dump ---------------------



------------------- Start of Macro Dump --------------------
Macro Name  : "Zero"
Defined?    : Yes.
Parameters  : 0
Additive?   : No.
Zero Calls? : Yes.
Many Calls? : No.
Output File?: No.
Call list   :
Macro body  :

--Start of List of Body Parts--
This macro has 1 body part.
Body part 1: Seqnum=5, Pos(L,C)=(54,3), Expression follows:

---- Start of Expression ----

----- Start Text Element -----
Text scrap[Grey]="Sloth"
------ End Text Element ------


-- Start Parameter Element --
Parameter number=1.
Parameter is of macro "Zero".
--- End Parameter Element ---


----- Start Text Element -----
Text scrap[Grey]="Walrus"
------ End Text Element ------

----- End of Expression -----

---End of List of Body Parts---

-------------------- End of Macro Dump ---------------------



=========================== End of MACRO TABLE DUMP ============================


========================= Start of DOCUMENT LIST DUMP ==========================


TEXT COMPONENT: Pos(L,C)=(1,1). 

-- Start of Text Scrap List --
Text scrap[Grey]="PR08: Test semantic checking of macro definitions.<010>
<010>
Trip parser to be sure that we won't get any output files!<010>
"
--- End of Text Scrap List ---


TEXT COMPONENT: Pos(L,C)=(4,3). 

-- Start of Text Scrap List --
Text scrap[Grey]="<010>
<010>
1. File macro has parameters. Error.<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "1", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(8,27). 

-- Start of Text Scrap List --
Text scrap[Grey]="<010>
<010>
2. File macro is additive. Error.<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "2", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(12,27). 

-- Start of Text Scrap List --
Text scrap[Grey]="<010>
<010>
3. File macro has too long a name. The test name has 1200 characters. Err.<010>
Note: This test can't test the error message if the maximum length of a<010>
macro name is less than the maximum length of a file name as the name<010>
error is caught first.<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "3", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(20,27). 

-- Start of Text Scrap List --
Text scrap[Grey]="<010>
<010>
4. File macro has zero or many attributes. Error.<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "4", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(24,27). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "5", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(27,27). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "6", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(30,27). 

-- Start of Text Scrap List --
Text scrap[Grey]="<010>
<010>
5. Previous definition is full, current is additive.<010>
"
--- End of Text Scrap List ---


MACRO DEFINITION COMPONENT: Pos(L,C)=(33,1). 
Part 1 of macro @<Walrus 1@>.

TEXT COMPONENT: Pos(L,C)=(33,26). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "7", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(35,27). 

-- Start of Text Scrap List --
Text scrap[Grey]="<010>
<010>
6. Previous definition is additive, current is full.<010>
"
--- End of Text Scrap List ---


MACRO DEFINITION COMPONENT: Pos(L,C)=(38,1). 
Part 1 of macro @<Walrus 2@>.

TEXT COMPONENT: Pos(L,C)=(38,26). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "8", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(40,27). 

-- Start of Text Scrap List --
Text scrap[Grey]="<010>
<010>
7. Non-first body part of partial has parameter.<010>
"
--- End of Text Scrap List ---


MACRO DEFINITION COMPONENT: Pos(L,C)=(43,1). 
Part 1 of macro @<Unicorn@>.

TEXT COMPONENT: Pos(L,C)=(43,32). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "9", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(45,27). 

-- Start of Text Scrap List --
Text scrap[Grey]="<010>
<010>
8. Zero or many attributes on non-first body part of additive.<010>
"
--- End of Text Scrap List ---


MACRO DEFINITION COMPONENT: Pos(L,C)=(48,1). 
Part 1 of macro @<Elephant@>.

TEXT COMPONENT: Pos(L,C)=(48,31). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "10", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(50,27). 

-- Start of Text Scrap List --
Text scrap[Grey]="<010>
<010>
9. Check that non-existent formal parameters are caught.<010>
<010>
"
--- End of Text Scrap List ---


MACRO DEFINITION COMPONENT: Pos(L,C)=(54,1). 
Part 1 of macro @<Zero@>.

TEXT COMPONENT: Pos(L,C)=(54,30). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "11", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(55,27). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
<010>
"
--- End of Text Scrap List ---


MACRO DEFINITION COMPONENT: Pos(L,C)=(57,1). 
Part 1 of macro @<One@>.

TEXT COMPONENT: Pos(L,C)=(57,35). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "12", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(58,27). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
<010>
"
--- End of Text Scrap List ---


MACRO DEFINITION COMPONENT: Pos(L,C)=(60,1). 
Part 1 of macro @<Many@>.

TEXT COMPONENT: Pos(L,C)=(60,36). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
"
--- End of Text Scrap List ---


TYPESETTER DIRECTIVE COMPONENT: 
   Section "13", Section name="Error recovery point".

TEXT COMPONENT: Pos(L,C)=(61,27). 

-- Start of Text Scrap List --
Text scrap[White]="<010>
"
--- End of Text Scrap List ---


========================== End of DOCUMENT LIST DUMP ===========================


Global Local| Input File
------------+-------------------------------------------------------------------
     1     1| PR08: Test semantic checking of macro definitions.
     2     2| 
     3     3| Trip parser to be sure that we won't get any output files!
     4     4| @>
       Error|.^The parser was at the top level and was expecting
            |.^one of: {Directive, Text, Macro definition, EOF}.
     5     5| 
     6     6| 1. File macro has parameters. Error.
     7     7| @O@<Sloth 1@>@(@3@)@{Walrus@}
            |...^Macro definition ignored.
       Error|................^Macros attached to output files cannot be parameterized.
            |................^Reason: No actual parameters would be available during
            |................^        output file generation.
            |....................^Skipping after error to the next major construct...
     8     8| @A@<Error recovery point@>
            |.^...skipped to here after the error.
     9     9| 
    10    10| 2. File macro is additive. Error.
    11    11| @O@<Sloth 2@>+=@{Walrus@}
            |...^Macro definition ignored.
       Error|..............^Macros attached to output files cannot be additive.
            |..............^Reason: Preventing this makes it easy to find output
            |..............^file macros later, because there will be exactly one
            |..............^@O declaration in the input file for each output file.
            |..............^To do what you are trying to do, just create an additive
            |..............^bridging macro, like this:
            |..............^   @O@<prog.c@>@{@<Bridge@>@}
            |..............^   @$@<Bridge@>+=@{void stringhack()...@}
            |..............^   @$@<Bridge@>+=@{main()...@}
            |................^Skipping after error to the next major construct...
    12    12| @A@<Error recovery point@>
            |.^...skipped to here after the error.
    13    13| 
    14    14| 3. File macro has too long a name. The test name has 1200 characters. Err.
    15    15| Note: This test can't test the error message if the maximum length of a
    16    16| macro name is less than the maximum length of a file name as the name
    17    17| error is caught first.
    18    18| @p maximum_input_line_length = infinity
    19    19| @O@<1234567890(elided by comp.sources.unix moderator)1234567890@>@{@}
       Error|.....^Name is too long.
            |.....^The maximum length of a legal name is 80 characters.
            |.....^Skipping after error to the next major construct...
    20    20| @A@<Error recovery point@>
            |.^...skipped to here after the error.
    21    21| 
    22    22| 4. File macro has zero or many attributes. Error.
    23    23| @O@<Sloth 3@>@Z@{Walrus@}
            |...^Macro definition ignored.
       Error|..............^Macros attached to output files cannot have @Z or @M.
            |..............^Reason: They are always called once to generate their
            |..............^output file and they cannot be called from other macros.
            |..............^Hence they are always called exactly once and so there
            |..............^can be no need for @Z or @M in their declarations.
            |................^Skipping after error to the next major construct...
    24    24| @A@<Error recovery point@>
            |.^...skipped to here after the error.
    25    25| 
    26    26| @O@<Sloth 4@>@M@{Walrus@}
            |...^Macro definition ignored.
       Error|..............^Macros attached to output files cannot have @Z or @M.
            |..............^Reason: They are always called once to generate their
            |..............^output file and they cannot be called from other macros.
            |..............^Hence they are always called exactly once and so there
            |..............^can be no need for @Z or @M in their declarations.
            |................^Skipping after error to the next major construct...
    27    27| @A@<Error recovery point@>
            |.^...skipped to here after the error.
    28    28| 
    29    29| @O@<Sloth 5@>@Z@M@{Walrus@}
            |...^Macro definition ignored.
       Error|..............^Macros attached to output files cannot have @Z or @M.
            |..............^Reason: They are always called once to generate their
            |..............^output file and they cannot be called from other macros.
            |..............^Hence they are always called exactly once and so there
            |..............^can be no need for @Z or @M in their declarations.
            |..................^Skipping after error to the next major construct...
    30    30| @A@<Error recovery point@>
            |.^...skipped to here after the error.
    31    31| 
    32    32| 5. Previous definition is full, current is additive.
    33    33| @$@<Walrus 1@>==@{Sloth@}
    34    34| @$@<Walrus 1@>+=@{Aardvark@}
       Error|...^A full definition of this macro appears at line 33.
            |...^Full and additive definitions of the same macro cannot coexist.
            |...^Macro definition ignored.
            |.................^Skipping after error to the next major construct...
    35    35| @A@<Error recovery point@>
            |.^...skipped to here after the error.
    36    36| 
    37    37| 6. Previous definition is additive, current is full.
    38    38| @$@<Walrus 2@>+=@{Sloth@}
    39    39| @$@<Walrus 2@>==@{Aardvark@}
       Error|...^An additive definition of this macro appears at line 38.
            |...^Full and additive definitions of the same macro cannot coexist.
            |...^Macro definition ignored.
            |.................^Skipping after error to the next major construct...
    40    40| @A@<Error recovery point@>
            |.^...skipped to here after the error.
    41    41| 
    42    42| 7. Non-first body part of partial has parameter.
    43    43| @$@<Unicorn@>@(@3@)+=@{Turkey@}
    44    44| @$@<Unicorn@>@(@3@)+=@{Turkey@}
            |...^Macro definition ignored.
       Error|................^The formal parameter list of an additive macro
            |................^must be placed only in the first definition part.
            |................^The first part of this macro appears at line 43.
            |......................^Skipping after error to the next major construct...
    45    45| @A@<Error recovery point@>
            |.^...skipped to here after the error.
    46    46| 
    47    47| 8. Zero or many attributes on non-first body part of additive.
    48    48| @$@<Elephant@>@Z@M+=@{Turkey@}
    49    49| @$@<Elephant@>@Z@M+=@{Turkey@}
            |...^Macro definition ignored.
       Error|...............^@Z and @M modifiers for additive macros must
            |...............^be placed only in the first definition part.
            |...............^The first part of this macro appears at line 48.
            |.....................^Skipping after error to the next major construct...
    50    50| @A@<Error recovery point@>
            |.^...skipped to here after the error.
    51    51| 
    52    52| 9. Check that non-existent formal parameters are caught.
    53    53| 
    54    54| @$@<Zero@>@Z@{Sloth@1Walrus@}
       Error|....................^Macro being defined has only 0 parameters.
    55    55| @A@<Error recovery point@>
    56    56| 
    57    57| @$@<One@>@(@1@)@Z@{Sloth@2Walrus@}
       Error|.........................^Macro being defined has only 1 parameter.
    58    58| @A@<Error recovery point@>
    59    59| 
    60    60| @$@<Many@>@(@7@)@Z@{Sloth@8Walrus@}
       Error|..........................^Macro being defined has only 7 parameters.
    61    61| @A@<Error recovery point@>
            | <End-Of-File>
------------+-------------------------------------------------------------------

There were 14 Errors.
