public void TestExpressionContextType(string value, Type expectedType) { Setup(value); CalcParser.ExpressionContext expression = this._calcParser.expression(); Assert.AreEqual(expectedType, expression.GetType()); }
public void TestSngExpressions(string expr, string expectedQuery) { Setup(expr); CalcParser.ExpressionContext context = this._calcParser.expression(); QueryVisitor visitor = new QueryVisitor(); string query = visitor.Visit(context); Assert.AreEqual(expectedQuery, query); }
public void TestSrqtExpressions(string expression, double expectedResult) { Setup(expression); CalcParser.ExpressionContext context = this._calcParser.expression(); CalcVisitor visitor = new CalcVisitor(); Argument result = visitor.Visit(context); Assert.AreEqual(expectedResult, result.ToDouble()); }
public void TestQueryVariablesOracle(string expr, string expectedQuery) { Setup(expr); CalcParser.ExpressionContext context = this._calcParser.expression(); DbTranslator translator = new OracleTranslator(); QueryVisitor visitor = new QueryVisitor(new TestMetadataResolver(), translator); string query = visitor.Visit(context); Assert.AreEqual(expectedQuery, query); }
public void TestIntegerComplexExpressions(string expression, int expectedResult) { Setup(expression); CalcParser.ExpressionContext context = this._calcParser.expression(); CalcVisitor visitor = new CalcVisitor(); Argument result = visitor.Visit(context); Assert.True(result.IsInteger); Assert.AreEqual(expectedResult, result.ToInteger()); }
public void TestMathConstants(string expr, string expectedQuery) { Setup(expr); CalcParser.ExpressionContext context = this._calcParser.expression(); DbTranslator translator = Substitute.For <DbTranslator>(); IMetadataResolver resolver = Substitute.For <IMetadataResolver>(); QueryVisitor visitor = new QueryVisitor(resolver, translator); string query = visitor.Visit(context); Assert.AreEqual(expectedQuery, query); }
public void TestNormdFirebird(string expr, string expectedQuery) { Setup(expr); CalcParser.ExpressionContext context = this._calcParser.expression(); DbTranslator translator = new FirebirdTranslator(); IMetadataResolver resolver = new TestMetadataResolver(); QueryVisitor visitor = new QueryVisitor(resolver, translator); string query = visitor.Visit(context); Assert.AreEqual(expectedQuery, query); }
public void TestDateExpressionsWithDateResult(string expression, string expectedResult) { Setup(expression); CalcParser.ExpressionContext context = this._calcParser.expression(); CalcVisitor visitor = new CalcVisitor(); Argument result = visitor.Visit(context); Assert.True(result.IsDate); Assert.False(result.IsInteger); Assert.False(result.IsDouble); Assert.IsNotNull(result.ToDate()); Assert.AreEqual(expectedResult, result.ToDate().Value.ToString("yyyy-MM-dd")); }
public Argument Calculate(string expression) { AntlrInputStream inputStream = new AntlrInputStream(expression); CalcLexer calcLexer = new CalcLexer(inputStream); calcLexer.RemoveErrorListeners(); //removes the default console listener calcLexer.AddErrorListener(new ThrowExceptionErrorListener()); CommonTokenStream commonTokenStream = new CommonTokenStream(calcLexer); CalcParser parser = new CalcParser(commonTokenStream); parser.RemoveErrorListeners(); //removes the default console listener parser.AddErrorListener(new ThrowExceptionErrorListener()); CalcParser.ExpressionContext context = parser.expression(); return(this._visitor.Visit(context)); }
public void TestStringFldlenExpressionsFirebird(string expr, string expectedQuery) { Setup(expr); CalcParser.ExpressionContext context = this._calcParser.expression(); DbTranslator translator = new FirebirdTranslator(); IMetadataResolver resolver = Substitute.For <IMetadataResolver>(); resolver .GetField(Arg.Any <string>()) .Returns(callinfo => new FieldInfo { Name = callinfo.ArgAt <string>(0), Type = DFM_FIELD_TYPE.DFM_FT_STRING }); QueryVisitor visitor = new QueryVisitor(resolver, translator); string query = visitor.Visit(context); Assert.AreEqual(expectedQuery, query); }
/// <summary> /// Visit a parse tree produced by <see cref="CalcParser.expression"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitExpression([NotNull] CalcParser.ExpressionContext context) { return(VisitChildren(context)); }
public override void EnterExpression([NotNull] CalcParser.ExpressionContext context) { base.EnterExpression(context); }
private double WalkRight(CalcParser.ExpressionContext context) { return(Visit(context.GetRuleContext <CalcParser.ExpressionContext>(1))); }
/// <summary> /// Exit a parse tree produced by <see cref="CalcParser.expression"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitExpression([NotNull] CalcParser.ExpressionContext context) { }