public TypeHierarchyPass(DeclarationFinder declarationFinder, VBAExpressionParser expressionParser) { _declarationFinder = declarationFinder; var typeBindingContext = new TypeBindingContext(_declarationFinder); var procedurePointerBindingContext = new ProcedurePointerBindingContext(_declarationFinder); _bindingService = new BindingService( _declarationFinder, new DefaultBindingContext(_declarationFinder, typeBindingContext, procedurePointerBindingContext), typeBindingContext, procedurePointerBindingContext); _boundExpressionVisitor = new BoundExpressionVisitor(new AnnotationService(_declarationFinder)); _expressionParser = expressionParser; }
public IdentifierReferenceResolver(QualifiedModuleName qualifiedModuleName, DeclarationFinder finder) { _declarationFinder = finder; _qualifiedModuleName = qualifiedModuleName; _withBlockExpressions = new Stack <IBoundExpression>(); _moduleDeclaration = finder.MatchName(_qualifiedModuleName.ComponentName) .SingleOrDefault(item => (item.DeclarationType == DeclarationType.ClassModule || item.DeclarationType == DeclarationType.ProceduralModule) && item.QualifiedName.QualifiedModuleName.Equals(_qualifiedModuleName)); SetCurrentScope(); var typeBindingContext = new TypeBindingContext(_declarationFinder); var procedurePointerBindingContext = new ProcedurePointerBindingContext(_declarationFinder); _bindingService = new BindingService( _declarationFinder, new DefaultBindingContext(_declarationFinder, typeBindingContext, procedurePointerBindingContext), typeBindingContext, procedurePointerBindingContext); _boundExpressionVisitor = new BoundExpressionVisitor(finder); }