ルール構文
ルール構文は次の概念に基づいています。
すべてのルールには名前がある。
すべての式は括弧で囲む。
すべてのルールの先頭には演算子を使用し、その後にオペランドを付ける。
シンプルルール
シンプルルールは "defined"演算子のみを使用する式です。この演算子は 1 つの引数、ユーザー定義シンボルを取得して追加します。シンボルはスペースによって生じ、二重引用符内に設定する必要があります。
シンプルルールの形式:
Rule (defined "symbol")
symbolは "partition" または "partition.value_n" の形式になります。"partition.value_n"形式の場合、多くのルールが同じ "partition." プレフィックスとなります。
ルール1(defined "partition1")
ルール2(定義された "partition2")
ルール3(defined "partition3.value_1")
Rule4 (defined "partition3.value_2")
Rule5(defined "partition3.value_3")
コンプレックスルール
コンプレックスルールは Boolean式です。利用可能な複数の演算子"defined" および論理演算子"and"、"or"、"not"、"xor"を組み合わせることができます。
各論理演算子は任意の順序で 2 つの引数を取得します。論理演算子の引数は括弧で囲われた式です。シンプルルールの式と別のコンプレックスルールの式のいずれかを使用できます。
演算子は Boolean 式のオペランドの前に配置されます。ネストされた括弧は、式のグループと検証の順序を表します。
Rule(and (defined "symbol_p") (defined "symbol_q"))
symbol_p および symbol_q が定義されている場合、このルールは true になります。
Rule(or (defined "symbol_p") (defined "symbol_q"))
symbol_p または symbol_q が定義されている場合、このルールは true になります。
Rule(and (or (defined "symbol_p") (defined "symbol_q")) (defined "symbol_r"))
symbol_p または symbol_q が定義されている場合("or" は最初に評価されます)、および symbol_r が定義されている場合、このルールは true となります。