草庐IT

syntaxNode

全部标签

ruby - 学习树顶

我正在尝试自学Ruby的Treetop语法生成器。我发现,不仅“最佳”文档的文档少得可怜,而且它似乎也不像我希望的那样直观地工作。在高层次上,我真的很喜欢比现场文档或视频更好的教程,如果有的话。在较低的层次上,这是一个我根本无法使用的语法:grammarSimpleTestrulenum(float/integer)endrulefloat((('+'/'-')?plain_digits'.'plain_digits)/(('+'/'-')?plain_digits('E'/'e')plain_digits)/(('+'/'-')?plain_digits'.')/(('+'/'-')

c# - 如何在 CompilationUnit 中找到方法符号的 SyntaxNode?

我在一个编译单元中添加了一堆节点,现在我想查找给定符号对应的语法节点:varcompilation=Compilation.Create("HelloWorld").AddSyntaxTrees(SyntaxTree.ParseCompilationUnit(""));ISymbolsymbol=//somearbitrarysymbol,e.g.amethodwhosesyntaxnodeIhadcompilation.GlobalNamespace.GetNamespaceMembers().First();SyntaxTokentoken=???;//howdoIgettheto

c# - 从 Roslyn ClassDeclarationSyntax 获取类全名(包括命名空间)

我有一个来自roslyn语法树的ClassDeclarationSyntax。我是这样读的:vartree=SyntaxTree.ParseText(sourceCode);varroot=(CompilationUnitSyntax)tree.GetRoot();varclasses=root.DescendantNodes().OfType();标识符只包含类的名称,但没有有关命名空间的信息,因此缺少完整的类型名称。喜欢“MyClass”但没有“Namespace1.MyClass”获取语法的命名空间/FulltypeName的推荐方法是什么? 最佳答案

c# - 在给定 SyntaxTree 中的行号的情况下获取 SyntaxNode

我想在给定位置(lineNumber)的情况下获取一行的SyntaxNode。下面的代码应该是不言自明的,但如有任何问题,请告诉我。staticvoidMain(){stringcodeSnippet=@"usingSystem;classProgram{staticvoidMain(string[]args){Console.WriteLine(""Hello,World!"");}}";SyntaxTreetree=SyntaxTree.ParseCompilationUnit(codeSnippet);string[]lines=codeSnippet.Split('\n');S

c# - Roslyn SyntaxNodes 是否被重用?

我一直在查看RoslynCTP而且,虽然它解决了与ExpressiontreeAPI类似的问题,两者都是不可变的,但Roslyn以完全不同的方式这样做:Expression节点没有对父节点的引用,使用ExpressionVisitor进行修改,这就是可以重用大部分内容的原因。另一方面,Roslyn的SyntaxNode具有对其父节点的引用,因此所有节点实际上都变成了一个无法重复使用的block。提供了Update、ReplaceNode等方法来进行修改。这在哪里结束?文件?项目?ISolution?API促进了树的逐步更改(而不是按钮向上),但是每个步骤都生成完整副本吗?他们为什么会做

c# - Roslyn SyntaxNodes 是否被重用?

我一直在查看RoslynCTP而且,虽然它解决了与ExpressiontreeAPI类似的问题,两者都是不可变的,但Roslyn以完全不同的方式这样做:Expression节点没有对父节点的引用,使用ExpressionVisitor进行修改,这就是可以重用大部分内容的原因。另一方面,Roslyn的SyntaxNode具有对其父节点的引用,因此所有节点实际上都变成了一个无法重复使用的block。提供了Update、ReplaceNode等方法来进行修改。这在哪里结束?文件?项目?ISolution?API促进了树的逐步更改(而不是按钮向上),但是每个步骤都生成完整副本吗?他们为什么会做