public void FormatVisitor_FunctionExpression_With_Multiple_Arguments_Can_Be_Formatted()
 {
     MathExpression expression = MathExpression.Parse("pow(x,y)+1");
     FormatVisitor visitor = new FormatVisitor();
     string format = visitor.Format(expression);
     Assert.AreEqual("(pow(x,y)+1)", format);
 }
 public void FormatVisitor_ConstantExpression_Will_Use_Name_Instead_Of_Value_When_Formatted()
 {
     MathExpression expression = MathExpression.Parse("3*pi");
     FormatVisitor visitor = new FormatVisitor();
     string format = visitor.Format(expression);
     Assert.AreEqual("(3*pi)", format);
 }
 public void FormatVisitor_FunctionExpression_Can_Be_Formatted()
 {
     MathExpression expression = MathExpression.Parse("sqrt(x + y)");
     FormatVisitor visitor = new FormatVisitor();
     string format = visitor.Format(expression);
     Assert.AreEqual("sqrt((x+y))", format);
 }
 public void FormatVisitor_ConstantExpression_Can_Be_Formatted()
 {
     MathExpression expression = MathExpression.Parse("pi*e");
     FormatVisitor visitor = new FormatVisitor();
     string format = visitor.Format(expression);
     Assert.AreEqual("(pi*e)", format);
 }
 public void FormatVisitor_ArithmeticExpression_Can_Be_Formatted()
 {
     MathExpression expression = MathExpression.Parse("-1+2-3*4/5^6%7");
     FormatVisitor visitor = new FormatVisitor();
     string format = visitor.Format(expression);
     Assert.AreEqual("((-1+2)-(((3*4)/(5^6))%7))", format);
 }
Пример #6
0
        public override void BuildExportList()
        {
            CreateDataSource();
            SetupExpressionRunner(ReportModel.ReportSettings, DataSource);
            base.BuildExportList();
            BuildDetail();
            BuildReportFooter();
            AddPage(CurrentPage);
            UpdatePageInfo();
            ExpressionRunner.Run();
            var formatVisitor = new FormatVisitor();

            formatVisitor.Run(Pages);
            var dv = new DebugVisitor();

            dv.Run(Pages);
        }
Пример #7
0
        public string Format()
        {
            FormatVisitor v = new FormatVisitor(this);

            query.Accept(v);
            string sql = Render();

            string[] lines = sql.Split('\n');
            sql = "";
            foreach (string line in lines)
            {
                if (line.Trim() != "")
                {
                    sql += line + '\n';
                }
            }
            return(sql);
        }
Пример #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Query"/> class.
        /// </summary>
        /// <param name="log">The log to query</param>
        /// <param name="settings">The application settings</param>
        /// <param name="query">The query string to execute</param>
        internal Query(Log log, Node tree)
        {
            _log  = log;
            _tree = tree;

            // define result columns for the query
            var visitor = new FieldsVisitor();

            _tree.Accept(visitor);
            _columns = visitor.Fields;
            if (visitor.GeneratesDynamicFields)
            {
                _dynamicColumns = new Dictionary <string, Type>();
            }

            // print the query tree for debugging
            var format = new FormatVisitor();

            _tree.Accept(format);
            _logger.Info($"Created query tree\r\n" + format.ToString().TrimEnd());
        }
 public void FormatVisitor_NegatedExpression_Can_Be_Formatted()
 {
     MathExpression expression = MathExpression.Parse("-(12+1)");
     FormatVisitor visitor = new FormatVisitor();
     string format = visitor.Format(expression);
     Assert.AreEqual("-(12+1)", format);
 }
 public void FormatVisitor_VariableExpression_Can_Be_Formatted()
 {
     MathExpression expression = MathExpression.Parse("x+y");
     FormatVisitor visitor = new FormatVisitor();
     string format = visitor.Format(expression);
     Assert.AreEqual("(x+y)", format);
 }