EXPRFL expr [filename]* [option]*
第一パラメータをTSEXPR式の連続として解釈して、
入力ファイルの各行に対して計算し、標準出力する。
ファイル名を省略すると標準入力を扱う。
通常は式の値を常に出力するが、出力を抑制する検定モードを指定できる(-P
)。
現在行を含め、以降数行を行バッファに保持して式を呼び出す。
オプション(-L
)で保持行数を指定できる。デフォルトは 16 行。
式の一回の評価ごとに、1行ずつバッファの先頭を掃きだし、バッファの末尾に行を補充する。この行数を指定できる(-K
)。
基本的には行処理だが、数行のスパンで後続の行内容を検定できる。複数行にまたがる形式をその先頭行で捕らえる使い方に向いている。
また、掃き出し行数を動的に指定できるので、不特定行長のレコードの取り扱いも可能である。
{ TSEXPR式; }+
;
で区切って第一パラメータに記述する。アプリケーション・インタフェースは次の通り
引数 | 略記 | 変数名 | 説明 |
---|---|---|---|
0 | @0 |
バッファ内の行を連結した文字列。各行末には0x0aが付いている。 | |
1以上 | @n |
バッファ内の行に1から順に項目に対応 | |
-1 | &(-1) |
??gln |
通算入力行番号 |
-2 | &(-2) |
??ln
| ファイル内入力行番号 |
-3 | &(-3) |
??grn |
通算処理番号 |
-4 | &(-4) |
??rn |
ファイル内処理番号 |
-5 | &(-5) |
??fn |
ファイル番号 |
-6 | @(-6) |
??filename |
処理中のファイル名 |
-7 | &(-7) |
??bc |
バッファ内行数 |
|
??print |
出力の許可状態を表す論理値。
行の計算式、初期化式などそれぞれの場合に固有である。
??print := bool 値 |
|
|
??kick |
バッファの掃き出し行数。
??kick := int 行数 行評価では、この値は実際に掃きだす行数。 初期化/終了化では、この値はオプションで設定した掃き出し行数で、この値が行評価の際に毎回セットされる。 |
|
|
??break |
処理中断要求を表す論理値。
各ファイル処理の先頭で偽に設定される。
??break := bool 値 行処理での設定では、同一ファイルの次行以降の処理を行わなくなる。 ファイル開始処理での設定では、現在のファイルの行処理をすべて行わなくなる。 |
|
|
??allbreak |
全中断要求を表す論理値。
??allbreak := bool 値 行処理での設定では、同一ファイルの次行以降の処理を行わなくなる。 ファイル開始処理での設定では、現在のファイルの行処理をすべて行わなくなる。 また、次以降のファイルの処理も行わない。 |
|
bool SPOOL(str 文字列 )
|
文字列を直接出力する。 |
以下の SYSTALK 関数は、使用する必要がない。変数アクセスで代替できる。
機能番号 | 記法 | 説明 |
---|---|---|
0 | SYSTALK(0,n) |
n は整数。バッファの掃きだし行数を指定する。この機能を使用せず、??kick を使用すること。 |
1 | SYSTALK(1,x) |
x はなんでも良い。この処理で終了する。この機能を使用せず、 ??break を使用すること。 |
標準では、各式の間に改行を挟み、さらに、式処理の終わりに改行を行う。また、式処理の空行の出力は極力抑制される。
オプション(-P)で検定モードを指定できる。
-B{tsexpr;}+
-E{tsexpr;}+
-F{tsexpr;}+
-I{tsexpr;}+
-Knumber
-Lnumber
-L{S|C|L}
-LS | デフォルト。不要のコードを除去。LFを行末とみなす。CRは無視する。 |
-LC | コードの変更をしない。CRLFを行末として扱う。 |
-LL | コードの変更をしない。LFを行末として扱う。 |
-NOEOL
-Ofilename
-P
-Rstr
-S[+|-]
-SB[+|-]
-SE[+|-]
-SI[+|-]
-SF[+|-]
-Tstr
-V
-X
Ver 1.02 | 2012/06/26 | -L で入力行の扱いを変更できるようにした。 |
Ver 1.01 | 2012/04/30 | 初期化/終了化のcallback変更。 外部変数 ??print / ??kick / ??break / ??allbreak を導入 |
Ver 1.00 | 初版 |