private ParseTreeResults GetParseTreeResults(RubberduckParserState state) { var result = new ParseTreeResults(); foreach (var componentTreePair in state.ParseTrees) { /* * Need to reinitialize these for each and every ParseTree we process, since the results are aggregated in the instances themselves * before moving them into the ParseTreeResults after qualifying them */ var obsoleteCallStatementListener = new ObsoleteCallStatementInspection.ObsoleteCallStatementListener(); var obsoleteLetStatementListener = new ObsoleteLetStatementInspection.ObsoleteLetStatementListener(); var emptyStringLiteralListener = new EmptyStringLiteralInspection.EmptyStringLiteralListener(); var argListWithOneByRefParamListener = new ProcedureCanBeWrittenAsFunctionInspection.ArgListWithOneByRefParamListener(); var malformedAnnotationListener = new MalformedAnnotationInspection.MalformedAnnotationStatementListener(); var combinedListener = new CombinedParseTreeListener(new IParseTreeListener[] { obsoleteCallStatementListener, obsoleteLetStatementListener, emptyStringLiteralListener, argListWithOneByRefParamListener, malformedAnnotationListener }); ParseTreeWalker.Default.Walk(combinedListener, componentTreePair.Value); result.ArgListsWithOneByRefParam = result.ArgListsWithOneByRefParam.Concat(argListWithOneByRefParamListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); result.EmptyStringLiterals = result.EmptyStringLiterals.Concat(emptyStringLiteralListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); result.ObsoleteLetContexts = result.ObsoleteLetContexts.Concat(obsoleteLetStatementListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); result.ObsoleteCallContexts = result.ObsoleteCallContexts.Concat(obsoleteCallStatementListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); result.MalformedAnnotations = result.MalformedAnnotations.Concat(malformedAnnotationListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); } return(result); }
private ParseTreeResults GetParseTreeResults(RubberduckParserState state) { var result = new ParseTreeResults(); foreach (var componentTreePair in state.ParseTrees) { /* Need to reinitialize these for each and every ParseTree we process, since the results are aggregated in the instances themselves before moving them into the ParseTreeResults after qualifying them */ var obsoleteCallStatementListener = new ObsoleteCallStatementInspection.ObsoleteCallStatementListener(); var obsoleteLetStatementListener = new ObsoleteLetStatementInspection.ObsoleteLetStatementListener(); var emptyStringLiteralListener = new EmptyStringLiteralInspection.EmptyStringLiteralListener(); var argListWithOneByRefParamListener = new ProcedureCanBeWrittenAsFunctionInspection.ArgListWithOneByRefParamListener(); var malformedAnnotationListener = new MalformedAnnotationInspection.MalformedAnnotationStatementListener(); var combinedListener = new CombinedParseTreeListener(new IParseTreeListener[]{ obsoleteCallStatementListener, obsoleteLetStatementListener, emptyStringLiteralListener, argListWithOneByRefParamListener, malformedAnnotationListener }); ParseTreeWalker.Default.Walk(combinedListener, componentTreePair.Value); result.ArgListsWithOneByRefParam = result.ArgListsWithOneByRefParam.Concat(argListWithOneByRefParamListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); result.EmptyStringLiterals = result.EmptyStringLiterals.Concat(emptyStringLiteralListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); result.ObsoleteLetContexts = result.ObsoleteLetContexts.Concat(obsoleteLetStatementListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); result.ObsoleteCallContexts = result.ObsoleteCallContexts.Concat(obsoleteCallStatementListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); result.MalformedAnnotations = result.MalformedAnnotations.Concat(malformedAnnotationListener.Contexts.Select(context => new QualifiedContext(componentTreePair.Key, context))); } return result; }