コード例 #1
0
        public void Resolve(VBAParser.DebugPrintStmtContext context)
        {
            if (DebugDeclarations.DebugPrint == null)
            {
                Logger.Warn("Debug.Print (custom declaration) has not been loaded, skipping resolving Debug.Print call.");
                return;
            }
            // Because Debug.Print has a special argument (an output list) instead
            // of normal arguments we can't treat it as a function call.
            var debugPrint  = DebugDeclarations.DebugPrint;
            var debugModule = debugPrint.ParentDeclaration;

            debugModule.AddReference(
                _qualifiedModuleName,
                _currentScope,
                _currentParent,
                context.debugPrint().debugModule(),
                context.debugPrint().debugModule().GetText(),
                debugModule,
                context.debugPrint().debugModule().GetSelection(),
                _annotationService.FindAnnotations(_qualifiedModuleName, context.debugPrint().debugModule().GetSelection().StartLine));
            debugPrint.AddReference(
                _qualifiedModuleName,
                _currentScope,
                _currentParent,
                context.debugPrint().debugPrintSub(),
                context.debugPrint().debugPrintSub().GetText(),
                debugPrint,
                context.debugPrint().debugPrintSub().GetSelection(),
                _annotationService.FindAnnotations(_qualifiedModuleName, context.debugPrint().debugPrintSub().GetSelection().StartLine));
            var outputList = context.outputList();

            if (outputList != null)
            {
                ResolveOutputList(outputList);
            }
        }
コード例 #2
0
 public override void EnterDebugPrintStmt([NotNull] VBAParser.DebugPrintStmtContext context)
 {
     _resolver.Resolve(context);
 }