public override void EnterVariableSubStmt(VBAParser.VariableSubStmtContext context) { var parent = (VBAParser.VariableStmtContext)context.Parent.Parent; var accessibility = GetMemberAccessibility(parent.visibility()); var identifier = context.identifier(); if (identifier == null) { return; } var name = Identifier.GetName(identifier); var typeHint = Identifier.GetTypeHintValue(identifier); var asTypeClause = context.asTypeClause(); var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); var withEvents = parent.WITHEVENTS() != null; var isAutoObject = asTypeClause != null && asTypeClause.NEW() != null; bool isArray = context.LPAREN() != null; AddDeclaration( CreateDeclaration( name, asTypeName, accessibility, DeclarationType.Variable, context, context.identifier().GetSelection(), isArray, asTypeClause, typeHint, isAutoObject, withEvents)); }
public override void EnterVariableSubStmt(VBAParser.VariableSubStmtContext context) { var parent = (VBAParser.VariableStmtContext)context.Parent.Parent; var accessibility = GetMemberAccessibility(parent.visibility()); var identifier = context.identifier(); if (identifier == null) { return; } var name = identifier.GetText(); var asTypeClause = context.asTypeClause(); var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); var withEvents = parent.WITHEVENTS() != null; var selfAssigned = asTypeClause != null && asTypeClause.NEW() != null; OnNewDeclaration(CreateDeclaration(name, asTypeName, accessibility, DeclarationType.Variable, context, context.identifier().GetSelection(), selfAssigned, withEvents)); }
private string DeclareExplicitVariant(VBAParser.VariableSubStmtContext context, string contextLines, out string instruction, out Selection selection) { if (context == null) { instruction = null; selection = VBEditor.Selection.Empty; return(null); } var parent = (ParserRuleContext)context.Parent.Parent; selection = parent.GetSelection(); instruction = contextLines.Substring(selection.StartColumn - 1); var variable = context.GetText(); var replacement = context.identifier().GetText() + ' ' + Tokens.As + ' ' + Tokens.Variant; var insertIndex = instruction.IndexOf(variable, StringComparison.Ordinal); var result = instruction.Substring(0, insertIndex) + replacement + instruction.Substring(insertIndex + variable.Length); return(result); }
public static string GetName(VBAParser.VariableSubStmtContext context) { var nameContext = context.identifier(); return(GetName(nameContext)); }
public static string GetName(VBAParser.VariableSubStmtContext context, out Interval tokenInterval) { var nameContext = context.identifier(); return(GetName(nameContext, out tokenInterval)); }