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));
        }