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