/******************************************************************************** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).** All rights reserved.** Contact: Nokia Corporation (qt-info@nokia.com)**** This file is part of the QtXmlPatterns module of the Qt Toolkit.**** $QT_BEGIN_LICENSE:LGPL$** No Commercial Usage** This file contains pre-release code and may not be distributed.** You may use this file in accordance with the terms and conditions** contained in the Technology Preview License Agreement accompanying** this package.**** GNU Lesser General Public License Usage** Alternatively, this file may be used under the terms of the GNU Lesser** General Public License version 2.1 as published by the Free Software** Foundation and appearing in the file LICENSE.LGPL included in the** packaging of this file. Please review the following information to** ensure the GNU Lesser General Public License version 2.1 requirements** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.**** In addition, as a special exception, Nokia gives you certain additional** rights. These rights are described in the Nokia Qt LGPL Exception** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.**** If you have questions regarding the use of this file, please contact** Nokia at qt-info@nokia.com.****************** $QT_END_LICENSE$******************************************************************************//** * @file qtokenlookup.cpp * @short This file is generated from TokenLookup.gperf and contains * TokenLookup, a class housing a perfect hash function class for XQuery's keywords. * @author Frans Englich <frans.englich@nokia.com> *//** * @class QPatternist::TokenLookup * @short Contains a perfect hash function for XQuery's keywords. *//** * @fn QPatternist::TokenLookup::value(const QString &keyword) * Looks up @p keyword and returns a pointer to the corresponding value. * * If @p keyword is not contained in the hash, a null pointer is returned. *//** * @file * @short This file is the @c gperf declaration for generating TokenLookup.cpp. * * You generate TokenLookup.cpp by running: * * @code * gperf TokenLookup.gperf --output-file=../src/parser/TokenLookup.cpp * @endcode * * @c gperf generates a perfect hash function, which the tokenizer, src/parser/qxquerytokenizer.cpp, * uses for looking up XQuery keywords. * * @see <a href="http://en.wikipedia.org/wiki/Perfect_hash_function">Perfect hash function, Wikipedia</a> * @see <a href="http://www.gnu.org/software/gperf/manual/gperf.html">Perfect Hash Function Generator</a> */%language=C++/* Declare data const such that the compiler can put them * in the read-only section. */%readonly-tables/* Yes, for crisps sake, we want enums instead of macros. */%enum/* Rename in_word_set to value, such that it's more * like QHash::value(). */%define lookup-function-name value/* Rename Perfect_Hash to TokenLookup. More Qt/Patternist'ish. */%define class-name TokenLookup/* Output initializers for the TokenMap struct. Note the lack * of a space between the comma and ERROR. Anything else is * a syntax error to gperf. Rocket science. */%define initializer-suffix ,ERROR%struct-typestruct TokenMap{ const char *name; const Tokenizer::TokenType token;}%{QT_BEGIN_NAMESPACEnamespace QPatternist{%}/* The strings below are in UTF-16 encoding. Subsequently, each ASCII * character is stored as the ASCII character, followed by a null byte. * Sorted alphabetically. */%%"ancestor", ANCESTOR"ancestor-or-self", ANCESTOR_OR_SELF"and", AND"as", AS"ascending", ASCENDING"assign", ASSIGN"at", AT"attribute", ATTRIBUTE"base-uri", BASEURI"boundary-space", BOUNDARY_SPACE"by", BY"case", CASE"castable", CASTABLE"cast", CAST"child", CHILD"collation", COLLATION"comment", COMMENT"construction", CONSTRUCTION"copy-namespaces", COPY_NAMESPACES"declare", DECLARE"default", DEFAULT"descendant", DESCENDANT"descendant-or-self", DESCENDANT_OR_SELF"descending", DESCENDING"div", DIV"document", DOCUMENT"document-node", DOCUMENT_NODE"element", ELEMENT"else", ELSE"empty", EMPTY"empty-sequence", EMPTY_SEQUENCE"encoding", ENCODING"eq", EQ"every", EVERY"except", EXCEPT"external", EXTERNAL"following", FOLLOWING"following-sibling", FOLLOWING_SIBLING"follows", FOLLOWS"for", FOR"function", FUNCTION"ge", GE"greatest", GREATEST"gt", GT"idiv", IDIV"if", IF"import", IMPORT"inherit", INHERIT"in", IN"instance", INSTANCE"intersect", INTERSECT"is", IS"item", ITEM"lax", LAX"least", LEAST"le", LE"let", LET"lt", LT"mod", MOD"module", MODULE"namespace", NAMESPACE"ne", NE"node", NODE"no-inherit", NO_INHERIT"no-preserve", NO_PRESERVE"of", OF"option", OPTION"ordered", ORDERED"ordering", ORDERING"order", ORDER"or", OR"parent", PARENT"precedes", PRECEDES"preceding", PRECEDING"preceding-sibling", PRECEDING_SIBLING"preserve", PRESERVE"processing-instruction", PROCESSING_INSTRUCTION"return", RETURN"satisfies", SATISFIES"schema-attribute", SCHEMA_ATTRIBUTE"schema-element", SCHEMA_ELEMENT"schema", SCHEMA"self", SELF"some", SOME"stable", STABLE"strict", STRICT"strip", STRIP"text", TEXT"then", THEN"to", TO"treat", TREAT"typeswitch", TYPESWITCH"union", UNION"unordered", UNORDERED"validate", VALIDATE"variable", VARIABLE"version", VERSION"where", WHERE"xquery", XQUERY%%} /* Close the QPatternist namespace. */QT_END_NAMESPACE