PR08: Test semantic checking of macro definitions. Trip parser to be sure that we won't get any output files! @> 1. File macro has parameters. Error. @O@@(@3@)@{Walrus@} @A@ 2. File macro is additive. Error. @O@+=@{Walrus@} @A@ 3. File macro has too long a name. The test name has 1200 characters. Err. Note: This test can't test the error message if the maximum length of a macro name is less than the maximum length of a file name as the name error is caught first. @p maximum_input_line_length = infinity @O@<123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890@>@{@} @A@ 4. File macro has zero or many attributes. Error. @O@@Z@{Walrus@} @A@ @O@@M@{Walrus@} @A@ @O@@Z@M@{Walrus@} @A@ 5. Previous definition is full, current is additive. @$@==@{Sloth@} @$@+=@{Aardvark@} @A@ 6. Previous definition is additive, current is full. @$@+=@{Sloth@} @$@==@{Aardvark@} @A@ 7. Non-first body part of partial has parameter. @$@@(@3@)+=@{Turkey@} @$@@(@3@)+=@{Turkey@} @A@ 8. Zero or many attributes on non-first body part of additive. @$@@Z@M+=@{Turkey@} @$@@Z@M+=@{Turkey@} @A@ 9. Check that non-existent formal parameters are caught. @$@@Z@{Sloth@1Walrus@} @A@ @$@@(@1@)@Z@{Sloth@2Walrus@} @A@ @$@@(@7@)@Z@{Sloth@8Walrus@} @A@