0

たとえば、SQL のような入力を解析したい:

SEX = 'MALE' AND AGE > 20

「sql」入力に基づいて、アイテムの c# 配列を検索します。

したがって、上記の例では、Item.Sex プロパティが「MALE」に設定され、Item.Age プロパティが 20 より大きいすべてのアイテムをデータから検索します。

これは些細な例であり、より複雑なシナリオを簡単に想像し始めることができます。例えば:

(SEX = 'MALE' AND AGE > 20) OR (SEX = 'FEMALE' AND AGE < 30)

次の演算子をサポートできる必要があります。

=
>
<
<>
() - for precedence
AND
OR

これを自分で最初からコーディングする必要があると感じていますが、車輪の再発明はしたくありません。これを少し調べた後、パーサー/文法などへの参照に出くわしましたが、それらが法案に適合するかどうかはよくわかりません.

4

1 に答える 1

1

おそらく自分で入力を解析する必要がありますが、ANTLRなどのパーサー ジェネレーターを使用すると、それほど手間がかかりません。

于 2012-09-20T19:22:26.370 に答える