while命令の追加

ループ命令として while のサポートを追加。
構文は以下となる:

while (expression) declaration

expresion が 非0 の場合に、以降に続く declaration を実行する。
declaration には declaration_block も含まれるので、ブロックを書くことも可能。
すなわちc言語のwhileに近い。

ブロックを書く場合の例としては、以下のようになる:

dim a;
a = 0;
while (a < 10) {
        print a;
        a = a + 1;
}

ブロックを使わずに、短文の declaration だけを書く場合は、
例えば以下の例のように用いることも可能:

while (1)
        print 1

これは無限ループとなる。
また、if ステートメントも declaration なので、以下のようにも書ける:

while (1)
        if (1)
                print 1

そして、while ステートメント自体も declaration なので、
以下のように入れ子にもできる:

while (1)
        while (1)
                print 1

よくある2重のループを行う場合の例:

dim j;
j = 0;
while (j < 10) {
        dim i;
        i = 0;
        while (i < 10) {
                print (j * 10) + i;

                i = i + 1;
        }

        j = j + 1;
}

例として samples/ 以下に test_while01.bas ～ test_while03.bas を収録してある。