Tests for the %ifmacro directives
[platform/upstream/nasm.git] / test / ifmacro.asm
1 ;
2 ; ifmacro.asm
3 ;
4 ; Test of the new ifmacro directive
5 ;
6 ; This file produces a human-readable text file when compiled
7 ; with -f bin
8 ;
9
10 %define LF 10
11
12 %macro dummy 2
13         db 'This is a dummy macro, '
14         db 'arg1 = ', %1, ', '
15         db 'arg2 = ', %2, LF
16 %endmacro
17
18         dummy 'this', 'that'
19
20 %ifdef CR
21         db '%ifdef CR', LF
22 %endif
23
24 %ifdef LF
25         db '%ifdef LF', LF
26 %endif
27
28 %ifmacro dummy 1
29         db '%ifmacro dummy 1', LF
30 %endif
31
32 %ifmacro dummy 2
33         db '%ifmacro dummy 2', LF
34 %endif
35
36 %ifmacro dummy 3
37         db '%ifmacro dummy 3', LF
38 %endif
39
40 %ifmacro dummy 1+
41         db '%ifmacro dummy 1+', LF
42 %endif
43
44 %ifmacro dummy 2+
45         db '%ifmacro dummy 2+', LF
46 %endif
47
48 %ifmacro dummy 3+
49         db '%ifmacro dummy 3+', LF
50 %endif
51
52 %ifmacro dummy
53         db '%ifmacro dummy', LF
54 %endif
55
56 %ifmacro dummy 0-1
57         db '%ifmacro dummy 0-1', LF
58 %endif
59
60 %ifmacro dummy 1-2
61         db '%ifmacro dummy 1-2', LF
62 %endif
63
64 %ifmacro dummy 2-3
65         db '%ifmacro dummy 2-3', LF
66 %endif
67
68 %ifmacro dummy 3-4
69         db '%ifmacro dummy 3-4', LF
70 %endif
71
72 %ifmacro LF
73         db '%ifmacro LF', LF
74 %endif
75
76 %ifndef CR
77         db '%ifndef CR', LF
78 %endif
79
80 %ifndef LF
81         db '%ifndef LF', LF
82 %endif
83
84 %ifnmacro dummy 1
85         db '%ifnmacro dummy 1', LF
86 %endif
87
88 %ifnmacro dummy 2
89         db '%ifnmacro dummy 2', LF
90 %endif
91
92 %ifnmacro dummy 3
93         db '%ifnmacro dummy 3', LF
94 %endif
95
96 %ifnmacro dummy 1+
97         db '%ifnmacro dummy 1+', LF
98 %endif
99
100 %ifnmacro dummy 2+
101         db '%ifnmacro dummy 2+', LF
102 %endif
103
104 %ifnmacro dummy 3+
105         db '%ifnmacro dummy 3+', LF
106 %endif
107
108 %ifnmacro dummy
109         db '%ifnmacro dummy', LF
110 %endif
111
112 %ifnmacro dummy 0-1
113         db '%ifnmacro dummy 0-1', LF
114 %endif
115
116 %ifnmacro dummy 1-2
117         db '%ifnmacro dummy 1-2', LF
118 %endif
119
120 %ifnmacro dummy 2-3
121         db '%ifnmacro dummy 2-3', LF
122 %endif
123
124 %ifnmacro dummy 3-4
125         db '%ifnmacro dummy 3-4', LF
126 %endif
127
128 %ifnmacro LF
129         db '%ifnmacro LF', LF
130 %endif
131
132 %if 0
133 %elifdef CR
134         db '%elifdef CR', CR
135 %endif
136
137 %if 0
138 %elifdef LF
139         db '%elifdef LF', LF
140 %endif
141
142 %if 0
143 %elifmacro dummy 1
144         db '%elifmacro dummy 1', LF
145 %endif
146
147 %if 0
148 %elifmacro dummy 2
149         db '%elifmacro dummy 2', LF
150 %endif
151
152 %if 0
153 %elifmacro dummy 3
154         db '%elifmacro dummy 3', LF
155 %endif
156
157 %if 0
158 %elifmacro dummy 1+
159         db '%elifmacro dummy 1+', LF
160 %endif
161
162 %if 0
163 %elifmacro dummy 2+
164         db '%elifmacro dummy 2+', LF
165 %endif
166
167 %if 0
168 %elifmacro dummy 3+
169         db '%elifmacro dummy 3+', LF
170 %endif
171
172 %if 0
173 %elifmacro dummy
174         db '%elifmacro dummy', LF
175 %endif
176
177 %if 0
178 %elifmacro dummy 0-1
179         db '%elifmacro dummy 0-1', LF
180 %endif
181
182 %if 0
183 %elifmacro dummy 1-2
184         db '%elifmacro dummy 1-2', LF
185 %endif
186
187 %if 0
188 %elifmacro dummy 2-3
189         db '%elifmacro dummy 2-3', LF
190 %endif
191
192 %if 0
193 %elifmacro dummy 3-4
194         db '%elifmacro dummy 3-4', LF
195 %endif
196
197 %if 0
198 %elifmacro LF
199         db '%elifmacro LF', LF
200 %endif
201
202 %if 0
203 %elifndef CR
204         db '%elifndef CR', LF
205 %endif
206
207 %if 0
208 %elifndef LF
209         db '%elifndef LF', LF
210 %endif
211
212 %if 0
213 %elifnmacro dummy 1
214         db '%elifnmacro dummy 1', LF
215 %endif
216
217 %if 0
218 %elifnmacro dummy 2
219         db '%elifnmacro dummy 2', LF
220 %endif
221
222 %if 0
223 %elifnmacro dummy 3
224         db '%elifnmacro dummy 3', LF
225 %endif
226
227 %if 0
228 %elifnmacro dummy 1+
229         db '%elifnmacro dummy 1+', LF
230 %endif
231
232 %if 0
233 %elifnmacro dummy 2+
234         db '%elifnmacro dummy 2+', LF
235 %endif
236
237 %if 0
238 %elifnmacro dummy 3+
239         db '%elifnmacro dummy 3+', LF
240 %endif
241
242 %if 0
243 %elifnmacro dummy
244         db '%elifnmacro dummy', LF
245 %endif
246
247 %if 0
248 %elifnmacro dummy 0-1
249         db '%elifnmacro dummy 0-1', LF
250 %endif
251
252 %if 0
253 %elifnmacro dummy 1-2
254         db '%elifnmacro dummy 1-2', LF
255 %endif
256
257 %if 0
258 %elifnmacro dummy 2-3
259         db '%elifnmacro dummy 2-3', LF
260 %endif
261
262 %if 0
263 %elifnmacro dummy 3-4
264         db '%elifnmacro dummy 3-4', LF
265 %endif
266
267 %if 0
268 %elifnmacro LF
269         db '%elifnmacro LF', LF
270 %endif
271
272 %if 1
273 %elifdef CR
274         db 'bad %elifdef CR', LF
275 %endif
276
277 %if 1
278 %elifdef LF
279         db 'bad %elifdef LF', LF
280 %endif
281
282 %if 1
283 %elifmacro dummy 1
284         db 'bad %elifmacro dummy 1', LF
285 %endif
286
287 %if 1
288 %elifmacro dummy 2
289         db 'bad %elifmacro dummy 2', LF
290 %endif
291
292 %if 1
293 %elifmacro dummy 3
294         db 'bad %elifmacro dummy 3', LF
295 %endif
296
297 %if 1
298 %elifmacro dummy 1+
299         db 'bad %elifmacro dummy 1+', LF
300 %endif
301
302 %if 1
303 %elifmacro dummy 2+
304         db 'bad %elifmacro dummy 2+', LF
305 %endif
306
307 %if 1
308 %elifmacro dummy 3+
309         db 'bad %elifmacro dummy 3+', LF
310 %endif
311
312 %if 1
313 %elifmacro dummy
314         db 'bad %elifmacro dummy', LF
315 %endif
316
317 %if 1
318 %elifmacro dummy 0-1
319         db 'bad %elifmacro dummy 0-1', LF
320 %endif
321
322 %if 1
323 %elifmacro dummy 1-2
324         db 'bad %elifmacro dummy 1-2', LF
325 %endif
326
327 %if 1
328 %elifmacro dummy 2-3
329         db 'bad %elifmacro dummy 2-3', LF
330 %endif
331
332 %if 1
333 %elifmacro dummy 3-4
334         db 'bad %elifmacro dummy 3-4', LF
335 %endif
336
337 %if 1
338 %elifmacro LF
339         db 'bad %elifmacro LF', LF
340 %endif
341
342 %if 1
343 %elifndef CR
344         db 'bad %elifndef CR', LF
345 %endif
346
347 %if 1
348 %elifndef LF
349         db 'bad %elifndef LF', LF
350 %endif
351
352 %if 1
353 %elifnmacro dummy 1
354         db 'bad %elifnmacro dummy 1', LF
355 %endif
356
357 %if 1
358 %elifnmacro dummy 2
359         db 'bad %elifnmacro dummy 2', LF
360 %endif
361
362 %if 1
363 %elifnmacro dummy 3
364         db 'bad %elifnmacro dummy 3', LF
365 %endif
366
367 %if 1
368 %elifnmacro dummy 1+
369         db 'bad %elifnmacro dummy 1+', LF
370 %endif
371
372 %if 1
373 %elifnmacro dummy 2+
374         db 'bad %elifnmacro dummy 2+', LF
375 %endif
376
377 %if 1
378 %elifnmacro dummy 3+
379         db 'bad %elifnmacro dummy 3+', LF
380 %endif
381
382 %if 1
383 %elifnmacro dummy
384         db 'bad %elifnmacro dummy', LF
385 %endif
386
387 %if 1
388 %elifnmacro dummy 0-1
389         db 'bad %elifnmacro dummy 0-1', LF
390 %endif
391
392 %if 1
393 %elifnmacro dummy 1-2
394         db 'bad %elifnmacro dummy 1-2', LF
395 %endif
396
397 %if 1
398 %elifnmacro dummy 2-3
399         db 'bad %elifnmacro dummy 2-3', LF
400 %endif
401
402 %if 1
403 %elifnmacro dummy 3-4
404         db 'bad %elifnmacro dummy 3-4', LF
405 %endif
406
407 %if 1
408 %elifnmacro LF
409         db 'bad %elifnmacro LF', LF
410 %endif
411