1
在以前的Roslyn版本中,我可以使用派生自SyntaxAnnotation
的類將自定義數據添加到SyntaxNode
。但現在SyntaxAnnotation
是密封的,我只能用SyntaxAnnotation
與字符串:種類和數據。這對我來說還不夠。我想從AST構建自定義CFG並在CFG和AST節點之間建立雙向鏈接。如何將自定義語法註釋添加到SyntaxNode?
我該怎麼做?
在以前的Roslyn版本中,我可以使用派生自SyntaxAnnotation
的類將自定義數據添加到SyntaxNode
。但現在SyntaxAnnotation
是密封的,我只能用SyntaxAnnotation
與字符串:種類和數據。這對我來說還不夠。我想從AST構建自定義CFG並在CFG和AST節點之間建立雙向鏈接。如何將自定義語法註釋添加到SyntaxNode?
我該怎麼做?
SyntaxAnnotation
是密封的,因爲您的樹可能會被序列化,我們需要能夠序列化和反序列化註釋。如果要存儲更多信息,請將用於註釋的字符串存儲爲包含該狀態的字典的鍵。
謝謝凱文。我也在想字典。但是,這個決定並不是那麼快,並且需要使用一些上下文對象(用於存儲字典)。 – 2014-12-03 19:52:07
你會需要相同的上下文對象來存儲註釋,不是嗎? – 2014-12-03 21:20:34
目前我不能說。因爲如果我爲每個SyntaxNode字典添加註釋將會非常巨大。 – 2014-12-03 21:42:02