diff options
Diffstat (limited to 'src/mongo/db/fts/fts_query_parser.h')
-rw-r--r-- | src/mongo/db/fts/fts_query_parser.h | 89 |
1 files changed, 43 insertions, 46 deletions
diff --git a/src/mongo/db/fts/fts_query_parser.h b/src/mongo/db/fts/fts_query_parser.h index 32804fd63fd..b5e8c53207f 100644 --- a/src/mongo/db/fts/fts_query_parser.h +++ b/src/mongo/db/fts/fts_query_parser.h @@ -34,57 +34,54 @@ namespace mongo { - namespace fts { +namespace fts { - struct QueryToken { - enum Type { WHITESPACE, DELIMITER, TEXT, INVALID }; - QueryToken( Type type, StringData data, unsigned offset, bool previousWhiteSpace ) - : type( type ), - data( data ), - offset( offset ), - previousWhiteSpace( previousWhiteSpace ) {} +struct QueryToken { + enum Type { WHITESPACE, DELIMITER, TEXT, INVALID }; + QueryToken(Type type, StringData data, unsigned offset, bool previousWhiteSpace) + : type(type), data(data), offset(offset), previousWhiteSpace(previousWhiteSpace) {} - bool ok() const { return type != INVALID; } - - Type type; - StringData data; - unsigned offset; - bool previousWhiteSpace; - }; + bool ok() const { + return type != INVALID; + } - /** - * The pseudo EXBNF for the query parsing language is: - * - * SEARCH STRING = TOKEN_LIST ( ' ' TOKEN_LIST )* - * - * TOKEN_LIST = SEARCH_TOKEN - * |'-' SEARCH_TOKEN - * | QUOTED_SEARCH_TOKEN - * |'-' QUOTED_SEARCH_TOKEN - * - * QUOTED_SEARCH_TOKEN = '“' SEARCH_TOKEN+ '"' - * - * SEARCH_TOKEN = CHARACTER_EXCLUDING_SPECIAL_CHARS - * - * SPECIAL_CHARS = '-' | ' ' | '"' - */ - class FTSQueryParser { - MONGO_DISALLOW_COPYING( FTSQueryParser ); - public: + Type type; + StringData data; + unsigned offset; + bool previousWhiteSpace; +}; - FTSQueryParser(StringData str); - bool more() const; - QueryToken next(); +/** + * The pseudo EXBNF for the query parsing language is: + * + * SEARCH STRING = TOKEN_LIST ( ' ' TOKEN_LIST )* + * + * TOKEN_LIST = SEARCH_TOKEN + * |'-' SEARCH_TOKEN + * | QUOTED_SEARCH_TOKEN + * |'-' QUOTED_SEARCH_TOKEN + * + * QUOTED_SEARCH_TOKEN = '“' SEARCH_TOKEN+ '"' + * + * SEARCH_TOKEN = CHARACTER_EXCLUDING_SPECIAL_CHARS + * + * SPECIAL_CHARS = '-' | ' ' | '"' + */ +class FTSQueryParser { + MONGO_DISALLOW_COPYING(FTSQueryParser); - private: - QueryToken::Type getType( char c ) const; - bool skipWhitespace(); +public: + FTSQueryParser(StringData str); + bool more() const; + QueryToken next(); - unsigned _pos; - bool _previousWhiteSpace; - const StringData _raw; - }; +private: + QueryToken::Type getType(char c) const; + bool skipWhitespace(); - } + unsigned _pos; + bool _previousWhiteSpace; + const StringData _raw; +}; +} } - |