Ejemplo n.º 1
0
 public override void ExitSubStmt(VBAParser.SubStmtContext context)
 {
     if (_currentScopeAttributes.Any())
     {
         _attributes.Add(_currentScope, _currentScopeAttributes);
     }
 }
Ejemplo n.º 2
0
 public ProcedureNode(VBAParser.SubStmtContext context, string scope, string localScope)
     : this(context, scope, localScope, VBProcedureKind.Sub, context.visibility(), context.ambiguousIdentifier(), null)
 {
     _argsListContext = context.argList();
     _staticNode      = context.STATIC();
     _keyword         = context.SUB();
 }
Ejemplo n.º 3
0
 public override void ExitSubStmt(VBAParser.SubStmtContext context)
 {
     if (!string.IsNullOrEmpty(_currentScope.Item1) && _currentScopeAttributes.Any())
     {
         _attributes.Add(_currentScope, _currentScopeAttributes);
     }
 }
Ejemplo n.º 4
0
        public override void EnterSubStmt(VBAParser.SubStmtContext context)
        {
            var accessibility = GetProcedureAccessibility(context.visibility());
            var name          = context.ambiguousIdentifier().GetText();

            _declarations.Add(CreateDeclaration(name, null, accessibility, DeclarationType.Procedure, context, context.ambiguousIdentifier().GetSelection()));
            SetCurrentScope(name);
        }
        public static string Signature(this VBAParser.SubStmtContext context)
        {
            var visibility     = context.visibility();
            var visibilityText = visibility == null ? string.Empty : visibility.GetText();

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

            return((visibilityText + ' ' + Tokens.Sub + ' ' + identifierText + argsText).Trim());
        }
Ejemplo n.º 6
0
        public override void EnterSubStmt(VBAParser.SubStmtContext context)
        {
            var accessibility = GetProcedureAccessibility(context.visibility());
            var identifier    = context.identifier();

            if (identifier == null)
            {
                return;
            }

            var name        = context.identifier().GetText();
            var declaration = CreateDeclaration(name, null, accessibility, DeclarationType.Procedure, context, context.identifier().GetSelection());

            OnNewDeclaration(declaration);
            SetCurrentScope(declaration, name);
        }
        // we search for the Main Sub
        public override void EnterSubStmt([NotNull] VBAParser.SubStmtContext context)
        {
            if (context.ambiguousIdentifier().GetText().Trim() == "Main_Run" ||
                context.ambiguousIdentifier().GetText().Trim() == "Main_Sub" ||
                context.ambiguousIdentifier().GetText().Trim() == "Main")
            {
                MainFile = true;

                Rewriter.Replace(context.ambiguousIdentifier().Start, "Main");
                // Some function of VB.Net are culture-aware,
                // this means, for instance, that when parsing a double from a
                // string it searchs for the proper-culture decimal separator (e.g, ',' or '.'). So, we set a culture that ensure
                // that VB.Net uses a decimal separator '.'
                Rewriter.InsertBefore(context.block().Start, $"{Environment.NewLine}Dim sw As System.Diagnostics.Stopwatch = System.Diagnostics.Stopwatch.StartNew(){Environment.NewLine}");
                Rewriter.InsertBefore(context.block().Start, $"{Environment.NewLine}System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture{Environment.NewLine}");
                // make the program wait at the end
                Rewriter.InsertBefore(context.block().Stop, $"{Environment.NewLine}Console.WriteLine(\"Press any key to exit the program\"){Environment.NewLine}Console.ReadKey(){Environment.NewLine}");
                Rewriter.InsertBefore(context.block().Stop, $"{Environment.NewLine}sw.Stop(){Environment.NewLine}Console.WriteLine($\"Time elapsed {{sw.Elapsed}}\"){Environment.NewLine}");
            }
        }
Ejemplo n.º 8
0
        public static string GetName(VBAParser.SubStmtContext context, out Interval tokenInterval)
        {
            var nameContext = context.subroutineName();

            return(GetName(nameContext, out tokenInterval));
        }
 public override void EnterSubStmt(VBAParser.SubStmtContext context)
 {
     _resolver.SetCurrentScope(context.ambiguousIdentifier().GetText());
 }
 public override void EnterSubStmt(VBAParser.SubStmtContext context)
 {
     SetCurrentScope(Identifier.GetName(context.subroutineName()));
 }
 public override void EnterSubStmt(VBAParser.SubStmtContext context)
 {
     SetCurrentScope(Identifier.GetName(context.subroutineName().identifier()), DeclarationType.Procedure);
 }
Ejemplo n.º 12
0
 public override void ExitSubStmt([NotNull] VBAParser.SubStmtContext context)
 {
     ExitMeasurableMember();
 }
Ejemplo n.º 13
0
 public override void EnterSubStmt([NotNull] VBAParser.SubStmtContext context)
 {
     _results.Add(new CodeMetricsResult(0, 1, 0));
     _currentMember = _finder.UserDeclarations(DeclarationType.Procedure).Where(d => d.Context == context).First();
 }
Ejemplo n.º 14
0
 public override void EnterSubStmt(VBAParser.SubStmtContext context)
 {
     _currentScopeAttributes = new Attributes();
     _currentScope           = Tuple.Create(context.identifier().GetText(), DeclarationType.Procedure);
 }
Ejemplo n.º 15
0
 public override void EnterSubStmt(VBAParser.SubStmtContext context)
 {
     CheckContext(context, context.END_SUB());
     base.EnterSubStmt(context);
 }
Ejemplo n.º 16
0
 public override void EnterSubStmt(VBAParser.SubStmtContext context)
 {
     SetCurrentScope(context.identifier().GetText(), DeclarationType.Procedure);
 }
 public static Selection GetProcedureSelection(this VBAParser.SubStmtContext context)
 {
     return(GetProcedureContextSelection(context));
 }
 public override void ExitSubStmt(VBAParser.SubStmtContext context)
 {
     SetCurrentScope();
 }
Ejemplo n.º 19
0
 public override void EnterSubStmt(VBAParser.SubStmtContext context)
 {
     _currentScopeAttributes = new Attributes();
     _currentScope           = Tuple.Create(Identifier.GetName(context.subroutineName()), DeclarationType.Procedure);
 }
Ejemplo n.º 20
0
 public override void ExitSubStmt([NotNull] VBAParser.SubStmtContext context)
 => ExitMeasurableMember(_finder.UserDeclarations(DeclarationType.Procedure).Where(d => d.Context == context).First());
Ejemplo n.º 21
0
 public override void EnterSubStmt(VBAParser.SubStmtContext context)
 {
     _currentMember = new QualifiedMemberName(_qualifiedName, context.ambiguousIdentifier().GetText());
 }