4 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
一個(gè)很好的方法將涉及兩個(gè)步驟。第一步涉及將表達(dá)式從中綴轉(zhuǎn)換為后綴(例如,通過Dijkstra的shunting yard)表示法。一旦完成,編寫一個(gè)postfix評估器就很簡單了。

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
我寫了一些有關(guān)設(shè)計(jì)數(shù)學(xué)解析器的博客文章。有一種普遍的介紹,有關(guān)基本知識語法,樣本實(shí)現(xiàn)用Ruby編寫和測試套件。也許您會發(fā)現(xiàn)這些材料很有用。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
您有幾種方法。您可以生成動態(tài)代碼并執(zhí)行它以獲取答案,而無需編寫太多代碼。只需在.NET中運(yùn)行時(shí)生成的代碼上執(zhí)行搜索,周圍就會有很多示例。
或者,您可以創(chuàng)建一個(gè)實(shí)際的解析器并生成一個(gè)小的解析樹,然后將其用于評估表達(dá)式。同樣,對于基本表達(dá)式而言,這非常簡單。簽出codeplex,因?yàn)槲蚁嘈潘麄兡抢镉幸粋€(gè)數(shù)學(xué)解析器?;蛘咧皇遣檎野纠腂NF。任何介紹編譯器概念的網(wǎng)站都將其作為基本示例。
- 4 回答
- 0 關(guān)注
- 648 瀏覽
添加回答
舉報(bào)