Skip to main content

Patchwork 3D 2023 X6

ルール構文

ルール構文は次の概念に基づいています。

  • すべてのルールには名前がある。

  • すべての式は括弧で囲む。

  • すべてのルールの先頭には演算子を使用し、その後にオペランドを付ける。

シンプルルール

シンプルルールは "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 式のオペランドの前に配置されます。ネストされた括弧は、式のグループと検証の順序を表します。

  • symbol_p および symbol_q が定義されている場合、このルールは true になります。

    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 が定義されている場合("or" は最初に評価されます)、および symbol_r が定義されている場合、このルールは true となります。

    Rule(and (or (defined "symbol_p") (defined "symbol_q")) (defined "symbol_r"))