示例#1
0
        private ProcedureNode GetNode(VBAParser.FunctionStmtContext context)
        {
            if (context == null)
            {
                return(null);
            }

            var scope      = QualifiedName.ToString();
            var localScope = scope + "." + context.ambiguousIdentifier().GetText();

            return(new ProcedureNode(context, scope, localScope));
        }
        public static string Signature(this VBAParser.FunctionStmtContext context)
        {
            var visibility     = context.visibility();
            var visibilityText = visibility == null ? string.Empty : visibility.GetText();

            var identifierText = context.ambiguousIdentifier().GetText();
            var argsText       = context.argList().GetText();

            var asType     = context.asTypeClause();
            var asTypeText = asType == null ? string.Empty : asType.GetText();

            return((visibilityText + ' ' + Tokens.Function + ' ' + identifierText + argsText + ' ' + asTypeText).Trim());
        }
示例#3
0
        public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context)
        {
            var accessibility = GetProcedureAccessibility(context.visibility());
            var name          = context.ambiguousIdentifier().GetText();

            var asTypeClause = context.asTypeClause();
            var asTypeName   = asTypeClause == null
                ? Tokens.Variant
                : asTypeClause.type().GetText();

            var declaration = CreateDeclaration(name, asTypeName, accessibility, DeclarationType.Function, context, context.ambiguousIdentifier().GetSelection());

            _declarations.Add(declaration);
            SetCurrentScope(name);
        }
示例#4
0
 public ProcedureNode(VBAParser.FunctionStmtContext context, string scope, string localScope)
     : this(context, scope, localScope, VBProcedureKind.Function, context.visibility(), context.ambiguousIdentifier(), () => context.asTypeClause())
 {
     _argsListContext     = context.argList();
     _staticNode          = context.STATIC();
     _keyword             = context.FUNCTION();
     _asTypeClauseContext = context.asTypeClause();
 }
 public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context)
 {
     SetCurrentScope(context.ambiguousIdentifier().GetText(), DeclarationType.Function);
 }
 public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context)
 {
     _resolver.SetCurrentScope(context.ambiguousIdentifier().GetText());
 }
示例#7
0
 public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context)
 {
     _currentMember = new QualifiedMemberName(_qualifiedName, context.ambiguousIdentifier().GetText());
 }