EN JP CN

条件

条件

KAST 式の各要素は、0 以上の条件を持つことができます。

各条件は、ブール式であり、角括弧内に入れる必要があります。パス要素は、対応するすべての条件が満たされた場合、AST ノードと一致させます。

式は次のタイプのうちのいずれかです。

  • BOOL
  • INT
  • DOUBLE
  • TREE (AST ノード)
  • SEMA (AST ノードに関連するセマンティック情報)
  • STRING

BOOL 値、INT 値、DOUBLE 値は、相互に変換できます。また、TREE 値と SEMA 値は BOOL 型に変換できます。

次のタイプの式がサポートされています。

Path 式:子修飾子で始まります。

[Expr::ExprBinary/Expr1::ExprConst]
注: path 式が KAST パターン全体を構成する場合、'//' で始まり、ノードタイプ名が続きます。これは、対応するサブツリーは AST の任意の場所で照合されることを意味します。一方、path 式が KAST 式内の条件の 1 つである場合、または条件の一部である場合は、子の名前、またはその他の軸の修飾子で始まります。これは、そのパスはこの式が関連付けられているノードから始まる必要があることを意味します。

Or 式:

Expression1 | Expression2

Not 式:

not 式

関数式:

Func(Expr1, Expr2, ...)

組み込み関数とカスタム関数の両方を使用できます。

Java カスタム関数 を参照してください。

ドット式:

Expression.Func(...)

このような式の右部分は関数呼び出しである必要があります。ドット式の左部分の式は、右部分の関数の最初の引数として処理されます。a.b(c) は b(a, c) と同等です。

属性式:

@attribute_name

演算式:

Expression1 [+, -, /, *] Expression2

関係式:

Expression1 [>, <, >=, <=, =, !=] Expression2

括弧式:

(Expression)

定数式:

'abc' , 2.0

演算のタイプ、クラス指定子などを表す整数定数のリテラル表現がいくつかあります。

変数式:

$variable

変数 を参照してください。

サポートされている演算

以下に優先順位が高いものから演算を示します。

()、.not +、- >、>=、<、<= =、!= |