簡體   English   中英

Roslyn使用SyntaxGenerator聲明局部變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM