次のようなユーザー指定のブール式文字列を最もよく評価するにはどうすればよいですか。
A & B | (C & !D)
これは何のために必要ですか?例:一連の人がいて、ユーザーが入力フィールドを持っていて、次のString
ように記述されたブール式でこれらの人の2つ(およびそれ以上)を接続できるとします。
Peter & Klaus | (Peter & Clair | !Klaus)
(例として、この式は意味をなさないことを私は知っています)。
次に、ブール文法を使用して、このブール文字列を何らかの方法で分割します。後で、人の名前が変更された場合(Peter-> Johnなど)、ユーザーが指定した式も新しい名前で自動名前変更されるようにします。これにより、ユーザーは保存された式が新しい名前で更新されたことがわかります。
したがって、名前の背後にあるオブジェクトを表すIDを使用してブール式を格納する必要があります。したがって、db内の式から各名前を検索する必要があります。したがって、ブール文法で文字列を分割する必要があります。
質問:
この文字列をどのように分割するのが最適ですか?
名前が変更されたときにこの文字列を再評価できるように、オブジェクト値を使用してこの式を保存するにはどうすればよいですか?