TFCALCスクリプト記述

概略

タブファイルの計算、検索、生成のための処理 TFCALC.EXE / TFSELECT.EXE / TFGEN.EXE などで記述する簡易計算言語である。

言語記述は、コマンドラインで与える一塊の文字列で行う。 この記述は、行内フィールドを元に演算を行う行演算記述と、 全体の処理の前後、行処理の前後で行うブロック処理記述からなる。
行演算は、処理の本体に相当し、入力ファイルの行単位で実行する。 ブロック処理は、作業変数や配列の定義、初期化、値の設定などに使用し、行をまたがるデータの取扱を用意にするために用いる。

注釈

//が引用符内部以外で現れると、行末までを注釈として取り扱う。

記述

[{ 先頭ブロック }] [[ 行先頭ブロック ]] 行演算 [[ 行末尾ブロック ]] [{ 末尾ブロック }]

必ず、先頭ブロック、行先頭ブロック、行演算、行末尾ブロック、末尾ブロックの順で記述する。

実行は、最初に先頭ブロックを実行する。 その後、各行に対して、行先頭ブロック、行演算、行末尾ブロックの順で実行する。 すべての行にたいする処理が終了した後、末尾ブロックを実行する.

ブロック

[ 変数定義 ;] [;]*

変数定義は作業変数の定義に用い、ブロックの先頭で指定する。 通常は先頭ブロックで行う。
式は省略できる。式の演算結果は無視する。 式中で代入演算を行えるので、これを利用して値を初期化する。

先頭ブロック

全体の処理の開始時に一度だけ実行する。フィールド変数は使用できない。 {}で挟んで記述する。

行先頭ブロック

行演算の前に実行する。従って各行に対して一度づつ実行される。 作業変数の定義はここで行うと良い。 []で挟んで記述する。

行末尾ブロック

行演算の後に実行する。従って各行に対して一度づつ実行される。 []で挟んで記述する。

末尾ブロック

全体の処理の終了時に一度だけ実行する。フィールド変数は使用できない。 {}で挟んで記述する。

行演算

[; ]*

入力の各行に対して行う処理。これが、処理の中心となる。

TFCALC.EXE/TFGEN.EXEでは、式の値を先頭から順に出力データのフィールドとして出力する。

TFSELECT.EXEでは、式は論理値を取り、一つだけを書くことが出来る。 式の値が真の場合、入力行を出力する。

以下に式記述の詳細がある。

  1. 変数と式

  2. 制御関数とシステム変数

  3. 型変換関数

  4. 数値関数

  5. 範囲関数

  6. 文字列関数

  7. リスト関数

  8. 正規検索関数

  9. 日付関数

  10. システム関数

  11. 配列関数

関数・変数一覧