FILE名:FILE_for_xc.hsp
//%2と%4を省略したい場合は""を引数に渡してください
#define for_in(%1,%2,%3,%4,%5,%6):\
if %2=""{%5=0}else{%5=%2}:\
if %4=""{%6=1}else{%6=%4}:\
for %1,%5,%3,%6

#define for2c(%1,%2,%3,%4,%5,%6,%7,%8):\
for_in %1,%2,%3,%4,_for_p2,_for_p4:\
for_in %5,%6,%7,%8,_for_p6,_for_p8

#define for3c(%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11,%12):\
for_in %1,%2,%3,%4,_for_p2,_for_p4:\
for_in %5,%6,%7,%8,_for_p6,_for_p8:\
for_in %9,%10,%11,%12,_for_p10,_for_p12

#define for4c(%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11,%12,%13,%14,%15,%16):\
for_in %1,%2,%3,%4,_for_p2,_for_p4:\
for_in %5,%6,%7,%8,_for_p6,_for_p8:\
for_in %9,%10,%11,%12,_for_p10,_for_p12:\
for_in %13,%14,%15,%16,_for_p14,_for_p16

#define for5c(%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11,%12,%13,%14,%15,%16,%17,%18,%19,%20):\
for_in %1,%2,%3,%4,_for_p2,_for_p4:\
for_in %5,%6,%7,%8,_for_p6,_for_p8:\
for_in %9,%10,%11,%12,_for_p10,_for_p12:\
for_in %13,%14,%15,%16,_for_p14,_for_p16:\
for_in %17,%18,%19,%20,_for_p18,_for_p20

#define next2c next:next
#define next3c next:next:next
#define next4c next:next:next:next
#define next5c next:next:next:next:next

/*以下 TESTCODE
for2c i,"",3,"",ii,"",5,""
logmes str(i)+" "+str(ii)
next2c
for3c i,"",2,"",ii,"",3,"",iii,"",4,""
logmes str(i)+" "+str(ii)+" "+str(iii)
next3c
for4c i,"",2,"",ii,"",3,"",iii,"",4,"",iiii,"",2,""
logmes str(i)+" "+str(ii)+" "+str(iii)+" "+str(iiii)
next4c
for5c i,"",2,"",ii,"",3,"",iii,"",4,"",iiii,"",2,"",iiiii,"",3,""
logmes str(i)+" "+str(ii)+" "+str(iii)+" "+str(iiii)+" "+str(iiiii)
next5c
//	多重loopなのでgotoで脱出してください
for3c i,"",2,"",ii,"",3,"",iii,"",4,""
logmes str(i)+" "+str(ii)+" "+str(iii)
if i==1&&ii==2&&iii==1:goto *loop_end
next3c
*loop_end*/