高速で軽量な表現パーサを見つける必要があります。私は速いランタイム表現パーサを必要とします
理想的には、名前/値のペア(変数など)と評価する式を含む文字列を渡したいと思っています。私がそれから戻ってくる必要があるのは真偽値です。式の
タイプはのラインに沿ってなければならない:
varA == "xyz" and varB==123
基本的に、その発現が単純な論理エンジンは、実行時に提供されます。それは==、!=、>、> =サポートする必要があります最低でも
UPDATE
、<、< =
スピードに関しては、私はおよそ5式が要求ごとに実行されることを期待しています。私たちは100 /要求の近くのどこかで1秒を見ます。現在のページは50ms未満で実行される傾向があります。通常、どの表現にも2つまたは3つの変数しか関与しません。しかし、実行前にパーサに約30をロードする必要があります。
UPDATE 2012/11/5
パフォーマンスに関する更新。私たちはほぼ2年前にnCalcを実装しました。それ以来、私たちはポストバックで300以上の変数をカバーする平均40以上の式を使用するように拡張しました。現在、1秒間に何千ものポストバックが発生し、パフォーマンスの低下は全くありません。
また、パフォーマンスの低下を伴わずにいくつかの追加機能を追加しました。要するに、nCalcは私たちのニーズをすべて満たし、私たちの期待を上回りました。
@Cにカスタマイズする必要があります。ロス:どうしたの?私は、「ありがとう」と言っても間違いないと思う。 –
は既製のものは何も知らないが、あなた自身を書くのは難しいようではない(要件に応じて)。 ==唯一の比較器ですか? varsはC#のように大文字と小文字を区別するか、vb.netのように大文字小文字を区別しませんか?ブール演算子は許されている(としない)。あなたがコードやユーザで書くことができる表現が本当にA = B – SFun28
@Chris Livelyに限られているのかどうかを調べようとすると、ここにいくつかの良い方法があります。http://stackoverflow.com/questions/1437964/best-最短の評価方法 - 数式 - – acoolaum