public override void EnterConstSubStmt(VBAParser.ConstSubStmtContext context) { var parent = (VBAParser.ConstStmtContext)context.Parent; var accessibility = GetMemberAccessibility(parent.visibility()); var asTypeClause = context.asTypeClause(); var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); var identifier = context.identifier(); var typeHint = Identifier.GetTypeHintValue(identifier); var name = Identifier.GetName(identifier); var value = context.expression().GetText(); var constStmt = (VBAParser.ConstStmtContext)context.Parent; var declaration = new ConstantDeclaration( new QualifiedMemberName(_qualifiedName, name), _parentDeclaration, _currentScope, asTypeName, asTypeClause, typeHint, FindAnnotations(constStmt.Start.Line), accessibility, DeclarationType.Constant, value, context, identifier.GetSelection()); AddDeclaration(declaration); }
private string DeclareExplicitVariant(VBAParser.ConstSubStmtContext 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; selection = parent.GetSelection(); instruction = contextLines.Substring(selection.StartColumn - 1); var constant = context.GetText(); var replacement = context.identifier().GetText() + ' ' + Tokens.As + ' ' + Tokens.Variant + ' ' + context.EQ().GetText() + ' ' + context.expression().GetText(); var insertIndex = instruction.IndexOf(constant, StringComparison.Ordinal); var result = instruction.Substring(0, insertIndex) + replacement + instruction.Substring(insertIndex + constant.Length); return(result); }
private string DeclareExplicitVariant(VBAParser.ConstSubStmtContext context, out string instruction) { if (context == null) { instruction = null; return(null); } var parent = (VBAParser.ConstStmtContext)context.Parent; instruction = parent.GetText(); var constant = context.GetText(); var replacement = context.identifier().GetText() + ' ' + Tokens.As + ' ' + Tokens.Variant + ' ' + context.EQ().GetText() + ' ' + context.valueStmt().GetText(); var result = instruction.Replace(constant, replacement); return(result); }
public override void EnterConstSubStmt(VBAParser.ConstSubStmtContext context) { var parent = (VBAParser.ConstStmtContext)context.Parent; var accessibility = GetMemberAccessibility(parent.visibility()); var asTypeClause = context.asTypeClause(); var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); var identifier = context.identifier(); if (identifier == null) { return; } var name = identifier.GetText(); var value = context.valueStmt().GetText(); var declaration = new ValuedDeclaration(new QualifiedMemberName(_qualifiedName, name), _parentDeclaration, _currentScope, asTypeName, accessibility, DeclarationType.Constant, value, context, identifier.GetSelection()); OnNewDeclaration(declaration); }
public static string GetName(VBAParser.ConstSubStmtContext context, out Interval tokenInterval) { var nameContext = context.identifier(); return(GetName(nameContext, out tokenInterval)); }