我只是想簡單的解析表達式一樣 -解析表達式並檢索分析樹的最簡單方法是什麼?
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的或我lambda表達式的好東西。此外,我想將代碼包含在自定義庫中,而不僅僅是引用它。任何人都可以指向我一些好的圖書館或代碼。
我只需要解析並不評估表達式並找到正在使用的令牌。找到後令牌我需要解析之前改變表達字符串,如如果函數ORGVAL
被使用,則通過該參數具有必須由一個下劃線前綴。像ORGVAL(BAS)
將轉換爲ORGVAL(_BAS)
。有些功能可以拖參數,如ORGVAL(BAS, "2012/12/31")
,這將轉化爲ORGVAL(_BAS, "2012/12/31")
注意:如果在做它,請讓我知道的其他方式。我會很樂意避開一個PARSER和LEXER。
ANTLR。或者另一個語法分析器.. – nothrow
@Yossarian ANTLR對我來說太難了。我對此一無所知。也許更簡單一些。 –
忽略一個常見的解決方案使得這成爲購物問題的標誌。在所有SE網站上關閉主題。 –