next up previous contents
Next: さらに知っておくべきこと Up: PAWを使う Previous: オンラインでPAWを使う

マクロを用意する

基本的なPAWの使い方を解説してきましたが、PAWは対話型のプログラムなの でユーザがキーボードからコマンドを入力することで作業をします。オンライ ンのような決まった解析を行なう場合、毎度同じようにヒストグラムを定義し たりオプションを設定したりするコマンドを入力するのはいやですね。こうい うときマクロを用意すると強力です。マクロはPAWのコマンドを羅列しただけ のもので構いません。それをファイルに書いておいてMAC RO/EXECコマンドで 実行させます。

        PAW > EXEC MYMACRO

この例ではmymacro.kumacというファイルが読みだされます。UNIXではファイ ル名は小文字に変換されます。kumacはKUIP・MACROの意味です。一つのファイ ルの中に複数のマクロを定義することが出来ますが、その時はマクロを識別す るコマンドをファイルの中に書いておきます。

        * mymacro.kumac

        MACRO START

        ...色々なPAWのコマンドをここに

        RETURN

        MACRO FINISH

        ...ここも同様

        RETURN

呼び出すときはファイル名にマクロ名を#で挟んで指定します。

        PAW > EXEC MYMACRO#FINISH

などとなります。

マクロファイルの中では変数を使うことが出来ます。変数の定義は代入文の ように書いて

        MODE = CALIBRATION

        MESSAGE mode = [MODE]

変数モードが値CALIBRATIONに設定され、次のKUIP/MESSAGEコマンドで参照さ れています。変数の参照は[]で囲みます。特殊な変数として[1]、[2]などはマ クロが呼び出されたときの引数となります。[#]が引数の数、[*]は引数を全部 つないだもの、[@]はマクロからのリターンステータスを表します。

        PAW > EDIT DEMO

        MESSAGE ARGUMENT GIVEN = [1]

        PAW > EXEC DEMO HELLO

        ARGUMENT GIVEN = HELLO

変数の値をユーザにたずねることも出来ます。

        READ VAR1

プログラム言語のようなフローコントロールも色々あります。

        GOTO ラベル             *'ラベル'にジャンプ



        ラベル:         *ラベル'ラベル'

        IF 表現 THEN            *おなじみのIF

          命令

        ELSEIF 表現 THEN

          命令

        ELSE

          命令

        ENDIF

        CASE 表現 IN   *Cのcaseに似ている

        (候補1) 命令

        (候補2) 命令

        (*)     命令    *星はワイルドカード、Cのdefault:と同じ働き

        ENDCASE

        ON ERROR GOTO ラベル    *例外処理

        DO i = 1, 100           *iも変数だから参照するときは[i]

          命令

        ENDDO

        FOR 変数 IN 表現1 表現2 表現3...        *変数にそれぞれ代入。

                        *さっきの[*]を表現1におくと引数全部

        WHILE 表現 DO

          命令

        ENDWHILE

        REPEAT

          命令

        UNTIL 表現



        BREAKL          * ループから抜ける。

        EXITM           * マクロから抜ける。ステータスコード可

以上はマクロファイルの中で使われるものを解説してきました。それ以外に 有用なのはKUIPのシステム関数です。マクロの中でヒストグラムやグラフ、環 境など様々な情報を取り出すことが出来ます。詳しくはHELP FUNCTIONで見て ください。関数は$で始まります。例えば

        $DATE   本日の日付

        $TIME   只今の時刻

        $HEXIST(ID)     ヒストグラムが存在すれば1

        $HTITLE(ID)     ヒストグラムのタイトル

        $VLEN(name)     ベクトルの寸法

などなど。



next up previous contents
Next: さらに知っておくべきこと Up: PAWを使う Previous: オンラインでPAWを使う



Kinya Hibino
Sun Jan 14 21:50:32 JST 1996