我對F#和FParsec很新穎,我甚至不想讓自己難堪,通過展示我到目前爲止已經得到的東西。解析成一個複雜的類型
在FParsec實施例中,在每一個AST的類型(我看到)是用於單值,列表或元組類型的縮寫。
如果我有一個複雜的類型,應該保存一個解析的函數名稱及其參數,該怎麼辦?
所以,f(a, b, c)
將被解析以PFunction
類型的對象,其具有繩部件Name
和PParameter
列表成員Parameters
。我怎樣才能從一個解析器,它可以匹配f(a, b, c)
和|>>
它到PFunction
?
所有我似乎能夠做到目前爲止是創建複合解析器,但沒有把它變成任何東西。計算器的例子是類似的,如果它做了一個AST,包括像Term這樣的類型,但是在我看來,它似乎是一個解釋器而不是解析器,所以沒有AST。此外,Term可能只是其他類型縮寫組件的元組。
謝謝!
我沒有用過FParsec,但在fsyacc您通常其建模爲區分聯合。例如,`輸入Func = string *參數列表` – Daniel 2011-12-15 21:22:07