|
秀丸担当さん、こんにちは。
execmacro 文で、menuarray のように可変個の引数を与えられるようにすることは難
しいでしょうか。
// 理想.mac
execmacro2 $$1, $argv, #argc;
// 現実.mac
if (#argc == 0) execmacro $$1;
else if (#argc == 1) execmacro $$1, $argv[0];
else if (#argc == 2) execmacro $$1, $argv[0], $argv[1];
else if (#argc == 3) execmacro $$1, $argv[0], $argv[1], $argv[2];
else if (#argc == 4) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3];
else if (#argc == 5) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4];
else if (#argc == 6) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5];
else if (#argc == 7) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6];
else if (#argc == 8) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7];
else if (#argc == 9) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8];
else if (#argc == 10) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9];
else if (#argc == 11) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10];
else if (#argc == 12) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11];
else if (#argc == 13) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12];
else if (#argc == 14) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13];
else if (#argc == 15) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14];
else if (#argc == 16) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15];
else if (#argc == 17) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16];
else if (#argc == 18) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17];
else if (#argc == 19) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18];
else if (#argc == 20) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19];
else if (#argc == 21) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20];
else if (#argc == 22) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21];
else if (#argc == 23) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21], $argv[22];
else if (#argc == 24) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21], $argv[22], $argv[23];
else if (#argc == 25) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21], $argv[22], $argv[23], $argv[24];
else if (#argc == 26) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21], $argv[22], $argv[23], $argv[24], $a
rgv[25];
else if (#argc == 27) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21], $argv[22], $argv[23], $argv[24], $a
rgv[25], $argv[26];
else if (#argc == 28) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21], $argv[22], $argv[23], $argv[24], $a
rgv[25], $argv[26], $argv[27];
else if (#argc == 29) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21], $argv[22], $argv[23], $argv[24], $a
rgv[25], $argv[26], $argv[27], $argv[28];
else if (#argc == 30) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21], $argv[22], $argv[23], $argv[24], $a
rgv[25], $argv[26], $argv[27], $argv[28], $argv[29];
else if (#argc == 31) execmacro $$1, $argv[0], $argv[1], $argv[2], $argv[3],
$argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9], $argv[10], $arg
v[11], $argv[12], $argv[13], $argv[14], $argv[15], $argv[16], $argv[17], $ar
gv[18], $argv[19], $argv[20], $argv[21], $argv[22], $argv[23], $argv[24], $a
rgv[25], $argv[26], $argv[27], $argv[28], $argv[29], $argv[30];
ご検討いただければ幸いです。
|
|