次のような単純な式を解析したいだけです-
IIF(FVAL(PFC) = TRUE, (IIF((ORGVAL(BAS, "2012/12/31") + ORGVAL(DA)) < 6500, (FVAL(BAS) + FVAL(DA)) * 12%, 780)), 0)`
これを解析した後、どの関数にどのパラメーターが含まれているかを知ることができるはずです。
|-FVAL
|-PFC
|-ORGVAL
|-BAS
|-"2012/12/31"
私は .Net Framework 2.0 で立ち往生しているので、Linq やラムダ式の利点はありません。また、コードを参照するだけでなく、カスタム ライブラリにコードを含めたいと考えています。誰かが私に良いライブラリやコードを教えてくれますか?
式を評価せずに解析し、使用されているトークンを見つけるだけです。トークンを見つけたら、解析する前に式の文字列を変更する必要があります。たとえば、関数ORGVAL
が使用されている場合、渡されるパラメーターの前にアンダースコアを付ける必要があります。LikeORGVAL(BAS)
は に変換されORGVAL(_BAS)
ます。一部の関数は次のような 2 つのパラメーターを持つことができORGVAL(BAS, "2012/12/31")
、これは次のように変換されます。ORGVAL(_BAS, "2012/12/31")
注: 他の方法がある場合は、お知らせください。パーサーとレクサーは避けたいです。