[英]Roslyn Declare Local Variable with SyntaxGenerator
我正在嘗試為基於C / C ++ / C#的專有語言編寫編譯器,但隱藏了更復雜的功能。 編譯器使用ANTLR構建自己的語法樹,然后使用Roslyn SyntaxGenerator
類在C#中構建代碼,然后像往常一樣對C#代碼進行編譯。 我當前的問題是在函數內部處理變量:由於聲明字段非常簡單,因此似乎沒有討論或明確創建局部變量。 如何使用SyntaxGenerator
類創建局部變量?
您使用SyntaxGenerator.LocalDeclarationStatement
。
例如,如果您已初始化表達式,則可以這樣使用它:
SyntaxGenerator generator = ...;
generator.LocalDeclarationStatement(
"variable",
generator.LiteralExpression(1));
這將創建語句var variable = 1;
。
或者,如果您只想創建變量,但稍后再分配它:
SyntaxGenerator generator = ...;
generator.LocalDeclarationStatement(
generator.TypeExpression(SpecialType.System_Int32),
"variable");
這將生成語句int variable;
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.