예제 #1
0
        protected internal virtual FullTextQuery term(QueryScanner scanner)
        {
            FullTextQuery q = null;

            switch (scanner.scan())
            {
            case QueryScanner.TKN_NOT:
                q = term(scanner);
                return((q != null) ? new FullTextQueryUnaryOp(FullTextQuery.Operator.Not, q) : null);

            case QueryScanner.TKN_LPAR:
                q = disjunction(scanner);
                break;

            case QueryScanner.TKN_WORD:
                q = new FullTextQueryMatchOp(scanner.inQuotes ? FullTextQuery.Operator.StrictMatch : FullTextQuery.Operator.Match, scanner.word, scanner.wordPos);
                break;

            case QueryScanner.TKN_EOQ:
                return(null);

            default:
                break;
            }
            scanner.scan();
            return(q);
        }
 public virtual void  Visit(FullTextQueryMatchOp q)
 {
     Visit((FullTextQuery)q);
 }
        protected internal virtual FullTextQuery term(QueryScanner scanner)
        {
            FullTextQuery q = null;
            switch (scanner.scan())
            {
                
                case QueryScanner.TKN_NOT: 
                    q = term(scanner);
                    return (q != null) ? new FullTextQueryUnaryOp(FullTextQuery.Operator.Not, q) : null;
                
                case QueryScanner.TKN_LPAR: 
                    q = disjunction(scanner);
                    break;
                
                case QueryScanner.TKN_WORD: 
                    q = new FullTextQueryMatchOp(scanner.inQuotes ? FullTextQuery.Operator.StrictMatch : FullTextQuery.Operator.Match, scanner.word, scanner.wordPos);
                    break;
                
                case QueryScanner.TKN_EOQ: 
                    return null;

                default:
                    break;
            }
            scanner.scan();
            return q;
        }
 public virtual void  Visit(FullTextQueryMatchOp q)
 {
     Visit((FullTextQuery) q);
 }