Example #1
0
        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();
            var name        = identifier.GetText();
            var value       = context.valueStmt().GetText();
            var declaration = new ValuedDeclaration(new QualifiedMemberName(_qualifiedName, name), _currentScope, asTypeName, accessibility, DeclarationType.Constant, value, context, identifier.GetSelection());

            _declarations.Add(declaration);
        }
        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);
        }