public void processPackage(string inputFilePath) { #region ANTLR4 necessary stuff var input = new AntlrInputStream(new StreamReader(inputFilePath)); var lexer = new PlSqlLexer(input); var tokens = new CommonTokenStream(lexer); var parser = new PlSqlParser(tokens); PlSqlParser.Create_package_bodyContext context1 = parser.create_package_body(); ParseTreeWalker walker = new ParseTreeWalker(); var bListener = new BODYlistener(); walker.Walk(bListener, context1); #endregion //you can start making changes from this point var converter = new JoinLinksConverter(bListener.joinsList); var uniqueLinks = converter.MakeUniqueLinksList(); using (var storage = new StorageContext(StorageContext.constr)) { Dictionary <string, string> linkToText = new Dictionary <string, string>(); foreach (var link in storage.links.ToList()) { linkToText.Add(link.toText, ""); } List <Link> linkListToConvert = new List <Link>(); linkListToConvert.AddRange(uniqueLinks.Where(link => dbObjectNames.ContainsKey(link.firstTable) && dbObjectNames.ContainsKey(link.secondTable) && !linkToText.ContainsKey(link.ToText()))); LinkDBFormatConverter linkConverter = new LinkDBFormatConverter(linkListToConvert); foreach (var link in linkConverter.Result) { storage.links.Add(link); } storage.SaveChanges(); } }
public override object VisitCreate_package_body([NotNull] PlSqlParser.Create_package_bodyContext context) { Stop(); return(base.VisitCreate_package_body(context)); }