public List <string> GetStatements(string script) { var batches = GetBatches(script); var parser = GetParser(); var generator = GetGenerator(); var visitor = new DdlVisitor(generator); visitor.Statements = new List <string>(); foreach (var batch in batches) { IList <ParseError> errors; visitor.PrepareForNewBatch(batch); var fragment = parser.Parse(new StringReader(batch), out errors); if (errors.Count > 0) { Console.WriteLine("errors"); } fragment.Accept(visitor); } var returnableList = new List <string>(); foreach (var statement in visitor.Statements) { if (statement.StartsWith("alter tab", StringComparison.OrdinalIgnoreCase)) { returnableList.Add(statement); continue; } if (statement.StartsWith("create", StringComparison.OrdinalIgnoreCase)) { returnableList.Add(statement); continue; } if (statement.StartsWith("alter", StringComparison.OrdinalIgnoreCase)) { returnableList.Add("CREATE" + statement.Substring(5)); } } return(returnableList); }
public List<string> GetStatements(string script) { var batches = GetBatches(script); var parser = GetParser(); var generator = GetGenerator(); var visitor = new DdlVisitor(generator); visitor.Statements = new List<string>(); foreach (var batch in batches) { IList<ParseError> errors; visitor.PrepareForNewBatch(batch); var fragment = parser.Parse(new StringReader(batch), out errors); if (errors.Count > 0) { Console.WriteLine("errors"); } fragment.Accept(visitor); } var returnableList = new List<string>(); foreach (var statement in visitor.Statements) { if (statement.StartsWith("alter tab", StringComparison.OrdinalIgnoreCase)) { returnableList.Add(statement); continue; } if (statement.StartsWith("create", StringComparison.OrdinalIgnoreCase)) { returnableList.Add(statement); continue; } if (statement.StartsWith("alter", StringComparison.OrdinalIgnoreCase)) { returnableList.Add("CREATE" + statement.Substring(5)); } } return returnableList; }