private void AdjustArgument(VBAParser.DictionaryAccessContext dictionaryAccessContext, IModuleRewriter rewriter) { var argumentContext = ArgumentContext(dictionaryAccessContext); rewriter.InsertBefore(argumentContext.Start.TokenIndex, "(\""); rewriter.InsertAfter(argumentContext.Stop.TokenIndex, "\")"); }
private ParserRuleContext ArgumentContext(VBAParser.DictionaryAccessContext dictionaryAccessContext) { if (dictionaryAccessContext.parent is VBAParser.DictionaryAccessExprContext dictionaryAccess) { return(dictionaryAccess.unrestrictedIdentifier()); } return(((VBAParser.WithDictionaryAccessExprContext)dictionaryAccessContext.parent).unrestrictedIdentifier()); }
private void InsertDefaultMember(VBAParser.DictionaryAccessContext dictionaryAccessContext, QualifiedSelection selection, DeclarationFinder finder, IModuleRewriter rewriter) { var defaultMemberAccessCode = DefaultMemberAccessCode(selection, finder); rewriter.Replace(dictionaryAccessContext, defaultMemberAccessCode); }
private (Declaration declaration, bool mightHaveSetType) SetTypeDeterminingDeclarationOfExpression(VBAParser.DictionaryAccessContext dictionaryAccess, QualifiedModuleName containingModule, DeclarationFinder finder) { var qualifiedSelection = new QualifiedSelection(containingModule, dictionaryAccess.GetSelection()); var declaration = finder.IdentifierReferences(qualifiedSelection) .Select(reference => reference.Declaration) .LastOrDefault(); return(declaration, MightHaveSetType(declaration)); }