コード例 #1
0
        private static RewriterInfo GetSeparateLocalConstantRemovalInfo(VBAParser.ConstStmtContext constStmtContext)
        {
            var mainBlockStmt = constStmtContext.GetAncestor <VBAParser.MainBlockStmtContext>();
            var startIndex    = mainBlockStmt.Start.TokenIndex;

            var stopIndex = FindStopTokenIndexForRemoval(mainBlockStmt);

            return(new RewriterInfo(startIndex, stopIndex));
        }
コード例 #2
0
 private static RewriterInfo GetLocalConstantRemovalInfo(VBAParser.ConstSubStmtContext target,
                                                         VBAParser.ConstStmtContext constants,
                                                         int count, int itemIndex, IReadOnlyList <VBAParser.ConstSubStmtContext> items)
 {
     if (count == 1)
     {
         return(GetSeparateLocalConstantRemovalInfo(constants));
     }
     return(GetRewriterInfoForTargetRemovedFromListStmt(target.Start, itemIndex, items));
 }
コード例 #3
0
        private static RewriterInfo GetLocalConstantRemovalInfo(VBAParser.ConstSubStmtContext target,
                                                                VBAParser.ConstStmtContext constants,
                                                                int count, int itemIndex, IReadOnlyList <VBAParser.ConstSubStmtContext> items)
        {
            var mainBlockStmt = (VBAParser.MainBlockStmtContext)constants.Parent;
            var startIndex    = mainBlockStmt.Start.TokenIndex;
            var blockStmt     = (VBAParser.BlockStmtContext)mainBlockStmt.Parent;
            var block         = (VBAParser.BlockContext)blockStmt.Parent;
            var statements    = block.blockStmt();

            if (count == 1)
            {
                var stopIndex = FindStopTokenIndex(statements, mainBlockStmt, block);
                return(new RewriterInfo(startIndex, stopIndex));
            }
            return(GetRewriterInfoForTargetRemovedFromListStmt(target.Start, itemIndex, items));
        }
コード例 #4
0
        private string GetDeclarationsText(VBAParser.ConstStmtContext consts)
        {
            var keyword = string.Empty;

            if (consts.visibility() != null)
            {
                keyword += consts.visibility().GetText() + ' ';
            }

            keyword += consts.CONST().GetText() + ' ';

            var newContent = new StringBuilder();

            foreach (var constant in consts.constSubStmt())
            {
                newContent.AppendLine(keyword + constant.GetText());
            }

            return(newContent.ToString());
        }
コード例 #5
0
        private static RewriterInfo GetRewriterInfo(VBAParser.ConstSubStmtContext target, VBAParser.ConstStmtContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context), @"Context is null. Expecting a VBAParser.ConstStmtContext instance.");
            }

            var items     = context.constSubStmt();
            var itemIndex = items.ToList().IndexOf(target);
            var count     = items.Count;

            var element = context.Parent as VBAParser.ModuleDeclarationsElementContext;

            if (element != null)
            {
                return(GetModuleConstantRemovalInfo(target, element, count, itemIndex, items));
            }

            return(GetLocalConstantRemovalInfo(target, context, count, itemIndex, items));
        }
コード例 #6
0
 public override void EnterConstStmt(VBAParser.ConstStmtContext context)
 {
     _resolver.Resolve(context);
 }