private IExpressionBinding Visit(Declaration module, Declaration parent, VBAParser.MemberAccessExprContext expression, IBoundExpression withBlockVariable, StatementResolutionContext statementContext) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable, StatementResolutionContext.Undefined); return(new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, statementContext, expression.unrestrictedIdentifier())); }
private IExpressionBinding Visit(Declaration module, Declaration parent, VBAParser.MemberAccessExprContext expression) { var lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); return(new MemberAccessProcedurePointerBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, expression.unrestrictedIdentifier(), lExpressionBinding)); }
private IExpressionBinding Visit(Declaration module, Declaration parent, VBAParser.MemberAccessExprContext expression) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); SetPreferProjectOverUdt(lExpressionBinding); return(new MemberAccessTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, expression.unrestrictedIdentifier(), lExpressionBinding)); }
private string GetAttributeNameWithoutProcedureName(VBAParser.MemberAccessExprContext expr) { string name = expr.unrestrictedIdentifier().GetText(); // The simple name expression represents the procedure's name. // We don't want that one though so we simply ignore it. if (expr.lExpression() is VBAParser.SimpleNameExprContext) { return(name); } return(string.Format("{0}.{1}", GetAttributeNameWithoutProcedureName((VBAParser.MemberAccessExprContext)expr.lExpression()), name)); }
public MemberAccessProcedurePointerBinding( DeclarationFinder declarationFinder, Declaration project, Declaration module, Declaration parent, VBAParser.MemberAccessExprContext expression, ParserRuleContext unrestrictedNameContext, IExpressionBinding lExpressionBinding) { _declarationFinder = declarationFinder; _project = project; _module = module; _parent = parent; _expression = expression; _lExpressionBinding = lExpressionBinding; _unrestrictedNameContext = unrestrictedNameContext; }
public MemberAccessDefaultBinding( DeclarationFinder declarationFinder, Declaration project, Declaration module, Declaration parent, VBAParser.MemberAccessExprContext expression, IExpressionBinding lExpressionBinding, StatementResolutionContext statementContext, ParserRuleContext unrestrictedNameContext) : this( declarationFinder, project, module, parent, expression, null, Identifier.GetName(expression.unrestrictedIdentifier()), statementContext, unrestrictedNameContext) { _lExpressionBinding = lExpressionBinding; }