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)); }
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)); }
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)); }
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()); }
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)); }
public override void EnterConstStmt(VBAParser.ConstStmtContext context) { _resolver.Resolve(context); }