| パラダイム | 宣言型言語 |
|---|---|
| 安定版リリース | 10.3 2016年10月5日
|
| タイピングの規律 | 力強く、ダイナミック |
| OS | クロスプラットフォーム |
| ライセンス | Apache ライセンス2.0 |
| ファイル名拡張子 | .pan、.tpl (非推奨) |
| Webサイト | クアトール |
| 主な実装 | |
| パンク | |
PAN構成言語を使用すると、人間が理解しやすいシンプルな構文で、マシン構成情報と関連スキーマを定義できます。PAN 言語コンパイラは、PAN テンプレートのセットに含まれる構成情報を 、マシンに適した XML または JSON 形式に変換します。
PAN 言語は、 Quattorツールキット内で 1 台以上のマシンの必要な構成を定義するために使用されます。この言語は主に宣言型言語であり、階層ツリー内の要素が特定の値に設定されます。PAN 構文は人間に優しく、非常にシンプルですが、システム管理者は構成値の設定、全体的な構成スキーマの定義、スキーマに対する最終構成の検証を同時に行うことができます。
実装
コンパイラ panc は言語の事実上のリファレンス実装として機能し、Javaで実装されていますが、現時点ではOpenJDKでコンパイラを実行することはできません。
構成は、pan 言語で記述されたテンプレートと呼ばれる一連のファイルによって定義されます。これらのテンプレートは、構成パラメータ、構成スキーマ、検証関数を同時に定義します。各テンプレートには名前が付けられ、同じ名前のファイルに含まれています。テンプレート ファイルの構文は単純です。
[オブジェクト|宣言|一意|構造]テンプレートテンプレート名; [ステートメント… ]
これらのファイルには、ハッシュ記号 ('#') で始まり、次の新しい行またはファイルの終わりで終了するコメントが含まれている場合があります。
種類
汎言語には 5 つのプリミティブなアトミック型があります。
- ブール値
- 長さ
- ダブル
- 弦
- リンク
プリミティブ コレクション タイプには 2 つあります。
- リスト(要素の順序付きリスト/配列)
- nlist (名前付きリストは、ハッシュ、辞書、連想配列と同様に、文字列キーと値を関連付けます)
ユーザーは、オプションの検証関数を使用してプリミティブ型から構築された新しい型を作成し、特定のフィールドに特定の制約を適用できます。
テンプレートの種類
テンプレート修飾子によって識別されるテンプレートには、次の 5 種類があります。
通常のテンプレート
通常のテンプレートは、宣言でテンプレート修飾子を使用しません。これらのテンプレートには任意の pan ステートメントを含めることができますが、ステートメントは絶対パスでのみ動作する必要があります。
オブジェクトテンプレート
オブジェクト テンプレートは、生成された各 XML 構成プロファイルのルートと考えることができます。 パン コンパイラは、処理された各オブジェクト テンプレートに対して XML プロファイルを生成します。 その他の点では、通常のテンプレートと同じです。
宣言テンプレート
これらのテンプレートには、マシン プロファイルを変更しない pan ステートメントのみを含めることができます。宣言テンプレートは、含まれている回数に関係なく、処理されるオブジェクト テンプレートごとに 1 回だけ実行されます。
ユニークなテンプレート
unique 修飾子を使用して定義されたテンプレートは、処理されるオブジェクト テンプレートごとに 1 回だけ含まれる点を除いて、通常のテンプレートと同様に動作します。
構造テンプレート
構造テンプレートは、nlist を作成するための便利な代替手段であり、create 関数を介して使用されます。構造修飾子で宣言されたテンプレートには、相対パスで動作する include ステートメントと代入ステートメントのみを含めることができます。include ステートメントは、他の構造テンプレートのみを参照できます。
外部リンク
- パン構成言語コンパイラ
- 汎言語コンパイラドキュメント
- 古い PAN ドキュメントとコンパイラ ファイル
