public override State Execute(string input) { if (Repository.GlobalSymbolTable != null && Repository.GlobalSymbolTable.Symbols.Any()) { Console.WriteLine("Press Y to delete current symbols before next query exection."); var key = Console.ReadKey(true); if (key.KeyChar == 'y' || key.KeyChar == 'Y') { clearState.Execute(""); } } try { var queryNode = queryReader.Parse(Repository.Query); //funcVisitor.Visit(queryNode); todo user func symbolVisitor.Visit(queryNode); executionVisitor.Visit(queryNode); Repository.GlobalSymbolTable = queryNode.SymbolTable; } catch (QueryException e) { Console.Clear(); Console.WriteLine(e.Message); return(queryShowState); } Repository.Query = string.Empty; return(resultShowState); }
public override State Execute(string input) { var path = settings.Log.PathQueryFileIn; if (!File.Exists(path)) { Console.WriteLine("Query file not found:" + path); return(null); } var text = File.ReadAllText(path); var queries = text.Split('~'); var j = 0; foreach (var query in queries) { j++; for (int i = 0; i < settings.Log.Cycles; i++) { Console.WriteLine("Performance testing cycle " + i + ", query " + j); var queryNode = queryReader.Parse(query); //funcVisitor.Visit(queryNode); todo user func symbolVisitor.Visit(queryNode); executionVisitor.Visit(queryNode); Reset(); } logger.Write(j); } return(null); }
/// <summary> /// Invites the specified visitor to visit this class. /// </summary> /// <param name="visitor">The class that wants to visit this class.</param> /// <exception cref="ArgumentNullException"> /// If visitor is null. /// </exception> public void Accept(IExecutionVisitor visitor) { if (visitor == null) { throw new ArgumentNullException(); } visitor.Visit(this); }
public void Accept(IExecutionVisitor executionVisitor) { executionVisitor.Visit(this); }
public void Accept(IExecutionVisitor visitor) { visitor.Visit(this); foreach (IExecution child in Children) { child.Accept(visitor); } }