1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
PR09: Test calls and actual parameter lists.
First trip up the parser so we don't get any further.
@>
Now define some macros to call. No error.
@$@<Zero@>@{@}
@$@<One@>@(@1@)@{@}
@$@<Two@>@(@2@)@{@}
@$@<Three@>@(@3@)@{@}
@$@<Nine@>@(@9@)@{@}
@$@#"@{@}
The following test calls should NOT generate any errors.
@$@<Macro containing the test macro calls.@>==@{
1. Test macro call with no parameter list.
@<Zero@>
2. Test macro call with quick name.
@#"
3. Test macro call with one parameter.
@<One@>@(Toucan@)
4. Test macro call with many parameters.
@<Two@>@(Toucan@,Teapot@)
@<Three@>@(Toucan@,Teapot@,Walrus@)
@<Nine@>@(Toucan@,Teapot@,Walrus@,
Toucan@,Teapot@,Walrus@,
Toucan@,Teapot@,Walrus@)
5. Test macro calls with double quotes on parameters.
@<One@>@( @"Toucan@"@)
@<Two@>@(@"Toucan@" @, @"Teapot@"@)
@<Three@>@(@"Toucan@" @,
@"Teapot@" @,
@"Walrus@" @)
@<Nine@>@( @"Toucan@" @, @"Teapot@" @, @"Walrus@" @,
@"Toucan@" @, @"Teapot@" @, @"Walrus@" @,
@"Toucan@" @, @"Teapot@" @, @"Walrus@" @)
7. Test macro calls with mixed double quotes on parameters.
@<Two@>@(@"Toucan@" @,Teapot@)
@<Three@>@(@"Toucan@" @,
@"Teapot@" @,Walrus@)
@<Nine@>@( @"Toucan@" @, @"Teapot@" @, Walrus @,
@"Toucan@" @, Teapot @, @"Walrus@" @,
@"Toucan@" @, @"Teapot@" @, @"Walrus@" @)
@} @! End of macro definition enclosing all these legal tests.
8. Test macro calls with a variety of syntax errors in parameter list.
@$@<Error1@>@{
@<Zero@>@(
@}
@A@<Error recovery point@>
@$@<Error2@>@{
@<Zero@>@)
@}
@A@<Error recovery point@>
@$@<Error3@>@{
@<One@>@(@"Toucan@)
@}
@A@<Error recovery point@>
@$@<Error4@>@{
@<One@>@(@"Toucan@"@"Sloth@"@)
@}
@A@<Error recovery point@>
@$@<Error5@>@{
@<Two@>@(@"Toucan@"Teapot@)
@}
@A@<Error recovery point@>
@$@<Error6@>@{
@<Two@>@(@"Toucan@"Teapot
@}
@A@<Error recovery point@>
@$@<Error7@>@{
@<Two@>@(@"Toucan@"Teapot
@<Three@>@(Toucan@,
@"Teapot@,Walrus
@}
@A@<Error recovery point@>
|