H. Peter Anvin (Intel) | e99a946 | 2020-06-30 11:51:41 -0700 | [diff] [blame] | 1 | %define EMPTY |
| 2 | |
| 3 | %macro bar 1 |
| 4 | db "bar", __LINE__, %0, %1 |
| 5 | %endmacro |
| 6 | |
| 7 | %macro baz 2 |
| 8 | db "baz", __LINE__, %0, %1, %2 |
| 9 | %endmacro |
| 10 | |
| 11 | %macro nothing 0 |
| 12 | db "nothing", __LINE__, %0 |
| 13 | %endmacro |
| 14 | |
| 15 | %macro xyzzy 1-2 |
| 16 | db "xyzzy", __LINE__, %0, %1, %2, %3 |
| 17 | %endmacro |
| 18 | |
| 19 | %macro vararg 0-* |
| 20 | db "vararg", __LINE__, %0 |
| 21 | %assign %%i 1 |
| 22 | %rep %0 |
| 23 | db "vararg arg ", %%i, %1 |
| 24 | %rotate 1 |
| 25 | %assign %%i %%i + 1 |
| 26 | %endrep |
| 27 | %endmacro |
| 28 | |
| 29 | %macro defargs 1-5 def2, def3, def4, def5 |
| 30 | db "defargs", __LINE__, %0, %1, %2, %3, %4, %5 |
| 31 | %endmacro |
| 32 | |
| 33 | %macro ivar 1 |
| 34 | vararg %1 |
| 35 | %endmacro |
| 36 | |
| 37 | %macro foo 1-2 |
| 38 | db "foo", __LINE__, %0, %1, %2 |
| 39 | bar %2 |
| 40 | bar {%2} |
| 41 | bar %2, |
| 42 | bar {%2}, |
| 43 | baz %1,%2 |
| 44 | baz {%1},{%2} |
| 45 | nothing %1 |
| 46 | nothing %2 |
| 47 | xyzzy "meep",%1,%2, |
| 48 | xyzzy "meep","meep",%1,%2 |
| 49 | xyzzy "alpha","bravo", |
| 50 | xyzzy "with","empty",EMPTY |
| 51 | %endmacro |
| 52 | |
H. Peter Anvin (Intel) | 7f1095a | 2020-06-30 12:54:21 -0700 | [diff] [blame] | 53 | %macro orange 1 |
| 54 | db %{1:1} |
| 55 | %endmacro |
| 56 | |
H. Peter Anvin (Intel) | e99a946 | 2020-06-30 11:51:41 -0700 | [diff] [blame] | 57 | %macro prange1 2-3 |
| 58 | db %{1:2}, 0%3 |
| 59 | %endmacro |
| 60 | |
| 61 | %macro prange2 1-3 'two', 'three' |
| 62 | db %{1:3} |
| 63 | %endmacro |
| 64 | |
| 65 | db 4, |
| 66 | nothing |
| 67 | nothing 1 |
| 68 | nothing ; foo |
| 69 | nothing EMPTY |
| 70 | |
| 71 | flup: foo 1,2 |
| 72 | foo 3 |
| 73 | bar |
| 74 | bar EMPTY |
| 75 | foo 6, |
| 76 | foo 6, ; With space/comment |
| 77 | foo 6,EMPTY |
| 78 | baz 8,EMPTY |
| 79 | foo 6,{} |
| 80 | foo ,5 |
| 81 | |
| 82 | xyzzy 13,14,15, |
| 83 | xyzzy 13,14,15,EMPTY |
| 84 | xyzzy 20,21 |
| 85 | xyzzy 22,23, |
| 86 | xyzzy 24,25,EMPTY |
| 87 | xyzzy 26,27,, |
| 88 | xyzzy 28,29,EMPTY,EMPTY |
| 89 | |
| 90 | vararg |
| 91 | vararg EMPTY |
| 92 | vararg , |
| 93 | vararg 10 |
| 94 | vararg 11, |
| 95 | vararg 12,EMPTY |
| 96 | vararg 13,14,15, |
| 97 | vararg 13,14,15,EMPTY |
| 98 | vararg 20,21 |
| 99 | vararg 22,23, |
| 100 | vararg 24,25,EMPTY |
| 101 | vararg 26,27,, |
| 102 | vararg 28,29,EMPTY,EMPTY |
| 103 | |
| 104 | ivar {} |
| 105 | ivar {EMPTY} |
| 106 | ivar EMPTY |
| 107 | ivar , |
| 108 | ivar {,} |
| 109 | ivar {60} |
| 110 | ivar {61,} |
| 111 | ivar {62,EMPTY} |
| 112 | ivar {63,64,65,} |
| 113 | ivar {63,64,65,EMPTY} |
| 114 | ivar {70,71} |
| 115 | ivar {72,73,} |
| 116 | ivar {74,75,EMPTY} |
| 117 | ivar {76,77,,} |
| 118 | ivar {78,79,EMPTY,EMPTY} |
| 119 | |
| 120 | defargs EMPTY |
| 121 | defargs 91 |
| 122 | defargs 91,92 |
| 123 | defargs 91,92,93 |
| 124 | defargs 91,92,93,94 |
| 125 | defargs 91,92,93,94,95 |
| 126 | defargs , |
| 127 | defargs 91, |
| 128 | defargs 91,92, |
| 129 | defargs 91,92,93, |
| 130 | defargs 91,92,93,94, |
| 131 | defargs 91,92,93,94,95, |
| 132 | |
| 133 | prange1 101 |
| 134 | prange1 101, 102 |
| 135 | prange1 101, 102, 103 |
| 136 | prange2 121 |
| 137 | prange2 121, 122 |
| 138 | prange2 121, 122, 123 |
| 139 | prange2 {121} |
| 140 | prange2 {121,121} |
| 141 | prange2 {121},{122} |
| 142 | prange2 {121},122,{123} |
| 143 | prange2 121,{122,122},123 |
H. Peter Anvin (Intel) | 7f1095a | 2020-06-30 12:54:21 -0700 | [diff] [blame] | 144 | |
| 145 | orange 130 |
| 146 | orange 130, 131 |
| 147 | orange {130, 131} |