public override LabeledNode CreateTempNode() { var node = new CSNode() { UseRoslynMatchToWrite = true // This is on purpose, so it wouldn't get written }; return(node); }
public override LabeledNode CreateSimpleDuplicate() { var simpleDuplicate = new CSNode(); simpleDuplicate.STInfo = STInfo; simpleDuplicate.CanHaveType = CanHaveType; simpleDuplicate.IsFragmentRoot = IsFragmentRoot; return(simpleDuplicate); }
public static CSNode CreateNode(SyntaxNode parent) { var children = parent.ChildNodesAndTokens(); var node = new CSNode(); node.STInfo = ((ushort)parent.Kind()).ToString(); node.UseRoslynMatchToWrite = false; node.RoslynSpanStart = parent.Span.Start; node.RoslynSpanEnd = parent.Span.End; foreach (var child in children) { if (child.IsNode) { node.AddChild(CreateNode(child.AsNode())); } else if (child.IsToken) { var tokenNode = new CSNode(); if (child.AsToken().Kind() != SyntaxKind.IdentifierToken) { tokenNode.STInfo = ((ushort)child.AsToken() .Kind()) .ToString(); tokenNode.RoslynSpanStart = child.Span.Start; tokenNode.RoslynSpanEnd = child.Span.End; tokenNode.UseRoslynMatchToWrite = true; tokenNode.CanHaveType = false; tokenNode.IsTreeLeaf = true; } else { tokenNode.STInfo = child.AsToken() .Kind() .ToString(); tokenNode.UseRoslynMatchToWrite = false; tokenNode.CanHaveType = true; var leaf = new CSNode(); leaf.STInfo = child.AsToken().ValueText; leaf.UseRoslynMatchToWrite = false; leaf.CanHaveType = false; leaf.IsTreeLeaf = true; tokenNode.AddChild(leaf); } node.AddChild(tokenNode); } } return(node); }