2
我的程序中有令牌數據類型。它看起來像這樣:向haskell類型添加其他信息
data Token
= StringToken Strin
| NumberToken Integer
| IfToken
| ElseToken
... -- lots of tokens here
我在我的解析器中使用這種數據類型螞蟻它工作正常。但是現在我想爲令牌附加一些額外的信息(源位置信息)。所以,我可以改變我的數據類型聲明和使用記錄:
data Token
= StringToken {value :: String, srcLoc :: SourceLocation}
| NumberToken {value :: String, srcLoc :: SourceLocation}
| IfToken {srcLoc :: SourceLocation}
| ElseToken {srcLoc :: SourceLocation}
... -- lots of tokens here
但是這種解決方案似乎並不十分實用,美觀到我。那麼這個問題有更好的解決方案嗎? 謝謝。
http://stackoverflow.com/questions/16204177/how-should-i-represent-an-ast-annotated-with-additional-information – Arjan 2013-05-12 15:04:02
@Arjan謝謝,它對我很有用。 – sergeyz 2013-05-12 19:14:22