コード例 #1
0
 // ReSharper disable once UnusedMember.Local
 void MeasureTrivias(SyntaxNode root, SyntaxStatistics statistics)
 {
     foreach (var token in root.DescendantTokens())
     {
         statistics.MeasureTrivia(token);
     }
 }
コード例 #2
0
        public void AllGds()
        {
            var testDir = @"c:\ws\xtplus\main";

            if (!Directory.Exists(testDir))
            {
                Assert.Warn($"Test directory '{testDir}' does not exist.");
                return;
            }

            var stats = new SyntaxStatistics();
            var count = 0;

            foreach (var file in Directory.EnumerateFiles(
                         testDir, "*.gd", SearchOption.AllDirectories))
            {
                count++;

                var txt    = File.ReadAllText(file);
                var source = SourceText.From(txt);
                var tree   = SyntaxTree.Parse(source);

                EnsureContinousNodes(0, tree.Root);
                EnsureContinousTokens(tree.Root);

                //MeasureTrivias(tree.Root, stats);

                if (tree.Diagnostics.Length > 0)
                {
                    Assert.Warn($"{file}\r\n{tree.Diagnostics.First().Location}");
                }
            }

            TestContext.Out.WriteLine(stats.ToString());
            TestContext.Out.WriteLine($"{count} files processed.");
        }