2015-04-04 32 views
-1

在我的業務引擎中(我用來製作屏幕,窗體等等......)我有一個腳本語言形式爲「parameter = value」更多的靈活性,值部分是一個標準的數學表達式,可以使用內部引擎變量和函數。
現在我使用一種標準方法來解析它,方法是將字符串更改爲令牌,然後做一個sintactical分析,然後使用分流algorythm將其轉換爲後綴表示法,因此在引擎運行時,我可以使用表達式的當前值不變的價值。
問題出現在這裏,有一種表達式上下文,讓我們假設一個表達式在graph1上運行,所以maxValue變量或_average(「row1」)函數依賴於該圖,但是我需要一個必要的表達式從其他ocntext獲取數據,讓我們說graph1表達式中的graph2;例如,在graph1代碼中:
color = maxValue> graph2-> maxValue
所以graph1的顏色會根據graph2的最大值是否小於graph1而改變。
因爲它隱含在那裏,所以我通過使用 - >運算符部分地解決了它,運算符的左邊部分是上下文引用,所以當使用此運算符時,將上下文更改爲左邊參數,然後返回右邊的值參數,但是這是一個表達式解析器,一旦它到達操作符,這些值先前已經計算過,因此max值已經返回graph1的最大值,部分解決方案將左右變量名稱傳遞給操作符,所以我可以用新的上下文「重新獲得」變量的值,但仍然會使功能未解決。
我的問題是,如果我使用重定向作爲二元運算符的方法是最好的方法,作爲開始,或者如果有其他方法可用於評估分流algorythm結果以獲得正確的函數值。上下文重定向表達式解析器的執行

回答

1

編碼重定向表達式一個一元,後綴操作符以最簡單的方式修復問題