public override QueryNode BuildTree (QueryFieldSet fieldSet)
{
field_set = fieldSet;
root = current_parent = new QueryListNode (Keyword.And);
bool last_was_term = false;
while (true) {
QueryToken token = Scan ();
if (token.ID == TokenID.Unknown) {
break;
}
token.Column = token_start_column;
token.Line = token_start_line;
// If we have two terms in a row, put an AND between them
if (last_was_term && token.ID == TokenID.Term)
ParseToken (new QueryToken (TokenID.And));
ParseToken (token);
last_was_term = token.ID == TokenID.Term;
}
return root.Trim ();
}