目次

BASICコードへの行番号追加(AWK)

 IchigoJamのBASIC、豊四季BASICは行番号を利用しています。

 構造化プログラムを作成するときには、行番号でサブルーチンを
 指定するので、ある程度コードを作成した時点で行番号追加を
 考えた方が楽と考えました。

 次のIchigoJamのBASICコードに、行番号を追加するとします。

'
FOR I=0 TO 3
  IF P=1 LET J,I+4 ELSE LET J,I
  LET [J],IN(I)
NEXT
RETURN

 100行からのサブルーチンを作成とすれば、AWKスクリプトは以下。

{
  printf("%03d %s\n",10*(NR-1)+100,$0)
}

 実際にAWKスクリプトとテキストファイルを利用して実験。




 行番号を追加した内容をファイルに保存したければ
 I/Oリダイレクトで処理すれば充分。

 サブルーチンの開始行番号を変更するには、100を200、300と
 するだけでよいので、AWKスクリプトを直接入力すればよい
 でしょう。

 アクションの方には手を入れたくないので、BEGINクローズに
 オフセット値を指定して対応します。

 コードとしては、単純で以下とします。

BEGIN {
  xofs = 200
}
{
  printf("%3d %s\n",10*(NR-1)+xofs,$0)
}

 BEGINクローズの中で初期化する変数xofsの
 設定値を変更しての対応にします。

 実際に利用すると、以下。




目次

inserted by FC2 system