public void MakeChildrenOptimized(string sourceStr) { Ts.ForEachChildOptimized(this, node => { if (node == null) { return; } var n = (Node)node; n.SourceStr = sourceStr; n.Parent = this; if (n.Pos != null) { n.NodeStart = Scanner.SkipTriviaM(SourceStr, (int)n.Pos); } n.MakeChildrenOptimized(sourceStr); }); }