summaryrefslogtreecommitdiff
path: root/web/funnelAC/answers/pr04.lis
diff options
context:
space:
mode:
Diffstat (limited to 'web/funnelAC/answers/pr04.lis')
-rw-r--r--web/funnelAC/answers/pr04.lis656
1 files changed, 656 insertions, 0 deletions
diff --git a/web/funnelAC/answers/pr04.lis b/web/funnelAC/answers/pr04.lis
new file mode 100644
index 0000000000..24419c1b15
--- /dev/null
+++ b/web/funnelAC/answers/pr04.lis
@@ -0,0 +1,656 @@
+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 34 3A 20 54 65 73 74 20 74 68 65 20 64 | PR04: Test the d |
+| 65 66 69 6E 69 74 69 6F 6E 20 6F 66 20 6F 72 64 | efinition of ord |
+| 69 6E 61 72 79 20 6D 61 63 72 6F 73 2E 0A 0A 31 | inary macros...1 |
+| 2E 20 54 65 73 74 20 61 6E 20 6F 72 64 69 6E 61 | . Test an ordina |
+| 72 79 20 6D 61 63 72 6F 20 64 65 66 69 6E 69 74 | ry macro definit |
+| 69 6F 6E 2E 0A 40 24 40 3C 4F 72 64 69 6E 61 72 | ion..@$@<Ordinar |
+| 79 40 3E 40 7B 54 68 65 20 74 65 78 74 20 6F 66 | y@>@{The text of |
+| 20 6F 72 64 69 6E 61 72 79 40 7D 0A 0A 32 2E 20 | ordinary@}..2. |
+| 54 65 73 74 20 61 6E 20 6F 72 64 69 6E 61 72 79 | Test an ordinary |
+| 20 64 65 66 69 6E 69 74 69 6F 6E 20 75 73 69 6E | definition usin |
+| 67 20 61 20 71 75 69 63 6B 6E 61 6D 65 2E 0A 40 | g a quickname..@ |
+| 24 40 23 7C 40 7B 54 68 65 20 74 65 78 74 20 6F | $@#|@{The text o |
+| 66 20 6F 72 64 69 6E 61 72 79 40 7D 0A 0A 33 2E | f ordinary@}..3. |
+| 20 54 65 73 74 20 61 20 6E 61 6D 65 20 74 68 61 | Test a name tha |
+| 74 20 69 6E 63 6C 75 64 65 73 20 45 4F 4C 2E 0A | t includes EOL.. |
+| 40 24 40 3C 54 68 69 73 20 6E 61 6D 65 20 69 73 | @$@<This name is |
+| 20 69 6C 6C 65 67 61 6C 20 62 65 63 61 75 73 65 | illegal because |
+| 0A 69 74 20 63 72 6F 73 73 65 73 20 61 20 6C 69 | .it crosses a li |
+| 6F 6E 40 3E 40 7B 41 6E 64 20 70 65 6F 70 6C 65 | on@>@{And people |
+| 20 77 68 6F 20 63 72 6F 73 73 20 6C 69 6F 6E 73 | who cross lions |
+| 20 74 65 6E 64 20 74 6F 20 67 65 74 20 65 61 74 | tend to get eat |
+| 65 6E 2E 40 7D 0A 40 41 40 3C 45 72 72 6F 72 20 | en.@}.@A@<Error |
+| 52 65 63 6F 76 65 72 79 20 50 6F 69 6E 74 40 3E | Recovery Point@> |
+| 0A 0A 34 2E 20 54 65 73 74 20 74 68 65 20 6D 69 | ..4. Test the mi |
+| 6E 69 6D 75 6D 20 6C 65 6E 67 74 68 20 6E 61 6D | nimum length nam |
+| 65 20 28 74 68 65 20 65 6D 70 74 79 20 6E 61 6D | e (the empty nam |
+| 65 29 2E 0A 40 24 40 3C 40 3E 40 7B 54 68 65 20 | e)..@$@<@>@{The |
+| 65 6D 70 74 79 20 6D 61 63 72 6F 20 6E 61 6D 65 | empty macro name |
+| 20 69 73 20 71 75 69 74 65 20 6C 65 67 61 6C 20 | is quite legal |
+| 69 6E 20 46 75 6E 6E 65 6C 57 65 62 2E 40 7D 0A | in FunnelWeb.@}. |
+| 0A 35 2E 20 54 65 73 74 20 61 20 6E 61 6D 65 20 | .5. Test a name |
+| 61 74 20 74 68 65 20 6D 61 78 69 6D 75 6D 20 6E | at the maximum n |
+| 61 6D 65 20 6C 65 6E 67 74 68 20 6C 69 6D 69 74 | ame length limit |
+| 20 28 38 30 29 2E 0A 4F 4E 6C 79 20 74 68 65 20 | (80)..ONly the |
+| 73 65 63 6F 6E 64 20 6F 66 20 74 68 65 20 74 77 | second of the tw |
+| 6F 20 6D 61 63 72 6F 73 20 73 68 6F 75 6C 64 20 | o macros should |
+| 67 65 6E 65 72 61 74 65 20 61 6E 20 65 72 72 6F | generate an erro |
+| 72 2E 0A 40 70 20 6D 61 78 69 6D 75 6D 5F 69 6E | r..@p maximum_in |
+| 70 75 74 5F 6C 69 6E 65 5F 6C 65 6E 67 74 68 20 | put_line_length |
+| 3D 20 31 30 30 0A 40 24 40 3C 31 32 33 34 35 36 | = 100.@$@<123456 |
+| 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 40 3E 40 7B 40 7D | 1234567890@>@{@} |
+| 0A 40 24 40 3C 31 32 33 34 35 36 37 38 39 30 31 | .@$@<12345678901 |
+| 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 | 2345678901234567 |
+| 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 | 8901234567890123 |
+| 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 | 4567890123456789 |
+| 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 | 0123456789012345 |
+| 36 37 38 39 30 31 40 3E 40 7B 40 7D 0A 40 41 40 | 678901@>@{@}.@A@ |
+| 3C 45 72 72 6F 72 20 52 65 63 6F 76 65 72 79 20 | <Error Recovery |
+| 50 6F 69 6E 74 40 3E 0A 0A 36 2E 20 54 65 73 74 | Point@>..6. Test |
+| 20 6E 61 6D 65 73 20 77 69 74 68 20 61 6C 6C 20 | names with all |
+| 6C 65 67 61 6C 20 63 68 61 72 61 63 74 65 72 73 | legal characters |
+| 2E 20 54 68 65 72 65 20 73 68 6F 75 6C 64 20 62 | . There should b |
+| 65 20 6E 6F 20 65 72 72 6F 72 73 2E 0A 40 24 40 | e no errors..@$@ |
+| 3C 20 21 22 23 24 25 27 28 29 2A 2B 2C 2D 2E 2F | < !"#$%'()*+,-./ |
+| 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F | 0123456789:;<=>? |
+| 40 3E 40 7B 40 7D 0A 40 24 40 3C 41 42 43 44 45 | @>@{@}.@$@<ABCDE |
+| 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 | FGHIJKLMNOPQRSTU |
+| 56 57 58 59 5A 5B 5C 5D 5E 5F 60 40 3E 40 7B 40 | VWXYZ[\]^_`@>@{@ |
+| 7D 0A 40 24 40 3C 61 62 63 64 65 66 67 68 69 6A | }.@$@<abcdefghij |
+| 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A | klmnopqrstuvwxyz |
+| 7B 7C 7D 7E 40 3E 40 7B 40 7D 0A 0A 37 2E 20 54 | {|}~@>@{@}..7. T |
+| 65 73 74 20 61 20 6E 61 6D 65 20 74 68 61 74 20 | est a name that |
+| 68 61 73 20 69 6E 73 65 72 74 65 64 20 74 65 78 | has inserted tex |
+| 74 20 73 65 71 75 65 6E 63 65 73 2E 0A 0A 40 24 | t sequences...@$ |
+| 40 3C 40 5E 44 28 30 36 35 29 40 40 40 3E 3D 3D | @<@^D(065)@@@>== |
+| 40 7B 40 7D 0A 0A 0A | @{@}... |
++-------------------------------------------------+------------------+
+
+
+=========================== Start of LINE LIST DUMP ============================
+
+Globl Local| Text
+-----------+--------------------------------------------------------------------
+00001 00001| PR04: Test the definition of ordinary macros.<010>
+00002 00002| <010>
+00003 00003| 1. Test an ordinary macro definition.<010>
+00004 00004| @$@<Ordinary@>@{The text of ordinary@}<010>
+00005 00005| <010>
+00006 00006| 2. Test an ordinary definition using a quickname.<010>
+00007 00007| @$@#|@{The text of ordinary@}<010>
+00008 00008| <010>
+00009 00009| 3. Test a name that includes EOL.<010>
+00010 00010| @$@<This name is illegal because<010>
+00011 00011| it crosses a lion@>@{And people who cross lions tend to get eaten.@}<010>
+00012 00012| @A@<Error Recovery Point@><010>
+00013 00013| <010>
+00014 00014| 4. Test the minimum length name (the empty name).<010>
+00015 00015| @$@<@>@{The empty macro name is quite legal in FunnelWeb.@}<010>
+00016 00016| <010>
+00017 00017| 5. Test a name at the maximum name length limit (80).<010>
+00018 00018| ONly the second of the two macros should generate an error.<010>
+00019 00019| @p maximum_input_line_length = 100<010>
+00020 00020| @$@<12345678901234567890123456789012345678901234567890123456789012345678901234567890@>@{@}<010>
+00021 00021| @$@<123456789012345678901234567890123456789012345678901234567890123456789012345678901@>@{@}<010>
+00022 00022| @A@<Error Recovery Point@><010>
+00023 00023| <010>
+00024 00024| 6. Test names with all legal characters. There should be no errors.<010>
+00025 00025| @$@< !"#$%'()*+,-./0123456789:;<=>?@>@{@}<010>
+00026 00026| @$@<ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@>@{@}<010>
+00027 00027| @$@<abcdefghijklmnopqrstuvwxyz{|}~@>@{@}<010>
+00028 00028| <010>
+00029 00029| 7. Test a name that has inserted text sequences.<010>
+00030 00030| <010>
+00031 00031| @$@<@^D(065)@@@>==@{@}<010>
+00032 00032| <010>
+00033 00033| <010>
+00034 00034| <End-Of-File><010>
+-----------+--------------------------------------------------------------------
+Globl Local| Text
+
+============================ End of LINE LIST DUMP =============================
+
+
+=========================== Start of TOKEN LIST DUMP ===========================
+
+Summary: There are 85 tokens in the token list.
+
+Line[Column]: Token Description
+-------------------------------
+
+0001[01]: Text. Text scrap[Grey]="PR04: Test the definition of ordinary macros.<010>
+<010>
+1. Test an ordinary macro definition.<010>
+"
+0004[01]: @$ Macro defn.
+0004[03]: @< Open name.
+0004[05]: Text. Text scrap[Grey]="Ordinary"
+0004[13]: @> Close name.
+0004[15]: @{ Open defn.
+0004[17]: Text. Text scrap[Grey]="The text of ordinary"
+0004[37]: @} Close defn.
+0004[39]: Text. Text scrap[Grey]="<010>
+<010>
+2. Test an ordinary definition using a quickname.<010>
+"
+0007[01]: @$ Macro defn.
+0007[03]: @# Name. Character='|'.
+0007[06]: @{ Open defn.
+0007[08]: Text. Text scrap[Grey]="The text of ordinary"
+0007[28]: @} Close defn.
+0007[30]: Text. Text scrap[Grey]="<010>
+<010>
+3. Test a name that includes EOL.<010>
+"
+0010[01]: @$ Macro defn.
+0010[03]: @< Open name.
+0010[05]: Text. Text scrap[Grey]="This name is illegal because<010>
+it crosses a lion"
+0011[18]: @> Close name.
+0011[20]: @{ Open defn.
+0011[22]: Text. Text scrap[Grey]="And people who cross lions tend to get eaten."
+0011[67]: @} Close defn.
+0011[69]: 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>
+4. Test the minimum length name (the empty name).<010>
+"
+0015[01]: @$ Macro defn.
+0015[03]: @< Open name.
+0015[05]: @> Close name.
+0015[07]: @{ Open defn.
+0015[09]: Text. Text scrap[Grey]="The empty macro name is quite legal in FunnelWeb."
+0015[58]: @} Close defn.
+0015[60]: Text. Text scrap[Grey]="<010>
+<010>
+5. Test a name at the maximum name length limit (80).<010>
+ONly the second of the two macros should generate an error.<010>
+"
+0020[01]: @$ Macro defn.
+0020[03]: @< Open name.
+0020[05]: Text. Text scrap[Grey]="12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+0020[85]: @> Close name.
+0020[87]: @{ Open defn.
+0020[89]: @} Close defn.
+0020[91]: Text. Text scrap[White]="<010>
+"
+0021[01]: @$ Macro defn.
+0021[03]: @< Open name.
+0021[05]: Text. Text scrap[Grey]="123456789012345678901234567890123456789012345678901234567890123456789012345678901"
+0021[86]: @> Close name.
+0021[88]: @{ Open defn.
+0021[90]: @} Close defn.
+0021[92]: Text. Text scrap[White]="<010>
+"
+0022[01]: @A New section (Level 1).
+0022[03]: @< Open name.
+0022[05]: Text. Text scrap[Grey]="Error Recovery Point"
+0022[25]: @> Close name.
+0022[27]: Text. Text scrap[Grey]="<010>
+<010>
+6. Test names with all legal characters. There should be no errors.<010>
+"
+0025[01]: @$ Macro defn.
+0025[03]: @< Open name.
+0025[05]: Text. Text scrap[Grey]=" !"#$%'()*+,-./0123456789:;<=>?"
+0025[36]: @> Close name.
+0025[38]: @{ Open defn.
+0025[40]: @} Close defn.
+0025[42]: Text. Text scrap[White]="<010>
+"
+0026[01]: @$ Macro defn.
+0026[03]: @< Open name.
+0026[05]: Text. Text scrap[Grey]="ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`"
+0026[37]: @> Close name.
+0026[39]: @{ Open defn.
+0026[41]: @} Close defn.
+0026[43]: Text. Text scrap[White]="<010>
+"
+0027[01]: @$ Macro defn.
+0027[03]: @< Open name.
+0027[05]: Text. Text scrap[Grey]="abcdefghijklmnopqrstuvwxyz{|}~"
+0027[35]: @> Close name.
+0027[37]: @{ Open defn.
+0027[39]: @} Close defn.
+0027[41]: Text. Text scrap[Grey]="<010>
+<010>
+7. Test a name that has inserted text sequences.<010>
+<010>
+"
+0031[01]: @$ Macro defn.
+0031[03]: @< Open name.
+0031[05]: Text. Text scrap[Grey]="A"
+0031[13]: Text. Text scrap[Grey]="@"
+0031[15]: @> Close name.
+0031[17]: Text. Text scrap[Grey]="=="
+0031[19]: @{ Open defn.
+0031[21]: @} Close defn.
+0031[23]: Text. Text scrap[White]="<010>
+<010>
+<010>
+"
+0034[01]: End Of File.
+============================ End of TOKEN LIST DUMP ============================
+
+
+========================== Start of MACRO TABLE DUMP ===========================
+
+
+------------------- Start of Macro Dump --------------------
+Macro Name : ""
+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=3, Pos(L,C)=(15,3), Expression follows:
+
+---- Start of Expression ----
+
+----- Start Text Element -----
+Text scrap[Grey]="The empty macro name is quite legal in FunnelWeb."
+------ End Text Element ------
+
+----- End of Expression -----
+
+---End of List of Body Parts---
+
+-------------------- End of Macro Dump ---------------------
+
+
+
+------------------- Start of Macro Dump --------------------
+Macro Name : " !"#$%'()*+,-./0123456789:;<=>?"
+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=5, Pos(L,C)=(25,3), Expression follows:
+
+---- Start of Expression ----
+----- End of Expression -----
+
+---End of List of Body Parts---
+
+-------------------- End of Macro Dump ---------------------
+
+
+
+------------------- Start of Macro Dump --------------------
+Macro Name : "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+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=4, Pos(L,C)=(20,3), Expression follows:
+
+---- Start of Expression ----
+----- End of Expression -----
+
+---End of List of Body Parts---
+
+-------------------- End of Macro Dump ---------------------
+
+
+
+------------------- Start of Macro Dump --------------------
+Macro Name : "A@"
+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=8, Pos(L,C)=(31,3), Expression follows:
+
+---- Start of Expression ----
+----- End of Expression -----
+
+---End of List of Body Parts---
+
+-------------------- End of Macro Dump ---------------------
+
+
+
+------------------- Start of Macro Dump --------------------
+Macro Name : "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`"
+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=6, Pos(L,C)=(26,3), Expression follows:
+
+---- Start of Expression ----
+----- End of Expression -----
+
+---End of List of Body Parts---
+
+-------------------- End of Macro Dump ---------------------
+
+
+
+------------------- Start of Macro Dump --------------------
+Macro Name : "Ordinary"
+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)=(4,3), Expression follows:
+
+---- Start of Expression ----
+
+----- Start Text Element -----
+Text scrap[Grey]="The text of ordinary"
+------ End Text Element ------
+
+----- End of Expression -----
+
+---End of List of Body Parts---
+
+-------------------- End of Macro Dump ---------------------
+
+
+
+------------------- Start of Macro Dump --------------------
+Macro Name : "abcdefghijklmnopqrstuvwxyz{|}~"
+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=7, Pos(L,C)=(27,3), Expression follows:
+
+---- Start of Expression ----
+----- End of Expression -----
+
+---End of List of Body Parts---
+
+-------------------- End of Macro Dump ---------------------
+
+
+
+------------------- Start of Macro Dump --------------------
+Macro Name : "|"
+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=2, Pos(L,C)=(7,3), Expression follows:
+
+---- Start of Expression ----
+
+----- Start Text Element -----
+Text scrap[Grey]="The text of ordinary"
+------ 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]="PR04: Test the definition of ordinary macros.<010>
+<010>
+1. Test an ordinary macro definition.<010>
+"
+--- End of Text Scrap List ---
+
+
+MACRO DEFINITION COMPONENT: Pos(L,C)=(4,1).
+Part 1 of macro @<Ordinary@>.
+
+TEXT COMPONENT: Pos(L,C)=(4,39).
+
+-- Start of Text Scrap List --
+Text scrap[Grey]="<010>
+<010>
+2. Test an ordinary definition using a quickname.<010>
+"
+--- End of Text Scrap List ---
+
+
+MACRO DEFINITION COMPONENT: Pos(L,C)=(7,1).
+Part 1 of macro @<|@>.
+
+TEXT COMPONENT: Pos(L,C)=(7,30).
+
+-- Start of Text Scrap List --
+Text scrap[Grey]="<010>
+<010>
+3. Test a name that includes EOL.<010>
+"
+--- End of Text Scrap List ---
+
+
+TYPESETTER DIRECTIVE COMPONENT:
+ Section "1", Section name="Error Recovery Point".
+
+TEXT COMPONENT: Pos(L,C)=(12,27).
+
+-- Start of Text Scrap List --
+Text scrap[Grey]="<010>
+<010>
+4. Test the minimum length name (the empty name).<010>
+"
+--- End of Text Scrap List ---
+
+
+MACRO DEFINITION COMPONENT: Pos(L,C)=(15,1).
+Part 1 of macro @<@>.
+
+TEXT COMPONENT: Pos(L,C)=(15,60).
+
+-- Start of Text Scrap List --
+Text scrap[Grey]="<010>
+<010>
+5. Test a name at the maximum name length limit (80).<010>
+ONly the second of the two macros should generate an error.<010>
+"
+--- End of Text Scrap List ---
+
+
+MACRO DEFINITION COMPONENT: Pos(L,C)=(20,1).
+Part 1 of macro @<12345678901234567890123456789012345678901234567890123456789012345678901234567890@>.
+
+TEXT COMPONENT: Pos(L,C)=(20,91).
+
+-- Start of Text Scrap List --
+Text scrap[White]="<010>
+"
+--- End of Text Scrap List ---
+
+
+TYPESETTER DIRECTIVE COMPONENT:
+ Section "2", Section name="Error Recovery Point".
+
+TEXT COMPONENT: Pos(L,C)=(22,27).
+
+-- Start of Text Scrap List --
+Text scrap[Grey]="<010>
+<010>
+6. Test names with all legal characters. There should be no errors.<010>
+"
+--- End of Text Scrap List ---
+
+
+MACRO DEFINITION COMPONENT: Pos(L,C)=(25,1).
+Part 1 of macro @< !"#$%'()*+,-./0123456789:;<=>?@>.
+
+TEXT COMPONENT: Pos(L,C)=(25,42).
+
+-- Start of Text Scrap List --
+Text scrap[White]="<010>
+"
+--- End of Text Scrap List ---
+
+
+MACRO DEFINITION COMPONENT: Pos(L,C)=(26,1).
+Part 1 of macro @<ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@>.
+
+TEXT COMPONENT: Pos(L,C)=(26,43).
+
+-- Start of Text Scrap List --
+Text scrap[White]="<010>
+"
+--- End of Text Scrap List ---
+
+
+MACRO DEFINITION COMPONENT: Pos(L,C)=(27,1).
+Part 1 of macro @<abcdefghijklmnopqrstuvwxyz{|}~@>.
+
+TEXT COMPONENT: Pos(L,C)=(27,41).
+
+-- Start of Text Scrap List --
+Text scrap[Grey]="<010>
+<010>
+7. Test a name that has inserted text sequences.<010>
+<010>
+"
+--- End of Text Scrap List ---
+
+
+MACRO DEFINITION COMPONENT: Pos(L,C)=(31,1).
+Part 1 of macro @<A@@>.
+
+TEXT COMPONENT: Pos(L,C)=(31,23).
+
+-- Start of Text Scrap List --
+Text scrap[White]="<010>
+<010>
+<010>
+"
+--- End of Text Scrap List ---
+
+
+========================== End of DOCUMENT LIST DUMP ===========================
+
+
+Global Local| Input File
+------------+-------------------------------------------------------------------
+ 1 1| PR04: Test the definition of ordinary macros.
+ 2 2|
+ 3 3| 1. Test an ordinary macro definition.
+ 4 4| @$@<Ordinary@>@{The text of ordinary@}
+ 5 5|
+ 6 6| 2. Test an ordinary definition using a quickname.
+ 7 7| @$@#|@{The text of ordinary@}
+ 8 8|
+ 9 9| 3. Test a name that includes EOL.
+ 10 10| @$@<This name is illegal because
+ Error|.....^Names cannot cross lines.
+ |.....^Skipping after error to the next major construct...
+ 11 11| it crosses a lion@>@{And people who cross lions tend to get eaten.@}
+ 12 12| @A@<Error Recovery Point@>
+ |.^...skipped to here after the error.
+ 13 13|
+ 14 14| 4. Test the minimum length name (the empty name).
+ 15 15| @$@<@>@{The empty macro name is quite legal in FunnelWeb.@}
+ 16 16|
+ 17 17| 5. Test a name at the maximum name length limit (80).
+ 18 18| ONly the second of the two macros should generate an error.
+ 19 19| @p maximum_input_line_length = 100
+ 20 20| @$@<12345678901234567890123456789012345678901234567890123456789012345678901234567890@>@{@}
+ 21 21| @$@<123456789012345678901234567890123456789012345678901234567890123456789012345678901@>@{@}
+ Error|.....^Name is too long.
+ |.....^The maximum length of a legal name is 80 characters.
+ |.....^Skipping after error to the next major construct...
+ 22 22| @A@<Error Recovery Point@>
+ |.^...skipped to here after the error.
+ 23 23|
+ 24 24| 6. Test names with all legal characters. There should be no errors.
+ 25 25| @$@< !"#$%'()*+,-./0123456789:;<=>?@>@{@}
+ 26 26| @$@<ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@>@{@}
+ 27 27| @$@<abcdefghijklmnopqrstuvwxyz{|}~@>@{@}
+ 28 28|
+ 29 29| 7. Test a name that has inserted text sequences.
+ 30 30|
+ 31 31| @$@<@^D(065)@@@>==@{@}
+ 32 32|
+ 33 33|
+ | <End-Of-File>
+------------+-------------------------------------------------------------------
+
+There were 2 Errors.