Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
 public void Accept(IExecutionVisitor executionVisitor)
 {
     executionVisitor.Visit(this);
 }
Esempio n. 5
0
 public void Accept(IExecutionVisitor visitor)
 {
     visitor.Visit(this);
     foreach (IExecution child in Children)
     {
         child.Accept(visitor);
     }
 }