private ProcedureNode GetNode(VBAParser.FunctionStmtContext context)
        {
            if (context == null)
            {
                return(null);
            }

            var scope      = Selection.QualifiedName.ToString();
            var localScope = scope + "." + context.identifier().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.identifier().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());
        }
Example #3
0
        public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context)
        {
            var accessibility = GetProcedureAccessibility(context.visibility());
            var identifier    = context.identifier();

            if (identifier == null)
            {
                return;
            }
            var name = identifier.GetText();

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

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

            OnNewDeclaration(declaration);
            SetCurrentScope(declaration, name);
        }
Example #4
0
 public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context)
 {
     SetCurrentScope(context.identifier().GetText(), DeclarationType.Function);
 }
 public ProcedureNode(VBAParser.FunctionStmtContext context, string scope, string localScope)
     : this(context, scope, localScope, VBProcedureKind.Function, context.visibility(), context.identifier(), () => context.asTypeClause())
 {
     _argsListContext     = context.argList();
     _staticNode          = context.STATIC();
     _keyword             = context.FUNCTION();
     _asTypeClauseContext = context.asTypeClause();
 }
Example #6
0
 public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context)
 {
     _currentScopeAttributes = new Attributes();
     _currentScope           = Tuple.Create(context.identifier().GetText(), DeclarationType.Function);
 }