2009-10-28 34 views
0

在參考在接受溶液:SO:expression_evaluatorC表達式求值需要2

任何人都可以提供與否定以及工作的版本?像

((!(0 or !1) and !((0 or 1 or 1) and !1)) 

需要工作以及。

我得到它的工作,使否定的0或1的是好的,但我不能讓它與整個羣體的否定工作(!'s的括號的開始)

我試過後否定TMP在* expr =='中返回eval =='('block .. if!在調用之前已經看到,但是沒有工作

+0

我這樣做:http://stackoverflow.com/questions/1465909/c-expression-evaluator/1472960#1472960 – sambowry 2009-10-29 06:52:55

回答

6

該答案中的代碼有點特設。其中的一個答案建議尋找遞歸下降解析,其次我推薦了這個建議

+0

+1 - 沒有什麼可說的,除了應該建立一個像AST的東西,然後可以很容易計算。 – Lucero 2009-10-29 00:13:48

0

算法de劃線here可以處理一元運算符(具有一個操作數的運算符)以及函數。

我曾經用它作爲完整C表達式求值器的基礎,支持嵌入式系統上命令行控制檯的符號變量。我沒有使用隨附的示例代碼,而是從頭開始編寫以適合我的目的。