KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to create a method that converts a regular sql statement to c# objects, So i decided to use Irony to parse the sql statement then i return the statement as an Action that contains the type of the statement and the values of it depending on the type Here is my non completed code [ Because i got frustrated as i don't know what to do then ] private List<Action> ParseStatement(string statement) { var parser = new Parser(new SqlGrammar()); var parsed = parser.Parse(statement); var status = parsed.Status; while (parsed.Status == ParseTreeStatus.Parsing) { Task.Yield(); } if (status == ParseTreeStatus.Error) throw new ArgumentException("The statement cannot be parsed."); ParseTreeNode parsedStmt = parsed.Root.ChildNodes[0]; switch (parsedStmt.Term.Name) { case "insertStmt": var table = parsedStmt.ChildNodes.Find(x => x.Term.Name == "Id").ChildNodes[0].Token.ValueString; var valuesCount = parsedStmt.ChildNodes.Find(x => x.Term.Name == "insertData").ChildNodes.Find( x => x.Term.Name == "exprList").ChildNodes.Count; var values = parsedStmt.ChildNodes.Find(x => x.Term.Name == "insertData").ChildNodes.Find( x => x.Term.Name == "exprList").ChildNodes; foreach (var value in values) { string type = value.Token.Terminal.Name; } break; } return null; } private Type ParseType(string type) { switch (type) { case "number": return typeof (int); case "string": return typeof (string); } return null; } So the Question Here is : How could i make use of Irony to convert a string SQL Statement to a c# objects ? Here is an example of what i want to achieve : INSERT INTO Persons VALUES (4,'Nilsen', 'Jo
Tags (comma-separated)
Save Edits
Cancel