GAMEでプログラムを作ってると出だしで割り振った行番号だと後から入れる追加のルーチンが入る場所が確保出来なかったりするケースに出会う。
BASICなんがでも、よく出会うケースなんだがBASICにはrenumコマンドが用意されていたりする。システムによってはBASICのスクリーンエディタを借りて入力したりしていてもrenumでの行番号再振り分けをしようにも、GAMEの文法にrenumが対応してないので使えない。
そこで、今回はyahoo!のAgent!の力を借りてpythonで組んでみた。
単純に、引数1に対象ファイル名、引数2に開始行番号、引数3に増加分を指定すると 標準出力に結果を表示してくれるだけのもの。ファイルの形で残したければリダイレクトでファイルに保存すれば良い。少なくとも元ファイルを読み込むだけにしてあるので上書きなど間違って破壊するリスクはない。 リンク
今のところ予想されるバグは、存在しない行番号を呼び出す!=文と#=文への対応はしていない。
インタプリタだと200行へのジャンプ文に出会ったときに、201行はあるけど200行はない場合、素直に201行にジャンプする判断をするけど このリナンバーツールは何もしない。エラーも出さない。存在しないはずの#=-1にエラーも出さずにそのままスルーで出力してるから。同様に存在しない行番号を呼び出す文に出会っても何もしないので 大きな意味では不具合のもとになる。その辺は各自の判断で手を加えることを薦める。
コメント
コメントを投稿