Example #1
0
 internal TypeParser(ParserOptions parserOptions)
     : base(parserOptions)
 {
     _typeRefParser = new TypeRefParser(this, parserOptions);
     _eventParser = new EventParser(_typeRefParser, parserOptions);
     _fieldParser = new FieldParser(_typeRefParser, parserOptions);
     _methodParser = new MethodParser(_typeRefParser, parserOptions);
     _propertyParser = new PropertyParser(_typeRefParser, parserOptions);
 }
Example #2
0
        public SDSolution GetParsedSolution(string solutionFile, ICoreConfigSection sharpDoxConfig, Dictionary<string, string> tokens, bool parseMethodCalls, bool ignoreExcludes = false)
        {
            var sdSolution = new SDSolution(solutionFile);
            var solution = _roslynLoader.LoadSolutionFile(solutionFile);

            var parserOptions = new ParserOptions();
            parserOptions.CodeSolution = solution;
            parserOptions.SDSolution = sdSolution;
            parserOptions.SharpDoxConfig = sharpDoxConfig;
            parserOptions.Tokens = tokens;
            parserOptions.IgnoreExcludes = ignoreExcludes;

            ParseProjects(parserOptions);
            CleanUpNamespaces(sdSolution);

            if (parseMethodCalls) ParseMethodCalls(parserOptions);
            ResolveSeeTokens(parserOptions);
            ResolveUses(parserOptions);

            return sdSolution;
        }
Example #3
0
 internal StrangerTypeParser(ParserOptions parserOptions)
     : base(parserOptions)
 {
 }
Example #4
0
 internal BaseParser(ParserOptions parserOptions)
 {
     ParserOptions = parserOptions;
     DocumentationParser = new DocumentationParser(parserOptions.SeeTokens);
 }
Example #5
0
 internal MethodCallParser(ParserOptions parserOptions)
     : base(parserOptions)
 {
 }
Example #6
0
 internal TypeRefParser(StrangerTypeParser strangerTypeParser, ParserOptions parserOptions) : base(parserOptions)
 {
     _strangerTypeParser = strangerTypeParser;
 }
Example #7
0
 internal NamespaceParser(ParserOptions parserOptions) : base(parserOptions)
 {
     _typeParser       = new TypeParser(parserOptions);
     _descriptionFiles = Directory.EnumerateFiles(Path.GetDirectoryName(parserOptions.SDSolution.SolutionFile), "*.sdnd", SearchOption.AllDirectories).ToList();
 }
Example #8
0
 internal PropertyParser(TypeRefParser typeRefParser, ParserOptions parserOptions)
     : base(parserOptions)
 {
     _typeRefParser = typeRefParser;
 }
Example #9
0
 internal FieldParser(TypeRefParser typeRefParser, ParserOptions parserOptions)
     : base(parserOptions)
 {
     _typeRefParser = typeRefParser;
 }
Example #10
0
        private void ResolveUses(ParserOptions parserOptions)
        {
            for (int i = 0; i < parserOptions.SDSolution.Repositories.Count; i++)
            {
                var sdRepository = parserOptions.SDSolution.Repositories[i];
                ExecuteOnStepMessage(string.Format(_parserStrings.ParsingUseings, sdRepository.TargetFx.Name));
                ExecuteOnStepProgress((int)((double)i / parserOptions.SDSolution.Repositories.Count * 40) + 60);

                var useParser = new UseParser(sdRepository);
                useParser.ResolveAllUses();
            }
        }
Example #11
0
        private void ParseProjects(ParserOptions parserOptions)
        {
            var projects = parserOptions.CodeSolution.Projects.ToList();
            for (int i = 0; i < projects.Count; i++)
            {
                var project = projects[i];
                ExecuteOnStepMessage(string.Format(_parserStrings.CompilingAndParsing, project.Name));
                ExecuteOnStepProgress((int)((double)i / projects.Count * 50));

                var projectCompilation = project.GetCompilationAsync().Result;
                var targetFx = _targetFxParser.GetTargetFx(project.FilePath);
                var sdRepository = parserOptions.SDSolution.GetExistingOrNew(targetFx);

                parserOptions.SDRepository = sdRepository;

                var nparser = new NamespaceParser(parserOptions);
                nparser.ParseProjectNamespacesRecursively(projectCompilation.Assembly.GlobalNamespace);

                if (!_seeTokens.ContainsKey(targetFx))
                {
                    _seeTokens.Add(targetFx, new List<SDToken>());
                }
                _seeTokens[targetFx].AddRange(parserOptions.SeeTokens);
            }
            ExecuteOnStepProgress(40);
        }
Example #12
0
        private void ParseMethodCalls(ParserOptions parserOptions)
        {
            for (int i = 0; i < parserOptions.SDSolution.Repositories.Count; i++)
            {
                var sdRepository = parserOptions.SDSolution.Repositories[i];
                ExecuteOnStepMessage(string.Format(_parserStrings.ParsingMethod, sdRepository.TargetFx.Name));
                ExecuteOnStepProgress((int)((double)i / parserOptions.SDSolution.Repositories.Count * 40) + 60);

                var methodParser = new MethodCallParser(parserOptions);
                methodParser.ParseMethodCalls();
            }
        }
Example #13
0
 internal MethodCallParser(ParserOptions parserOptions) : base(parserOptions)
 {
 }
Example #14
0
 internal BaseParser(ParserOptions parserOptions)
 {
     ParserOptions       = parserOptions;
     DocumentationParser = new DocumentationParser(parserOptions.SeeTokens);
 }
Example #15
0
 internal EventParser(TypeRefParser typeRefParser, ParserOptions parserOptions)
     : base(parserOptions)
 {
     _typeRefParser = typeRefParser;
 }
Example #16
0
 internal MethodParser(TypeRefParser typeRefParser, ParserOptions parserOptions) : base(parserOptions)
 {
     _typeRefParser = typeRefParser;
 }
Example #17
0
 internal PropertyParser(TypeRefParser typeRefParser, ParserOptions parserOptions) : base(parserOptions)
 {
     _typeRefParser = typeRefParser;
 }
Example #18
0
 internal NamespaceParser(ParserOptions parserOptions)
     : base(parserOptions)
 {
     _typeParser = new TypeParser(parserOptions);
     _descriptionFiles = Directory.EnumerateFiles(Path.GetDirectoryName(parserOptions.SDSolution.SolutionFile), "*.sdnd", SearchOption.AllDirectories).ToList();
 }
Example #19
0
 internal TypeRefParser(StrangerTypeParser strangerTypeParser, ParserOptions parserOptions)
     : base(parserOptions)
 {
     _strangerTypeParser = strangerTypeParser;
 }