「PIONE定義書」の版間の差分

提供: Eospedia
移動: 案内検索
(ページの作成:「 ここではPIONEの'''定義書'''における基本的な記述ルールを示します。具体的な記述や動作については[[PIONEチュートリアル]...」)
 
(入力定義)
行35: 行35:
 
input '*.*'
 
input '*.*'
 
</pre>
 
</pre>
上記の場合は{$[1][3]}がそれぞれef, kl, qrとなり、{$I[2][0]}はab.cd.ef、{$I[2][1]}はab、{$I[3][1]}はそれぞれab.cd, gh.ij, mn.opとなります。<br>
+
上記の場合は{$[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となります。

出力定義


パラメータ定義


特性定義


振る舞い定義

 振る舞い定義では#アクション定義もしくは#フロー定義のいずれかを記述します。

アクション定義


フロー定義