#ifndef I
#const I 0
#endif
#if I < 10
mes I
#const TMP I
#undef I
#const I TMP+1
#undef TMP
#include __FILE__
#endif
なかなかいい感じ。 上限はどのくらいか調べてみたら 31 回でした( 32 回以上でエラー)。
ちゃんとファイルに保存して実行しないとうまく動かないので注意してください。 / カウントダウンしていたのをインクリメントするものに変更しました。
__FILE__ を "hsptmp" に変更すれば保存しなくても実行できるでしょう(標準のスクリプトエディタや hspcmpWrapper.dll を使っていた場合)
#include のネスト制限はもちろんだけど、 #if のネスト制限に引っかかるんですねこれ。 / #endif を消すと、それでもなぜかうまく動く上に #if のネスト制限らしきエラーも出なくなりました、謎。
おまけ : FizzBuzz
#ifndef I
#const I 1
#endif
#if I <= 32
#if I \ 15 == 0
mes "FizzBuzz"
#else
# if I \ 5 == 0
mes "Buzz"
# else
# if I \ 3 == 0
mes "Fizz"
# else
mes I
# endif
# endif
#endif
#const TMP I
#undef I
#const I TMP+1
#undef TMP
#include "hsptmp"
#elif が欲しくなっちゃいますね。
なんとあの Gonbei さんにのっかっていただきました。階乗です。