public CmsqlExpressionVisitorContext Parse( ContentType contentType, ICmsqlQueryExpression expression) { CmsqlExpressionVisitorContext context = new CmsqlExpressionVisitorContext(contentType); if (contentType == null) { return(context); } if (expression == null) { context.PushNewPropertyCriteriaCollection(); return(context); } CmsqlExpressionVisitor visitor = new CmsqlExpressionVisitor( new QueryConditionToPropertyCriteriaMapper( new PropertyDataTypeResolver(contentType)), context); expression.Accept(visitor); return(context); }
public void Test_can_parse_single_condition_as_expression() { CmsqlParser cmsqlParser = CmsqlParserFactory.CreateParserForQuery("where foo != 'bar'"); CmsqlParser.WhereClauseContext parseTree = cmsqlParser.whereClause(); WhereClauseVisitor visitor = new WhereClauseVisitor(); ICmsqlQueryExpression expression = visitor.VisitWhereClause(parseTree); expression.Should().BeOfType <CmsqlQueryCondition>(); }
public void Test_can_parse_parenthesized_expression_containing_condition_expression() { CmsqlParser cmsqlParser = CmsqlParserFactory.CreateParserForQuery("(foo != 'bar')"); CmsqlParser.ParenthesizedExpressionContext parseTree = (CmsqlParser.ParenthesizedExpressionContext)cmsqlParser.expression(); ExpressionVisitor visitor = new ExpressionVisitor(); ICmsqlQueryExpression expression = visitor.VisitParenthesizedExpression(parseTree); expression.Should().BeOfType <CmsqlQueryCondition>(); expression.Should().NotBeNull(); }
public void Test_can_parse_condition_as_expression() { CmsqlParser cmsqlParser = CmsqlParserFactory.CreateParserForQuery("foo != 'bar'"); CmsqlParser.ConditionExpressionContext parseTree = (CmsqlParser.ConditionExpressionContext)cmsqlParser.expression(); ExpressionVisitor visitor = new ExpressionVisitor(); ICmsqlQueryExpression expression = visitor.VisitConditionExpression(parseTree); expression.Should().BeOfType <CmsqlQueryCondition>(); expression.Should().NotBeNull(); }