繁体   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