2010-06-10 210 views
-1

我有一個字符串(R(46-9900))AND(NOT(R(48-9900))))其中R表示範圍。如果你評估表達式的結果是R(46-47),考慮邏輯運算符(AND,NOT)。布爾表達式評估

我有一個需求,我需要解析這樣一個字符串,並將其評估爲正確的結果。我必須使用C++作爲編程工具來實現這個結果。

任何人都可以提出一些指導方針,我該怎麼做呢?

+0

完全重複(同一用戶,昨天):[解析表達式範圍(http://stackoverflow.com/questions/3003514/parsing-range -expressions) – 2010-06-10 13:11:56

+0

@Paul唯一的意圖是在正確的標記 – 2010-06-10 13:18:06

+1

下發布它,在這種情況下,您只需要編輯原始問題上的標記 - 您不需要重新開始並重復該問題以更改標籤。另外,對於第一個問題,您已經有了一個非常好的答案,您不承認(我發現您現在已經刪除了這個 - 爲什麼?)。 – 2010-06-10 14:01:50

回答

0

我重新張貼Aftershock的回答你的問題你第一次發佈它,因爲它是一個很好的答案,它不值得被刪除:


你必須寫一個小口譯員。有很多方法可以做到這一點。這是一個。這裏是它的樣式:http://en.wikipedia.org/wiki/Interpreter_pattern

這也可以幫助:http://ryanfarley.com/blog/archive/2004/08/19/966.aspx那是關於數據範圍但問題類似。

您也可以使用操作precedense解析器:http://en.wikipedia.org/wiki/Operator-precedence_parser