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.ambiguousIdentifier().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.ambiguousIdentifier(); 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); }