我想要做的是創建一個函數,該函數將帶有1-3個變量的輸入字符串(並且至少需要一個變量),然後解析該表達式的輸入。這個表達式將被認爲是合乎邏輯的,並返回true或false。解析已知變量的字符串中的邏輯表達式
例如,
"X == Y && 0.1 <= X < 1.0 && Z > 0.0"
然後首先在該字符串中的變量將被通過迭代,並用實際值替換。在所有變量被替換之後,修改後的字符串將如下所示:
"1.0 == 1.0 && 0.1 <= 1.0 < 1.0 && 0.6 > 0.0"
然後該字符串將被邏輯測試。如果這是真的,則該函數將返回true,否則返回false。
我在想該函數將是這樣的:
IsLogical(string, float X, float Y, float Z)
我一直在尋找過去幾個小時的方式來做到這一點,所有的我已經找到了算術數學方程式解析器。到目前爲止,我所做的只是將變量替換爲三個輸入值的部分。
所以如果有人願意幫忙,你能告訴我怎麼做嗎?展示我的例子絕對會很棒。
此函數不能使用任何外部資源,如boost或嵌入式Lua。
編輯:這應該包括C++中的所有基本比較運算符,如小於,大於,小於或等於,大於或等於,等於,不等於和或括號。它將全部採用C++格式。如果輸入格式不正確,該函數會自動返回false。
我只需要插入變量並進行評估。嵌入Lua絕對不是一種選擇。 –
@CoreyIles你的問題實際上是什麼?你是問有人爲你寫代碼嗎,還是你的代碼有特定的問題? –
這不是Lua的大小,它阻止了我使用它。你如何建議我把它縮小一點? –