2014-12-02 65 views
1

在以前的Roslyn版本中,我可以使用派生自SyntaxAnnotation的類將自定義數據添加到SyntaxNode。但現在SyntaxAnnotation是密封的,我只能用SyntaxAnnotation與字符串:種類和數據。這對我來說還不夠。我想從AST構建自定義CFG並在CFG和AST節點之間建立雙向鏈接。如何將自定義語法註釋添加到SyntaxNode?

我該怎麼做?

回答

1

SyntaxAnnotation是密封的,因爲您的樹可能會被序列化,我們需要能夠序列化和反序列化註釋。如果要存儲更多信息,請將用於註釋的字符串存儲爲包含該狀態的字典的鍵。

+0

謝謝凱文。我也在想字典。但是,這個決定並不是那麼快,並且需要使用一些上下文對象(用於存儲字典)。 – 2014-12-03 19:52:07

+0

你會需要相同的上下文對象來存儲註釋,不是嗎? – 2014-12-03 21:20:34

+0

目前我不能說。因爲如果我爲每個SyntaxNode字典添加註釋將會非常巨大。 – 2014-12-03 21:42:02

相關問題