parseTerm static method
Implementation
static QueryParserState? parseTerm(QueryParser parser) {
var lexeme = parser.consumeLexeme();
if (lexeme == null) {
return null;
}
parser.currentClause.term = lexeme.str.toLowerCase();
if (lexeme.str.contains("*")) {
parser.currentClause.usePipeline = false;
}
var nextLexeme = parser.peekLexeme();
if (nextLexeme == null) {
parser.nextClause();
return null;
}
switch (nextLexeme.type) {
case LexemeType.TERM:
parser.nextClause();
return QueryParser.parseTerm;
case LexemeType.FIELD:
parser.nextClause();
return QueryParser.parseField;
case LexemeType.EDIT_DISTANCE:
return QueryParser.parseEditDistance;
case LexemeType.BOOST:
return QueryParser.parseBoost;
case LexemeType.PRESENCE:
parser.nextClause();
return QueryParser.parsePresence;
default:
var errorMessage = "Unexpected lexeme type '${nextLexeme.type}'";
throw QueryParseError(errorMessage, nextLexeme.start, nextLexeme.end);
}
}