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); }
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); }
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); }
/// <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); }