2013-03-03 71 views
4

我正在玩Microsoft.SqlServer.TransactSql.ScriptDom庫。 我發現瀏覽所有的令牌,我可以從TSqlFragment獲得方式:在哪裏可以找到由SQL Server ScriptDom解析器生成的T-SQL Dom?

TSql100Parser parser = new TSql100Parser(false); 

TSqlFragment fragment; 

using (StreamReader sr = new StreamReader(myStream)) 
{ 
    fragment = parser.Parse(sr, out parseErrors); 
} 

foreach (TSqlParserToken token in fragment.ScriptTokenStream) 
{ 
    ... 
} 

我還發現了TSqlFragmentVisitor類,所以我想在ScriptDom庫生成從可以導航一個TSqlFragment一個T-SQL DOM 。但我找不到這樣做...

你能幫助我嗎? 謝謝!

回答

2

如果您的目標是分析解析器獲得的結果語法樹,您可以參考this鏈接。當您獲得分析樹的根節點fragment = parser.Parse(sr, out parseErrors)時,您可以使用訪問者瀏覽該樹,方法是擴展TSqlFragmentVisitor類,如鏈接所示。有關ScriptDom可用類的完整參考,您可以查看here

相關問題