public void Resolve(VBAParser.ICS_B_ProcedureCallContext context)
        {
            if (_alreadyResolved.Contains(context))
            {
                return;
            }

            ResolveInternal(context);
        }
        private Declaration ResolveInternal(VBAParser.ICS_B_ProcedureCallContext context)
        {
            if (context == null)
            {
                return(null);
            }

            var identifierContext = context.certainIdentifier();
            var callee            = ResolveInternal(identifierContext, _currentScope);

            if (callee == null)
            {
                return(null);
            }

            var reference = CreateReference(identifierContext, callee);

            callee.AddReference(reference);
            _alreadyResolved.Add(reference.Context);

            return(callee);
        }
예제 #3
0
 public override void EnterICS_B_ProcedureCall(VBAParser.ICS_B_ProcedureCallContext context)
 {
     _resolver.Resolve(context);
 }