-1
我有一個字符串(R(46-9900))AND(NOT(R(48-9900))))其中R表示範圍。如果你評估表達式的結果是R(46-47),考慮邏輯運算符(AND,NOT)。布爾表達式評估
我有一個需求,我需要解析這樣一個字符串,並將其評估爲正確的結果。我必須使用C++作爲編程工具來實現這個結果。
任何人都可以提出一些指導方針,我該怎麼做呢?
我有一個字符串(R(46-9900))AND(NOT(R(48-9900))))其中R表示範圍。如果你評估表達式的結果是R(46-47),考慮邏輯運算符(AND,NOT)。布爾表達式評估
我有一個需求,我需要解析這樣一個字符串,並將其評估爲正確的結果。我必須使用C++作爲編程工具來實現這個結果。
任何人都可以提出一些指導方針,我該怎麼做呢?
我重新張貼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
完全重複(同一用戶,昨天):[解析表達式範圍(http://stackoverflow.com/questions/3003514/parsing-range -expressions) – 2010-06-10 13:11:56
@Paul唯一的意圖是在正確的標記 – 2010-06-10 13:18:06
下發布它,在這種情況下,您只需要編輯原始問題上的標記 - 您不需要重新開始並重復該問題以更改標籤。另外,對於第一個問題,您已經有了一個非常好的答案,您不承認(我發現您現在已經刪除了這個 - 爲什麼?)。 – 2010-06-10 14:01:50