public static ParseCoordinator Create(IVBE vbe, RubberduckParserState state, IAttributeParser attributeParser, IModuleExporter exporter, string serializedDeclarationsPath = null) { var path = serializedDeclarationsPath ?? Path.Combine(Path.GetDirectoryName(Assembly.GetAssembly(typeof(MockParser)).Location), "TestFiles", "Resolver"); Func <IVBAPreprocessor> preprocessorFactory = () => new VBAPreprocessor(double.Parse(vbe.Version, CultureInfo.InvariantCulture)); var projectManager = new SynchronousProjectManager(state, vbe); var moduleToModuleReferenceManager = new ModuleToModuleReferenceManager(); var supertypeClearer = new SynchronousSupertypeClearer(state); var parserStateManager = new SynchronousParserStateManager(state); var referenceRemover = new SynchronousReferenceRemover(state, moduleToModuleReferenceManager); var comSynchronizer = new SynchronousCOMReferenceSynchronizer( state, parserStateManager, path); var builtInDeclarationLoader = new BuiltInDeclarationLoader( state, new List <ICustomDeclarationLoader> { new DebugDeclarations(state), new SpecialFormDeclarations(state), new FormEventDeclarations(state), new AliasDeclarations(state), }); var parseRunner = new SynchronousParseRunner( state, parserStateManager, preprocessorFactory, attributeParser, exporter); var declarationResolveRunner = new SynchronousDeclarationResolveRunner( state, parserStateManager, comSynchronizer); var referenceResolveRunner = new SynchronousReferenceResolveRunner( state, parserStateManager, moduleToModuleReferenceManager, referenceRemover); var parsingStageService = new ParsingStageService( comSynchronizer, builtInDeclarationLoader, parseRunner, declarationResolveRunner, referenceResolveRunner ); var parsingCacheService = new ParsingCacheService( state, moduleToModuleReferenceManager, referenceRemover, supertypeClearer ); return(new ParseCoordinator( state, parsingStageService, parsingCacheService, projectManager, parserStateManager, true)); }
protected ParseRunnerBase( RubberduckParserState state, IParserStateManager parserStateManager, Func <IVBAPreprocessor> preprocessorFactory, IAttributeParser attributeParser, IModuleExporter exporter) { if (state == null) { throw new ArgumentNullException(nameof(state)); } if (parserStateManager == null) { throw new ArgumentNullException(nameof(parserStateManager)); } if (preprocessorFactory == null) { throw new ArgumentNullException(nameof(preprocessorFactory)); } if (attributeParser == null) { throw new ArgumentNullException(nameof(attributeParser)); } _state = state; StateManager = parserStateManager; _preprocessorFactory = preprocessorFactory; _attributeParser = attributeParser; _exporter = exporter; }
public static RubberduckParser Create(VBE vbe, RubberduckParserState state, IAttributeParser attributeParser) { return(new RubberduckParser(vbe, state, attributeParser, () => new VBAPreprocessor(double.Parse(vbe.Version, CultureInfo.InvariantCulture)), new List <ICustomDeclarationLoader> { new DebugDeclarations(state), new FormEventDeclarations(state), new AliasDeclarations(state) }, true)); }
public ComponentParseTask(VBComponent vbComponent, VBAPreprocessor preprocessor, IAttributeParser attributeParser, TokenStreamRewriter rewriter = null) { _attributeParser = attributeParser; _preprocessor = preprocessor; _component = vbComponent; _rewriter = rewriter; _qualifiedName = new QualifiedModuleName(vbComponent); }
public ComponentParseTask(IVBComponent vbComponent, IVBAPreprocessor preprocessor, IAttributeParser attributeParser, TokenStreamRewriter rewriter = null) { _taskId = Guid.NewGuid(); _attributeParser = attributeParser; _preprocessor = preprocessor; _component = vbComponent; _rewriter = rewriter; _qualifiedName = new QualifiedModuleName(vbComponent); _parser = new VBAModuleParser(); }
public ComponentParseTask(QualifiedModuleName module, IVBAPreprocessor preprocessor, IAttributeParser attributeParser, IModuleExporter exporter, TokenStreamRewriter rewriter = null) { _taskId = Guid.NewGuid(); _attributeParser = attributeParser; _exporter = exporter; _preprocessor = preprocessor; _module = module; _rewriter = rewriter; _parser = new VBAModuleParser(); }
public RubberduckParser(VBE vbe, RubberduckParserState state, IAttributeParser attributeParser) { _resolverTokenSource = CancellationTokenSource.CreateLinkedTokenSource(_central.Token); _vbe = vbe; _state = state; _attributeParser = attributeParser; _comReflector = new ReferencedDeclarationsCollector(); state.ParseRequest += ReparseRequested; state.StateChanged += StateOnStateChanged; }
public SynchronousParseRunner( RubberduckParserState state, IParserStateManager parserStateManager, Func <IVBAPreprocessor> preprocessorFactory, IAttributeParser attributeParser, IModuleExporter exporter) : base(state, parserStateManager, preprocessorFactory, attributeParser, exporter) { }
public static ParseCoordinator Create(IVBE vbe, RubberduckParserState state, IAttributeParser attributeParser, string serializedDeclarationsPath = null) { var path = serializedDeclarationsPath ?? Path.Combine(Path.GetDirectoryName(Assembly.GetAssembly(typeof(MockParser)).Location), "TestFiles", "Resolver"); return(new ParseCoordinator(vbe, state, attributeParser, () => new VBAPreprocessor(double.Parse(vbe.Version, CultureInfo.InvariantCulture)), new List <ICustomDeclarationLoader> { new DebugDeclarations(state), new SpecialFormDeclarations(state), new FormEventDeclarations(state), new AliasDeclarations(state), }, true, path)); }
public RubberduckParser( VBE vbe, RubberduckParserState state, IAttributeParser attributeParser, Func <IVBAPreprocessor> preprocessorFactory) { _resolverTokenSource = CancellationTokenSource.CreateLinkedTokenSource(_central.Token); _vbe = vbe; _state = state; _attributeParser = attributeParser; _preprocessorFactory = preprocessorFactory; _comReflector = new ReferencedDeclarationsCollector(_state); state.ParseRequest += ReparseRequested; }
public RubberduckParser( VBE vbe, RubberduckParserState state, IAttributeParser attributeParser, Func <IVBAPreprocessor> preprocessorFactory, IEnumerable <ICustomDeclarationLoader> customDeclarationLoaders, bool isTestScope = false) { _vbe = vbe; _state = state; _attributeParser = attributeParser; _preprocessorFactory = preprocessorFactory; _customDeclarationLoaders = customDeclarationLoaders; _isTestScope = isTestScope; state.ParseRequest += ReparseRequested; }
public ParseCoordinator( IVBE vbe, RubberduckParserState state, IAttributeParser attributeParser, Func <IVBAPreprocessor> preprocessorFactory, IEnumerable <ICustomDeclarationLoader> customDeclarationLoaders, bool isTestScope = false, string serializedDeclarationsPath = null) { _vbe = vbe; _state = state; _attributeParser = attributeParser; _preprocessorFactory = preprocessorFactory; _customDeclarationLoaders = customDeclarationLoaders; _isTestScope = isTestScope; _serializedDeclarationsPath = serializedDeclarationsPath ?? Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Rubberduck", "declarations"); _hostApp = _vbe.HostApplication(); state.ParseRequest += ReparseRequested; }
private static IElementParserSettings FakeSettings(params object[] parsers) { var settings = A.Dummy <IElementParserSettings>(); var foundTextParser = false; foreach (var parser in parsers) { if (parser is INodeParser nodeParser) { INodeParser ignoredParser = null; A.CallTo(() => settings.ChildParsers.TryGet(nodeParser.Name, out ignoredParser)) .Returns(true) .AssignsOutAndRefParameters(nodeParser); } else if (parser is IAttributeParser attributeParser) { IAttributeParser ignoredParser = null; A.CallTo(() => settings.AttributeParsers.TryGet(attributeParser.Name, out ignoredParser)) .Returns(true) .AssignsOutAndRefParameters(attributeParser); } else if (parser is ITextParser textParser) { A.CallTo(() => settings.TextParser).Returns(textParser); foundTextParser = true; } } if (!foundTextParser) { A.CallTo(() => settings.TextParser).Returns(null); } return(settings); }
public void Parse <TReader>(IAttributeParser <TReader> parser, TReader reader) where TReader : IReader { IResultAttributeBuilder attributeBuilder = _createAttributeBuilder(); IAttributeState attributeState = _createAttributeState(this, attributeBuilder); IState previousState = _activeState.ChangeState(attributeState); try { parser.Parse(reader, attributeState); } finally { _activeState.ChangeState(previousState); } // TODO: 'Name' must be set on 'attributeBuilder' !! if (!attributeState.Valid) { attributeBuilder.Invalidate(); } _resultBuilder.AddAttribute(attributeBuilder.Build()); }
public GroupOfPicturesHeader() { _timeCodeAttribute = new TimeCodeAttribute(); }
public SystemClockReferenceAttribute() { _timeStampAttribute = new TimeStampAttribute <Attribute>(Attribute.SystemClockReference, true); _useSystemClockReferenceValidation = (bool)Mpeg2SystemDetector.Configurable[Mpeg2SystemDetector.ConfigurationKey.UseSystemClockReferenceValidation]; _maxTimeGapSeconds = (double)Mpeg2SystemDetector.Configurable[Mpeg2SystemDetector.ConfigurationKey.MaxTimeGapSeconds]; }
public static RubberduckParser Create(VBE vbe, RubberduckParserState state, IAttributeParser attributeParser) { return(new RubberduckParser(vbe, state, attributeParser)); }
public static RubberduckParser Create(VBE vbe, RubberduckParserState state, IAttributeParser attributeParser) { return new RubberduckParser(vbe, state, attributeParser); }
public UserData() { _userDataAttribute = new UserDataAttribute(); }
public CopyrightExtension() { _copyrightNumberAttribute = new CopyrightNumberAttribute(); }
public void GetAttribute(IAttributeParser <IMpeg2SystemReader> parser) { Result.Parse(parser, this); }
public static void Add(this ParserDictionary <IAttributeParser> dic, IAttributeParser parser) => dic.Add(parser.ElementName, parser);
public static RubberduckParser Create(VBE vbe, RubberduckParserState state, IAttributeParser attributeParser) { return(new RubberduckParser(vbe, state, attributeParser, () => new VBAPreprocessor(double.Parse(vbe.Version, CultureInfo.InvariantCulture)))); }
public SystemHeader() { _streamInfoAttributeParser = new StreamInfoAttributeParser(); }
public PackHeader() { _systemClockReferenceAttribute = new SystemClockReferenceAttribute(); }