「PIONE定義書」の版間の差分
(ページの作成:「 ここではPIONEの'''定義書'''における基本的な記述ルールを示します。具体的な記述や動作については[[PIONEチュートリアル]...」) |
(→入力定義) |
||
行35: | 行35: | ||
input '*.*' | input '*.*' | ||
</pre> | </pre> | ||
− | 上記の場合は{$[1][3]}がそれぞれef, kl, qrとなり、 | + | 上記の場合は{$[1][3]}がそれぞれef, kl, qrとなり、{$I[2][1]}はab、{$I[3][1]}はそれぞれab.cd, gh.ij, mn.opとなります。<br> |
<br> | <br> | ||
2014年12月10日 (水) 23:56時点における版
ここではPIONEの定義書における基本的な記述ルールを示します。具体的な記述や動作についてはPIONEチュートリアルをご覧下さい。厳密な定義などはこちらのpione-docをご覧下さい。
目次
ルールの記述方法
ルール内は大きく#ルールヘッダーと#条件定義と#振る舞い定義に分かれます。#ルールヘッダーはルール名を宣言し、#条件定義は入力ファイルや出力ファイル、パラメータなど、#振る舞い定義はその条件に対する処理を定義します。
ルールヘッダー
Ruleを使用してルール名を宣言します。ここで、Mainは特殊な宣言で実行時に最初に実行されるルールですので、注意して下さい。
条件定義
条件定義では#入力定義、#出力定義、#パラメータ定義、#特性定義を必要に応じてそれぞれ記述します。
入力定義
input 'XXX.YYY'といったように定義します。このように定義するとそのルール内であればどこでも{$I[N]}として使用できるようになります。ここでNは入力定義されている順番を指します。例えば、
input 'abc.def' input 'ghi.jkl' input 'mno.pqr'
上記の場合は{$I[1]}が'abc.def'を、{$[2]}が'ghi.jkl'を指します。
さらに、*(アスタリスク)を任意の文字として使用することができます。このときの任意の文字列を取り出す場合は{$[N][M]}として使用します。ここでNは入力定義の順番、Mは右から数えた任意の文字列となります。例えば、ディレクトリに
ab.cd.ef gh.ij.kl mn.op.qr
の3つのファイルがあったとします。このとき入力定義にて
input '*.*.*' input '*.*.ef' input '*.*'
上記の場合は{$[1][3]}がそれぞれef, kl, qrとなり、{$I[2][1]}はab、{$I[3][1]}はそれぞれab.cd, gh.ij, mn.opとなります。
出力定義
パラメータ定義
特性定義
振る舞い定義
振る舞い定義では#アクション定義もしくは#フロー定義のいずれかを記述します。
アクション定義
フロー定義