/// <summary>
        /// Gets the <c>Accessibility</c> for a non-procedure member.
        /// </summary>
        private Accessibility GetMemberAccessibility(VBAParser.VisibilityContext visibilityContext)
        {
            var visibility = visibilityContext == null
                ? "Implicit" // "Private"
                : visibilityContext.GetText();

            return((Accessibility)Enum.Parse(typeof(Accessibility), visibility, true));
        }
        /// <summary>
        /// Gets the <c>Accessibility</c> for a procedure member.
        /// </summary>
        private Accessibility GetProcedureAccessibility(VBAParser.VisibilityContext visibilityContext)
        {
            var visibility = visibilityContext == null
                ? "Implicit" // "Public"
                : visibilityContext.GetText();

            return((Accessibility)Enum.Parse(typeof(Accessibility), visibility));
        }
        public static Accessibility GetAccessibility(this VBAParser.VisibilityContext context)
        {
            if (context == null)
            {
                return(Accessibility.Implicit);
            }

            return((Accessibility)Enum.Parse(typeof(Accessibility), context.GetText()));
        }
示例#4
0
        private ProcedureNode(ParserRuleContext context, string scope, string localScope,
                              VBProcedureKind kind,
                              VBAParser.VisibilityContext visibility,
                              VBAParser.AmbiguousIdentifierContext name,
                              Func <VBAParser.AsTypeClauseContext> asType)
            : base(context, scope, localScope)
        {
            _kind              = kind;
            _name              = name.GetText();
            _accessibility     = visibility.GetAccessibility();
            _visibilityContext = visibility;

            if (asType != null)
            {
                var returnTypeClause = asType();
                _isImplicitReturnType = returnTypeClause == null;

                _returnType = returnTypeClause == null
                                ? Tokens.Variant
                                : returnTypeClause.type().GetText();
            }
        }
示例#5
0
 public override void EnterVisibility(VBAParser.VisibilityContext context)
 {
     _members.Add(new QualifiedContext <ParserRuleContext>(_qualifiedName, context));
 }