Ejemplo n.º 1
0
        public Token Next()
        {
            if (savedToken != null) {
                Token s = savedToken;
                savedToken = null;
                return s;
            }

            Token t = NextInternal();

            if (last != null && IsElementOrExprStart(t) && IsElement(last)) {
                savedToken = t;
                last = t;
                return new Token(TokenKind.And, t.Offset - 1);
            }
            last = t;
            return t;
        }
Ejemplo n.º 2
0
 bool IsElementOrExprStart(Token t)
 {
     return IsElement(t) || t.Kind == TokenKind.OpenParen || t.Kind == TokenKind.Not;
 }
Ejemplo n.º 3
0
 bool IsElement(Token t)
 {
     return t.Kind == TokenKind.Term || t.Kind == TokenKind.Phrase;
 }