Example #1
0
        public override object Visit(OrSearchExpression expr, object data)
        {
            bool first = true;

            foreach (var e in expr.Expressions)
            {
                if (!first)
                {
                    writer.Write(" oder ");
                }
                else
                {
                    first = false;
                }
                if (e is AndSearchExpression)
                {
                    writer.Write("(");
                }
                Visit(e, data);
                if (e is AndSearchExpression)
                {
                    writer.Write(")");
                }
            }
            return(null);
        }
Example #2
0
        /// ListSearchExpression ::= "(" ( AndExpressionList | OrExpressionList ) ")"
        SearchExpression ListSearchExpression()
        {
            Expect(TokenKind.OpenParen);
            var op = ListOrSearchExpression();
            List <SearchExpression> expr = null;

            if (la.Kind == TokenKind.And)
            {
                OperatorList(op, ref expr, TokenKind.And);
                op = new AndSearchExpression()
                {
                    Expressions = expr.ToArray()
                };
            }
            else if (la.Kind == TokenKind.Or)
            {
                OperatorList(op, ref expr, TokenKind.Or);
                op = new OrSearchExpression()
                {
                    Expressions = expr.ToArray()
                };
            }
            Expect(TokenKind.CloseParen);
            return(op);
        }
Example #3
0
 public abstract S Visit(OrSearchExpression expr, T data);