diff options
author | Erik Verbruggen <erik.verbruggen@theqtcompany.com> | 2015-06-10 11:57:33 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@theqtcompany.com> | 2015-06-10 12:47:12 +0000 |
commit | ec9ab0ba6d0e28fc63f9ff28135ec9911ffa882b (patch) | |
tree | 922d4119ff2e535ac313bbbfcfca33b744524e77 /src/xmlpatterns/parser/qquerytransformparser.cpp | |
parent | 8d5f3bd730486b3fd3d5b1782fa70b80108c0ba4 (diff) | |
download | qtxmlpatterns-ec9ab0ba6d0e28fc63f9ff28135ec9911ffa882b.tar.gz |
Prefixed all tokens with T_ to prevent collisions with macros.
Identifier names like "IN" and "AS" have a high probability of being
defined by certain platforms as macros, esp. with Visual Studio.
Change-Id: I1fbc0ae33f94387b83377181b6012683a418459a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/xmlpatterns/parser/qquerytransformparser.cpp')
-rw-r--r-- | src/xmlpatterns/parser/qquerytransformparser.cpp | 4449 |
1 files changed, 1920 insertions, 2529 deletions
diff --git a/src/xmlpatterns/parser/qquerytransformparser.cpp b/src/xmlpatterns/parser/qquerytransformparser.cpp index 0ef0c45..f084da3 100644 --- a/src/xmlpatterns/parser/qquerytransformparser.cpp +++ b/src/xmlpatterns/parser/qquerytransformparser.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** -** This file is part of the QtXmlPatterns of the Qt Toolkit. +** This file is part of the QtXmlPatterns module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage @@ -41,22 +41,22 @@ // // We mean it. -/* A Bison parser, made by GNU Bison 2.5. */ +/* A Bison parser, made by GNU Bison 3.0.2. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -69,7 +69,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -87,7 +87,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.5" +#define YYBISON_VERSION "3.0.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -101,30 +101,24 @@ /* Pull parsers. */ #define YYPULL 1 -/* Using locations. */ -#define YYLSP_NEEDED 1 /* Substitute the variable and function names. */ #define yyparse XPathparse #define yylex XPathlex #define yyerror XPatherror -#define yylval XPathlval -#define yychar XPathchar #define yydebug XPathdebug #define yynerrs XPathnerrs -#define yylloc XPathlloc -/* Copy the first part of user declarations. */ -/* Line 268 of yacc.c */ -#line 52 "querytransformparser.ypp" +/* Copy the first part of user declarations. */ +#line 44 "querytransformparser.ypp" /* yacc.c:339 */ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. +** Copyright (C) 2015 The Qt Company Ltd ** Contact: http://www.qt.io/licensing/ ** -** This file is part of the QtXmlPatterns of the Qt Toolkit. +** This file is part of the QtXmlPatterns module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage @@ -189,7 +183,7 @@ #include <private/qcontextitem_p.h> #include <private/qcopyof_p.h> #include <private/qcurrentitemstore_p.h> -#include <private/qxmldebug_p.h> +#include <private/qdebug_p.h> #include <private/qdelegatingnamespaceresolver_p.h> #include <private/qdocumentconstructor_p.h> #include <private/qelementconstructor_p.h> @@ -1167,14 +1161,15 @@ static Expression::Ptr createReturnOrderBy(const OrderSpecTransfer::List &orderS } +#line 1122 "qquerytransformparser.cpp" /* yacc.c:339 */ -/* Line 268 of yacc.c */ -#line 1138 "qquerytransformparser.cpp" - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE @@ -1184,215 +1179,218 @@ static Expression::Ptr createReturnOrderBy(const OrderSpecTransfer::List &orderS # define YYERROR_VERBOSE 1 #endif -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 +/* In a future release of Bison, this section will be replaced + by #include "qquerytransformparser_p.h". */ +#ifndef YY_XPATH_QQUERYTRANSFORMPARSER_P_H_INCLUDED +# define YY_XPATH_QQUERYTRANSFORMPARSER_P_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int XPathdebug; #endif - -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - END_OF_FILE = 0, - STRING_LITERAL = 258, - NON_BOUNDARY_WS = 259, - XPATH2_STRING_LITERAL = 260, - QNAME = 261, - NCNAME = 262, - CLARK_NAME = 263, - ANY_LOCAL_NAME = 264, - ANY_PREFIX = 265, - NUMBER = 266, - XPATH2_NUMBER = 267, - ANCESTOR = 268, - ANCESTOR_OR_SELF = 269, - AND = 270, - APOS = 271, - APPLY_TEMPLATE = 272, - AS = 273, - ASCENDING = 274, - ASSIGN = 275, - AT = 276, - AT_SIGN = 277, - ATTRIBUTE = 278, - AVT = 279, - BAR = 280, - BASEURI = 281, - BEGIN_END_TAG = 282, - BOUNDARY_SPACE = 283, - BY = 284, - CALL_TEMPLATE = 285, - CASE = 286, - CASTABLE = 287, - CAST = 288, - CHILD = 289, - COLLATION = 290, - COLONCOLON = 291, - COMMA = 292, - COMMENT = 293, - COMMENT_START = 294, - CONSTRUCTION = 295, - COPY_NAMESPACES = 296, - CURLY_LBRACE = 297, - CURLY_RBRACE = 298, - DECLARE = 299, - DEFAULT = 300, - DESCENDANT = 301, - DESCENDANT_OR_SELF = 302, - DESCENDING = 303, - DIV = 304, - DOCUMENT = 305, - DOCUMENT_NODE = 306, - DOLLAR = 307, - DOT = 308, - DOTDOT = 309, - ELEMENT = 310, - ELSE = 311, - EMPTY = 312, - EMPTY_SEQUENCE = 313, - ENCODING = 314, - END_SORT = 315, - EQ = 316, - ERROR = 317, - EVERY = 318, - EXCEPT = 319, - EXTERNAL = 320, - FOLLOWING = 321, - FOLLOWING_SIBLING = 322, - FOLLOWS = 323, - FOR_APPLY_TEMPLATE = 324, - FOR = 325, - FUNCTION = 326, - GE = 327, - G_EQ = 328, - G_GE = 329, - G_GT = 330, - G_LE = 331, - G_LT = 332, - G_NE = 333, - GREATEST = 334, - GT = 335, - IDIV = 336, - IF = 337, - IMPORT = 338, - INHERIT = 339, - IN = 340, - INSTANCE = 341, - INTERSECT = 342, - IS = 343, - ITEM = 344, - LAX = 345, - LBRACKET = 346, - LEAST = 347, - LE = 348, - LET = 349, - LPAREN = 350, - LT = 351, - MAP = 352, - MATCHES = 353, - MINUS = 354, - MODE = 355, - MOD = 356, - MODULE = 357, - NAME = 358, - NAMESPACE = 359, - NE = 360, - NODE = 361, - NO_INHERIT = 362, - NO_PRESERVE = 363, - OF = 364, - OPTION = 365, - ORDERED = 366, - ORDERING = 367, - ORDER = 368, - OR = 369, - PARENT = 370, - PI_START = 371, - PLUS = 372, - POSITION_SET = 373, - PRAGMA_END = 374, - PRAGMA_START = 375, - PRECEDES = 376, - PRECEDING = 377, - PRECEDING_SIBLING = 378, - PRESERVE = 379, - PRIORITY = 380, - PROCESSING_INSTRUCTION = 381, - QUESTION = 382, - QUICK_TAG_END = 383, - QUOTE = 384, - RBRACKET = 385, - RETURN = 386, - RPAREN = 387, - SATISFIES = 388, - SCHEMA_ATTRIBUTE = 389, - SCHEMA_ELEMENT = 390, - SCHEMA = 391, - SELF = 392, - SEMI_COLON = 393, - SLASH = 394, - SLASHSLASH = 395, - SOME = 396, - SORT = 397, - STABLE = 398, - STAR = 399, - STRICT = 400, - STRIP = 401, - SUCCESS = 402, - COMMENT_CONTENT = 403, - PI_CONTENT = 404, - PI_TARGET = 405, - XSLT_VERSION = 406, - TEMPLATE = 407, - TEXT = 408, - THEN = 409, - TO = 410, - TREAT = 411, - TUNNEL = 412, - TYPESWITCH = 413, - UNION = 414, - UNORDERED = 415, - VALIDATE = 416, - VARIABLE = 417, - VERSION = 418, - WHERE = 419, - XQUERY = 420, - INTERNAL = 421, - INTERNAL_NAME = 422, - CURRENT = 423 - }; + enum yytokentype + { + T_END_OF_FILE = 0, + T_STRING_LITERAL = 258, + T_NON_BOUNDARY_WS = 259, + T_XPATH2_STRING_LITERAL = 260, + T_QNAME = 261, + T_NCNAME = 262, + T_CLARK_NAME = 263, + T_ANY_LOCAL_NAME = 264, + T_ANY_PREFIX = 265, + T_NUMBER = 266, + T_XPATH2_NUMBER = 267, + T_ANCESTOR = 268, + T_ANCESTOR_OR_SELF = 269, + T_AND = 270, + T_APOS = 271, + T_APPLY_TEMPLATE = 272, + T_AS = 273, + T_ASCENDING = 274, + T_ASSIGN = 275, + T_AT = 276, + T_AT_SIGN = 277, + T_ATTRIBUTE = 278, + T_AVT = 279, + T_BAR = 280, + T_BASEURI = 281, + T_BEGIN_END_TAG = 282, + T_BOUNDARY_SPACE = 283, + T_BY = 284, + T_CALL_TEMPLATE = 285, + T_CASE = 286, + T_CASTABLE = 287, + T_CAST = 288, + T_CHILD = 289, + T_COLLATION = 290, + T_COLONCOLON = 291, + T_COMMA = 292, + T_COMMENT = 293, + T_COMMENT_START = 294, + T_CONSTRUCTION = 295, + T_COPY_NAMESPACES = 296, + T_CURLY_LBRACE = 297, + T_CURLY_RBRACE = 298, + T_DECLARE = 299, + T_DEFAULT = 300, + T_DESCENDANT = 301, + T_DESCENDANT_OR_SELF = 302, + T_DESCENDING = 303, + T_DIV = 304, + T_DOCUMENT = 305, + T_DOCUMENT_NODE = 306, + T_DOLLAR = 307, + T_DOT = 308, + T_DOTDOT = 309, + T_ELEMENT = 310, + T_ELSE = 311, + T_EMPTY = 312, + T_EMPTY_SEQUENCE = 313, + T_ENCODING = 314, + T_END_SORT = 315, + T_EQ = 316, + T_ERROR = 317, + T_EVERY = 318, + T_EXCEPT = 319, + T_EXTERNAL = 320, + T_FOLLOWING = 321, + T_FOLLOWING_SIBLING = 322, + T_FOLLOWS = 323, + T_FOR_APPLY_TEMPLATE = 324, + T_FOR = 325, + T_FUNCTION = 326, + T_GE = 327, + T_G_EQ = 328, + T_G_GE = 329, + T_G_GT = 330, + T_G_LE = 331, + T_G_LT = 332, + T_G_NE = 333, + T_GREATEST = 334, + T_GT = 335, + T_IDIV = 336, + T_IF = 337, + T_IMPORT = 338, + T_INHERIT = 339, + T_IN = 340, + T_INSTANCE = 341, + T_INTERSECT = 342, + T_IS = 343, + T_ITEM = 344, + T_LAX = 345, + T_LBRACKET = 346, + T_LEAST = 347, + T_LE = 348, + T_LET = 349, + T_LPAREN = 350, + T_LT = 351, + T_MAP = 352, + T_MATCHES = 353, + T_MINUS = 354, + T_MODE = 355, + T_MOD = 356, + T_MODULE = 357, + T_NAME = 358, + T_NAMESPACE = 359, + T_NE = 360, + T_NODE = 361, + T_NO_INHERIT = 362, + T_NO_PRESERVE = 363, + T_OF = 364, + T_OPTION = 365, + T_ORDERED = 366, + T_ORDERING = 367, + T_ORDER = 368, + T_OR = 369, + T_PARENT = 370, + T_PI_START = 371, + T_PLUS = 372, + T_POSITION_SET = 373, + T_PRAGMA_END = 374, + T_PRAGMA_START = 375, + T_PRECEDES = 376, + T_PRECEDING = 377, + T_PRECEDING_SIBLING = 378, + T_PRESERVE = 379, + T_PRIORITY = 380, + T_PROCESSING_INSTRUCTION = 381, + T_QUESTION = 382, + T_QUICK_TAG_END = 383, + T_QUOTE = 384, + T_RBRACKET = 385, + T_RETURN = 386, + T_RPAREN = 387, + T_SATISFIES = 388, + T_SCHEMA_ATTRIBUTE = 389, + T_SCHEMA_ELEMENT = 390, + T_SCHEMA = 391, + T_SELF = 392, + T_SEMI_COLON = 393, + T_SLASH = 394, + T_SLASHSLASH = 395, + T_SOME = 396, + T_SORT = 397, + T_STABLE = 398, + T_STAR = 399, + T_STRICT = 400, + T_STRIP = 401, + T_SUCCESS = 402, + T_COMMENT_CONTENT = 403, + T_PI_CONTENT = 404, + T_PI_TARGET = 405, + T_XSLT_VERSION = 406, + T_TEMPLATE = 407, + T_TEXT = 408, + T_THEN = 409, + T_TO = 410, + T_TREAT = 411, + T_TUNNEL = 412, + T_TYPESWITCH = 413, + T_UNION = 414, + T_UNORDERED = 415, + T_VALIDATE = 416, + T_VARIABLE = 417, + T_VERSION = 418, + T_WHERE = 419, + T_XQUERY = 420, + T_INTERNAL = 421, + T_INTERNAL_NAME = 422, + T_CURRENT = 423 + }; #endif +/* Value type. */ - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - +/* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE +typedef struct YYLTYPE YYLTYPE; +struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; -} YYLTYPE; -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +}; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif -/* Copy the second part of user declarations. */ +int XPathparse (QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo); + +#endif /* !YY_XPATH_QQUERYTRANSFORMPARSER_P_H_INCLUDED */ + +/* Copy the second part of user declarations. */ -/* Line 343 of yacc.c */ -#line 1361 "qquerytransformparser.cpp" +#line 1351 "qquerytransformparser.cpp" /* yacc.c:358 */ #ifdef short # undef short @@ -1406,11 +1404,8 @@ typedef unsigned char yytype_uint8; #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; #else -typedef short int yytype_int8; +typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -1430,8 +1425,7 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif ! defined YYSIZE_T # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -1445,38 +1439,67 @@ typedef short int yytype_int16; # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YYUSE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YYUSE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -static int -YYID (yyi) - int yyi; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return yyi; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + #if ! defined yyoverflow || YYERROR_VERBOSE @@ -1495,9 +1518,9 @@ YYID (yyi) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif @@ -1507,8 +1530,8 @@ YYID (yyi) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -1524,7 +1547,7 @@ YYID (yyi) # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -1532,15 +1555,13 @@ YYID (yyi) # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -1550,8 +1571,8 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ - && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ + && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -1577,35 +1598,35 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from FROM to TO. The source and destination do +/* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) # else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ @@ -1621,17 +1642,19 @@ union yyalloc #define YYNNTS 237 /* YYNRULES -- Number of rules. */ #define YYNRULES 472 -/* YYNRULES -- Number of states. */ +/* YYNSTATES -- Number of states. */ #define YYNSTATES 812 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 423 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1680,303 +1703,106 @@ static const yytype_uint8 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 6, 9, 10, 16, 17, 20, 23, - 26, 33, 34, 37, 40, 43, 46, 49, 52, 55, - 58, 66, 67, 68, 84, 85, 88, 89, 91, 94, - 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, - 122, 127, 129, 131, 133, 135, 142, 149, 155, 160, - 162, 164, 170, 173, 176, 183, 185, 187, 189, 191, - 197, 203, 210, 211, 215, 219, 226, 227, 231, 232, - 235, 237, 241, 251, 253, 256, 257, 260, 265, 267, - 269, 270, 282, 283, 285, 289, 293, 295, 297, 301, - 303, 305, 309, 311, 313, 316, 319, 321, 325, 329, - 331, 333, 337, 341, 343, 345, 347, 351, 355, 357, - 359, 361, 363, 365, 370, 371, 374, 375, 378, 380, - 384, 386, 388, 390, 392, 393, 394, 405, 406, 407, - 418, 420, 422, 424, 425, 429, 430, 440, 441, 450, - 452, 454, 456, 460, 466, 467, 469, 472, 476, 478, - 483, 484, 486, 488, 489, 491, 492, 495, 499, 503, - 506, 508, 510, 511, 512, 522, 523, 524, 534, 536, - 537, 538, 548, 549, 550, 560, 562, 565, 566, 573, - 574, 575, 584, 586, 588, 589, 593, 597, 598, 605, - 614, 616, 620, 622, 626, 628, 630, 632, 634, 636, - 640, 642, 646, 648, 650, 652, 656, 658, 660, 662, - 664, 666, 670, 672, 676, 678, 680, 682, 684, 686, - 691, 693, 698, 700, 705, 707, 712, 714, 717, 719, - 721, 723, 725, 727, 731, 733, 735, 737, 739, 741, - 743, 747, 749, 751, 753, 755, 757, 759, 763, 765, - 767, 769, 772, 774, 777, 780, 783, 786, 790, 793, - 795, 800, 801, 803, 806, 809, 811, 813, 815, 819, - 827, 831, 833, 835, 838, 839, 843, 849, 850, 860, - 866, 867, 870, 871, 873, 877, 878, 882, 888, 889, - 891, 892, 895, 897, 899, 901, 903, 908, 910, 912, - 913, 917, 919, 921, 923, 926, 928, 930, 932, 934, - 936, 938, 940, 942, 944, 946, 948, 950, 951, 955, - 957, 959, 961, 963, 965, 967, 969, 971, 973, 975, - 977, 979, 984, 986, 988, 990, 992, 994, 996, 998, - 1004, 1006, 1008, 1010, 1012, 1015, 1017, 1019, 1023, 1026, - 1028, 1031, 1036, 1037, 1039, 1041, 1043, 1045, 1047, 1049, - 1051, 1052, 1053, 1062, 1064, 1070, 1071, 1074, 1078, 1082, - 1086, 1087, 1090, 1093, 1094, 1097, 1100, 1103, 1106, 1109, - 1113, 1115, 1117, 1119, 1121, 1123, 1125, 1127, 1131, 1132, - 1138, 1139, 1141, 1146, 1150, 1154, 1158, 1159, 1160, 1164, - 1166, 1168, 1170, 1172, 1174, 1176, 1180, 1182, 1185, 1186, - 1189, 1192, 1195, 1196, 1198, 1200, 1202, 1204, 1206, 1208, - 1211, 1213, 1215, 1217, 1219, 1221, 1223, 1225, 1227, 1230, - 1233, 1238, 1240, 1242, 1245, 1248, 1251, 1256, 1261, 1263, - 1265, 1268, 1273, 1278, 1285, 1292, 1297, 1300, 1305, 1310, - 1318, 1326, 1327, 1329, 1334, 1337, 1339, 1341, 1343, 1345, - 1347, 1349, 1351, 1353, 1356, 1358, 1360, 1362, 1364, 1366, - 1368, 1370, 1372 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 170, 0, -1, 171, 174, -1, 171, 173, -1, -1, - 165, 163, 404, 172, 185, -1, -1, 59, 404, -1, - 176, 219, -1, 175, 176, -1, 102, 104, 7, 73, - 403, 185, -1, -1, 176, 189, -1, 176, 183, -1, - 176, 186, -1, 176, 184, -1, 176, 177, -1, 176, - 208, -1, 176, 213, -1, 176, 192, -1, 44, 152, - 182, 317, 377, 305, 185, -1, -1, -1, 44, 152, - 181, 98, 95, 178, 220, 179, 132, 228, 180, 317, - 377, 305, 185, -1, -1, 125, 404, -1, -1, 182, - -1, 103, 397, -1, 187, -1, 200, -1, 201, -1, - 211, -1, 193, -1, 195, -1, 197, -1, 202, -1, - 204, -1, 138, -1, 44, 104, 7, 73, 403, 364, - 185, -1, 44, 28, 188, 185, -1, 146, -1, 124, - -1, 190, -1, 191, -1, 44, 45, 55, 104, 403, - 185, -1, 44, 45, 71, 104, 403, 185, -1, 44, - 110, 397, 404, 185, -1, 44, 112, 194, 185, -1, - 111, -1, 160, -1, 44, 45, 113, 196, 185, -1, - 57, 92, -1, 57, 79, -1, 44, 41, 198, 37, - 199, 185, -1, 124, -1, 108, -1, 84, -1, 107, - -1, 44, 45, 35, 404, 185, -1, 44, 26, 364, - 403, 185, -1, 83, 136, 203, 403, 206, 185, -1, - -1, 45, 55, 104, -1, 104, 7, 73, -1, 83, - 102, 205, 403, 206, 185, -1, -1, 104, 7, 73, - -1, -1, 21, 207, -1, 403, -1, 207, 37, 403, - -1, 44, 162, 364, 52, 341, 377, 209, 210, 185, - -1, 65, -1, 20, 227, -1, -1, 20, 227, -1, - 44, 40, 212, 185, -1, 146, -1, 124, -1, -1, - 44, 71, 364, 399, 95, 215, 132, 214, 377, 217, - 185, -1, -1, 216, -1, 215, 37, 216, -1, 52, - 341, 377, -1, 65, -1, 218, -1, 42, 225, 43, - -1, 225, -1, 221, -1, 220, 25, 221, -1, 223, - -1, 139, -1, 139, 223, -1, 140, 223, -1, 222, - -1, 222, 139, 223, -1, 222, 140, 223, -1, 345, - -1, 224, -1, 223, 139, 224, -1, 223, 140, 224, - -1, 322, -1, 227, -1, 226, -1, 227, 37, 227, - -1, 226, 37, 227, -1, 277, -1, 232, -1, 253, - -1, 267, -1, 276, -1, 24, 95, 356, 132, -1, - -1, 100, 230, -1, -1, 100, 231, -1, 231, -1, - 230, 37, 231, -1, 405, -1, 7, -1, 233, -1, - 240, -1, -1, -1, 70, 52, 341, 377, 239, 85, - 227, 234, 235, 236, -1, -1, -1, 37, 52, 341, - 377, 239, 85, 227, 237, 238, 236, -1, 244, -1, - 233, -1, 240, -1, -1, 21, 52, 341, -1, -1, - 94, 364, 52, 341, 377, 20, 227, 241, 242, -1, - -1, 37, 52, 341, 377, 20, 227, 243, 242, -1, - 244, -1, 233, -1, 240, -1, 245, 131, 227, -1, - 164, 227, 245, 131, 227, -1, -1, 246, -1, 252, - 247, -1, 247, 37, 248, -1, 248, -1, 227, 249, - 250, 251, -1, -1, 19, -1, 48, -1, -1, 196, - -1, -1, 35, 403, -1, 166, 35, 227, -1, 143, - 113, 29, -1, 113, 29, -1, 254, -1, 260, -1, - -1, -1, 141, 52, 341, 377, 85, 227, 255, 256, - 257, -1, -1, -1, 37, 52, 341, 377, 85, 227, - 258, 259, 257, -1, 266, -1, -1, -1, 63, 52, - 341, 377, 85, 227, 261, 262, 263, -1, -1, -1, - 37, 52, 341, 377, 85, 227, 264, 265, 263, -1, - 266, -1, 133, 227, -1, -1, 158, 95, 225, 132, - 268, 269, -1, -1, -1, 31, 273, 378, 270, 131, - 227, 271, 272, -1, 269, -1, 274, -1, -1, 52, - 397, 18, -1, 45, 131, 227, -1, -1, 45, 52, - 397, 275, 131, 227, -1, 82, 95, 225, 132, 154, - 227, 56, 227, -1, 278, -1, 277, 114, 278, -1, - 279, -1, 278, 15, 279, -1, 280, -1, 298, -1, - 296, -1, 300, -1, 281, -1, 281, 155, 281, -1, - 283, -1, 281, 282, 283, -1, 117, -1, 99, -1, - 285, -1, 283, 284, 285, -1, 144, -1, 49, -1, - 81, -1, 101, -1, 286, -1, 285, 287, 286, -1, - 289, -1, 286, 288, 289, -1, 159, -1, 25, -1, - 87, -1, 64, -1, 290, -1, 290, 86, 109, 378, - -1, 291, -1, 291, 156, 18, 378, -1, 292, -1, - 292, 32, 18, 376, -1, 293, -1, 293, 33, 18, - 376, -1, 295, -1, 294, 293, -1, 117, -1, 99, - -1, 302, -1, 309, -1, 304, -1, 280, 297, 280, - -1, 73, -1, 78, -1, 74, -1, 75, -1, 76, - -1, 77, -1, 280, 299, 280, -1, 61, -1, 105, - -1, 72, -1, 80, -1, 93, -1, 96, -1, 280, - 301, 280, -1, 88, -1, 121, -1, 68, -1, 303, - 218, -1, 161, -1, 161, 145, -1, 161, 90, -1, - 306, 305, -1, 42, 43, -1, 42, 225, 43, -1, - 306, 307, -1, 307, -1, 120, 402, 308, 119, -1, - -1, 404, -1, 139, 310, -1, 140, 310, -1, 139, - -1, 310, -1, 311, -1, 310, 321, 311, -1, 310, - 321, 142, 246, 131, 311, 60, -1, 310, 140, 311, - -1, 322, -1, 336, -1, 168, 218, -1, -1, 151, - 312, 218, -1, 26, 404, 42, 225, 43, -1, -1, - 44, 104, 7, 73, 3, 42, 313, 225, 43, -1, - 30, 397, 95, 314, 132, -1, -1, 315, 316, -1, - -1, 318, -1, 316, 37, 318, -1, -1, 95, 316, - 132, -1, 319, 52, 341, 377, 320, -1, -1, 157, - -1, -1, 20, 227, -1, 139, -1, 97, -1, 69, - -1, 323, -1, 322, 91, 225, 130, -1, 324, -1, - 331, -1, -1, 327, 325, 326, -1, 329, -1, 333, - -1, 389, -1, 328, 36, -1, 14, -1, 13, -1, - 23, -1, 34, -1, 47, -1, 46, -1, 66, -1, - 122, -1, 67, -1, 123, -1, 115, -1, 137, -1, - -1, 22, 330, 333, -1, 333, -1, 389, -1, 332, - -1, 54, -1, 334, -1, 382, -1, 397, -1, 335, - -1, 144, -1, 9, -1, 10, -1, 337, -1, 336, - 91, 225, 130, -1, 338, -1, 340, -1, 342, -1, - 343, -1, 345, -1, 344, -1, 347, -1, 17, 229, - 95, 314, 132, -1, 339, -1, 404, -1, 12, -1, - 11, -1, 52, 341, -1, 7, -1, 405, -1, 95, - 225, 132, -1, 95, 132, -1, 53, -1, 194, 218, - -1, 399, 95, 346, 132, -1, -1, 227, -1, 226, - -1, 348, -1, 360, -1, 349, -1, 358, -1, 359, - -1, -1, -1, 77, 401, 350, 353, 351, 118, 353, - 352, -1, 128, -1, 75, 357, 27, 397, 75, -1, - -1, 353, 354, -1, 401, 73, 355, -1, 129, 356, - 129, -1, 16, 356, 16, -1, -1, 218, 356, -1, - 404, 356, -1, -1, 357, 348, -1, 357, 404, -1, - 357, 4, -1, 357, 218, -1, 39, 148, -1, 116, - 150, 149, -1, 361, -1, 362, -1, 365, -1, 366, - -1, 367, -1, 368, -1, 375, -1, 50, 364, 218, - -1, -1, 55, 364, 372, 363, 305, -1, -1, 166, - -1, 23, 364, 369, 305, -1, 153, 364, 218, -1, - 38, 364, 218, -1, 126, 374, 305, -1, -1, -1, - 370, 397, 371, -1, 373, -1, 397, -1, 373, -1, - 218, -1, 7, -1, 218, -1, 104, 218, 218, -1, - 381, -1, 381, 127, -1, -1, 18, 378, -1, 380, - 379, -1, 58, 395, -1, -1, 117, -1, 144, -1, - 127, -1, 381, -1, 382, -1, 389, -1, 89, 395, - -1, 397, -1, 384, -1, 392, -1, 394, -1, 388, - -1, 387, -1, 386, -1, 383, -1, 106, 395, -1, - 51, 395, -1, 51, 95, 385, 132, -1, 392, -1, - 394, -1, 153, 395, -1, 38, 395, -1, 126, 395, - -1, 126, 95, 7, 132, -1, 126, 95, 404, 132, - -1, 390, -1, 391, -1, 23, 395, -1, 23, 95, - 144, 132, -1, 23, 95, 396, 132, -1, 23, 95, - 396, 37, 398, 132, -1, 23, 95, 144, 37, 398, - 132, -1, 134, 95, 397, 132, -1, 55, 395, -1, - 55, 95, 144, 132, -1, 55, 95, 397, 132, -1, - 55, 95, 397, 37, 398, 393, 132, -1, 55, 95, - 144, 37, 398, 393, 132, -1, -1, 127, -1, 135, - 95, 397, 132, -1, 95, 132, -1, 7, -1, 405, - -1, 7, -1, 405, -1, 397, -1, 400, -1, 405, - -1, 7, -1, 167, 7, -1, 7, -1, 6, -1, - 7, -1, 405, -1, 404, -1, 3, -1, 5, -1, - 6, -1, 8, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 1435, 1435, 1436, 1438, 1439, 1470, 1471, 1487, 1585, - 1587, 1593, 1595, 1602, 1608, 1614, 1621, 1624, 1628, 1632, - 1652, 1666, 1670, 1664, 1733, 1737, 1754, 1757, 1759, 1764, - 1765, 1769, 1770, 1774, 1778, 1782, 1784, 1785, 1787, 1789, - 1835, 1849, 1854, 1859, 1860, 1862, 1877, 1892, 1902, 1917, - 1921, 1926, 1940, 1944, 1949, 1963, 1968, 1973, 1978, 1983, - 1999, 2022, 2030, 2031, 2032, 2034, 2051, 2052, 2054, 2055, - 2057, 2058, 2060, 2115, 2119, 2125, 2128, 2133, 2147, 2151, - 2157, 2156, 2265, 2268, 2274, 2295, 2301, 2305, 2307, 2312, - 2322, 2323, 2328, 2329, 2338, 2408, 2419, 2420, 2424, 2429, - 2498, 2499, 2503, 2508, 2552, 2553, 2558, 2565, 2571, 2572, - 2573, 2574, 2575, 2576, 2582, 2587, 2593, 2596, 2601, 2607, - 2613, 2617, 2642, 2643, 2647, 2651, 2645, 2692, 2695, 2690, - 2711, 2712, 2713, 2716, 2720, 2728, 2727, 2741, 2740, 2749, - 2750, 2751, 2753, 2761, 2772, 2775, 2777, 2782, 2789, 2796, - 2802, 2822, 2827, 2833, 2836, 2838, 2839, 2846, 2852, 2856, - 2861, 2862, 2865, 2869, 2864, 2879, 2883, 2878, 2891, 2894, - 2898, 2893, 2908, 2912, 2907, 2920, 2922, 2950, 2949, 2961, - 2969, 2960, 2980, 2981, 2984, 2988, 2993, 2998, 2997, 3013, - 3019, 3020, 3026, 3027, 3033, 3034, 3035, 3036, 3038, 3039, - 3045, 3046, 3052, 3053, 3055, 3056, 3062, 3063, 3064, 3065, - 3067, 3068, 3078, 3079, 3085, 3086, 3088, 3092, 3097, 3098, - 3105, 3106, 3112, 3113, 3119, 3120, 3126, 3127, 3133, 3137, - 3142, 3143, 3144, 3146, 3152, 3153, 3154, 3155, 3156, 3157, - 3159, 3164, 3165, 3166, 3167, 3168, 3169, 3171, 3176, 3177, - 3178, 3180, 3194, 3195, 3196, 3198, 3215, 3219, 3224, 3225, - 3227, 3232, 3233, 3235, 3241, 3245, 3251, 3254, 3255, 3259, - 3268, 3273, 3277, 3278, 3283, 3282, 3297, 3305, 3304, 3320, - 3328, 3328, 3337, 3339, 3342, 3347, 3349, 3353, 3419, 3422, - 3428, 3431, 3440, 3444, 3448, 3453, 3454, 3459, 3460, 3463, - 3462, 3492, 3494, 3495, 3497, 3541, 3542, 3543, 3544, 3545, - 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3555, 3554, 3565, - 3576, 3581, 3583, 3588, 3589, 3594, 3598, 3600, 3604, 3613, - 3620, 3621, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, - 3644, 3645, 3650, 3655, 3661, 3667, 3672, 3677, 3682, 3688, - 3693, 3698, 3728, 3732, 3739, 3741, 3745, 3750, 3751, 3752, - 3786, 3795, 3784, 4036, 4040, 4060, 4063, 4069, 4074, 4079, - 4085, 4088, 4098, 4105, 4109, 4115, 4129, 4135, 4152, 4157, - 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4178, 4186, 4185, - 4225, 4228, 4233, 4248, 4253, 4260, 4272, 4276, 4272, 4282, - 4284, 4288, 4290, 4305, 4309, 4318, 4323, 4327, 4333, 4336, - 4341, 4346, 4351, 4352, 4353, 4354, 4356, 4357, 4358, 4359, - 4364, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4408, 4413, - 4418, 4424, 4425, 4427, 4432, 4437, 4442, 4447, 4463, 4464, - 4466, 4471, 4476, 4480, 4492, 4505, 4515, 4520, 4525, 4530, - 4544, 4558, 4559, 4561, 4571, 4573, 4578, 4585, 4592, 4594, - 4596, 4597, 4599, 4603, 4608, 4609, 4611, 4617, 4619, 4621, - 4625, 4630, 4642 + 0, 1419, 1419, 1420, 1422, 1423, 1454, 1455, 1471, 1569, + 1571, 1577, 1579, 1586, 1592, 1598, 1605, 1608, 1612, 1616, + 1636, 1650, 1654, 1648, 1717, 1721, 1738, 1741, 1743, 1748, + 1749, 1753, 1754, 1758, 1762, 1766, 1768, 1769, 1771, 1773, + 1819, 1833, 1838, 1843, 1844, 1846, 1861, 1876, 1886, 1901, + 1905, 1910, 1924, 1928, 1933, 1947, 1952, 1957, 1962, 1967, + 1983, 2006, 2014, 2015, 2016, 2018, 2035, 2036, 2038, 2039, + 2041, 2042, 2044, 2099, 2103, 2109, 2112, 2117, 2131, 2135, + 2141, 2140, 2249, 2252, 2258, 2279, 2285, 2289, 2291, 2296, + 2306, 2307, 2312, 2313, 2322, 2392, 2403, 2404, 2408, 2413, + 2482, 2483, 2487, 2492, 2536, 2537, 2542, 2549, 2555, 2556, + 2557, 2558, 2559, 2560, 2566, 2571, 2577, 2580, 2585, 2591, + 2597, 2601, 2626, 2627, 2631, 2635, 2629, 2676, 2679, 2674, + 2695, 2696, 2697, 2700, 2704, 2712, 2711, 2725, 2724, 2733, + 2734, 2735, 2737, 2745, 2756, 2759, 2761, 2766, 2773, 2780, + 2786, 2806, 2811, 2817, 2820, 2822, 2823, 2830, 2836, 2840, + 2845, 2846, 2849, 2853, 2848, 2863, 2867, 2862, 2875, 2878, + 2882, 2877, 2892, 2896, 2891, 2904, 2906, 2934, 2933, 2945, + 2953, 2944, 2964, 2965, 2968, 2972, 2977, 2982, 2981, 2997, + 3003, 3004, 3010, 3011, 3017, 3018, 3019, 3020, 3022, 3023, + 3029, 3030, 3036, 3037, 3039, 3040, 3046, 3047, 3048, 3049, + 3051, 3052, 3062, 3063, 3069, 3070, 3072, 3076, 3081, 3082, + 3089, 3090, 3096, 3097, 3103, 3104, 3110, 3111, 3117, 3121, + 3126, 3127, 3128, 3130, 3136, 3137, 3138, 3139, 3140, 3141, + 3143, 3148, 3149, 3150, 3151, 3152, 3153, 3155, 3160, 3161, + 3162, 3164, 3178, 3179, 3180, 3182, 3199, 3203, 3208, 3209, + 3211, 3216, 3217, 3219, 3225, 3229, 3235, 3238, 3239, 3243, + 3252, 3257, 3261, 3262, 3267, 3266, 3281, 3289, 3288, 3304, + 3312, 3312, 3321, 3323, 3326, 3331, 3333, 3337, 3403, 3406, + 3412, 3415, 3424, 3428, 3432, 3437, 3438, 3443, 3444, 3447, + 3446, 3476, 3478, 3479, 3481, 3525, 3526, 3527, 3528, 3529, + 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3539, 3538, 3549, + 3560, 3565, 3567, 3572, 3573, 3578, 3582, 3584, 3588, 3597, + 3604, 3605, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, + 3628, 3629, 3634, 3639, 3645, 3651, 3656, 3661, 3666, 3672, + 3677, 3682, 3712, 3716, 3723, 3725, 3729, 3734, 3735, 3736, + 3770, 3779, 3768, 4020, 4024, 4044, 4047, 4053, 4058, 4063, + 4069, 4072, 4082, 4089, 4093, 4099, 4113, 4119, 4136, 4141, + 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4162, 4170, 4169, + 4209, 4212, 4217, 4232, 4237, 4244, 4256, 4260, 4256, 4266, + 4268, 4272, 4274, 4289, 4293, 4302, 4307, 4311, 4317, 4320, + 4325, 4330, 4335, 4336, 4337, 4338, 4340, 4341, 4342, 4343, + 4348, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4392, 4397, + 4402, 4408, 4409, 4411, 4416, 4421, 4426, 4431, 4447, 4448, + 4450, 4455, 4460, 4464, 4476, 4489, 4499, 4504, 4509, 4514, + 4528, 4542, 4543, 4545, 4555, 4557, 4562, 4569, 4576, 4578, + 4580, 4581, 4583, 4587, 4592, 4593, 4595, 4601, 4603, 4605, + 4609, 4614, 4626 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +#if YYDEBUG || YYERROR_VERBOSE || 1 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "\"end of file\"", "error", "$undefined", "\"<string literal>\"", "\"<non-boundary text node>\"", "\"<string literal(XPath 2.0)>\"", - "\"QName\"", "\"NCName\"", "\"ClarkName\"", "ANY_LOCAL_NAME", - "ANY_PREFIX", "\"<number literal>\"", "\"<number literal(XPath 2.0)>\"", - "\"ancestor\"", "\"ancestor-or-self\"", "\"and\"", "\"'\"", - "\"apply-template\"", "\"as\"", "\"ascending\"", "\":=\"", "\"at\"", - "\"@\"", "\"attribute\"", "AVT", "\"|\"", "\"base-uri\"", "\"</\"", - "\"boundary-space\"", "\"by\"", "\"call-template\"", "\"case\"", - "\"castable\"", "\"cast\"", "\"child\"", "\"collation\"", "\"::\"", - "\",\"", "\"comment\"", "\"<!--\"", "\"construction\"", - "\"copy-namespaces\"", "\"{\"", "\"}\"", "\"declare\"", "\"default\"", - "\"descendant\"", "\"descendant-or-self\"", "\"descending\"", "\"div\"", - "\"document\"", "\"document-node\"", "\"$\"", "\".\"", "\"..\"", - "\"element\"", "\"else\"", "\"empty\"", "\"empty-sequence\"", - "\"encoding\"", "\"end_sort\"", "\"eq\"", "\"unknown keyword\"", - "\"every\"", "\"except\"", "\"external\"", "\"following\"", - "\"following-sibling\"", "\">>\"", "\"for-apply-template\"", "\"for\"", - "\"function\"", "\"ge\"", "\"=\"", "\">=\"", "\">\"", "\"<=\"", "\"<\"", - "\"!=\"", "\"greatest\"", "\"gt\"", "\"idiv\"", "\"if\"", "\"import\"", - "\"inherit\"", "\"in\"", "\"instance\"", "\"intersect\"", "\"is\"", - "\"item\"", "\"lax\"", "\"[\"", "\"least\"", "\"le\"", "\"let\"", - "\"(\"", "\"lt\"", "\"map\"", "\"matches\"", "\"-\"", "\"mode\"", - "\"mod\"", "\"module\"", "\"name\"", "\"namespace\"", "\"ne\"", - "\"node\"", "\"no-inherit\"", "\"no-preserve\"", "\"of\"", "\"option\"", - "\"ordered\"", "\"ordering\"", "\"order\"", "\"or\"", "\"parent\"", - "\"<?\"", "\"+\"", "POSITION_SET", "\"#)\"", "\"(#\"", "\"<<\"", - "\"preceding\"", "\"preceding-sibling\"", "\"preserve\"", "\"priority\"", - "\"processing-instruction\"", "\"?\"", "\"/>\"", "\"\\\"\"", "\"]\"", - "\"return\"", "\")\"", "\"satisfies\"", "\"schema-attribute\"", - "\"schema-element\"", "\"schema\"", "\"self\"", "\";\"", "\"/\"", - "\"//\"", "\"some\"", "\"sort\"", "\"stable\"", "\"*\"", "\"strict\"", - "\"strip\"", "SUCCESS", "COMMENT_CONTENT", "PI_CONTENT", "PI_TARGET", - "XSLT_VERSION", "\"template\"", "\"text\"", "\"then\"", "\"to\"", - "\"treat\"", "\"tunnel\"", "\"typeswitch\"", "\"union\"", - "\"unordered\"", "\"validate\"", "\"variable\"", "\"version\"", - "\"where\"", "\"xquery\"", "\"internal\"", "\"internal-name\"", - "\"current\"", "$accept", "Module", "VersionDecl", "Encoding", - "MainModule", "LibraryModule", "ModuleDecl", "Prolog", "TemplateDecl", - "$@1", "$@2", "OptionalPriority", "OptionalTemplateName", "TemplateName", - "Setter", "Import", "Separator", "NamespaceDecl", "BoundarySpaceDecl", - "BoundarySpacePolicy", "DefaultNamespaceDecl", + "\"QName\"", "\"NCName\"", "\"ClarkName\"", "T_ANY_LOCAL_NAME", + "T_ANY_PREFIX", "\"<number literal>\"", + "\"<number literal(XPath 2.0)>\"", "\"ancestor\"", + "\"ancestor-or-self\"", "\"and\"", "\"'\"", "\"apply-template\"", + "\"as\"", "\"ascending\"", "\":=\"", "\"at\"", "\"@\"", "\"attribute\"", + "T_AVT", "\"|\"", "\"base-uri\"", "\"</\"", "\"boundary-space\"", + "\"by\"", "\"call-template\"", "\"case\"", "\"castable\"", "\"cast\"", + "\"child\"", "\"collation\"", "\"::\"", "\",\"", "\"comment\"", + "\"<!--\"", "\"construction\"", "\"copy-namespaces\"", "\"{\"", "\"}\"", + "\"declare\"", "\"default\"", "\"descendant\"", "\"descendant-or-self\"", + "\"descending\"", "\"div\"", "\"document\"", "\"document-node\"", + "\"$\"", "\".\"", "\"..\"", "\"element\"", "\"else\"", "\"empty\"", + "\"empty-sequence\"", "\"encoding\"", "\"end_sort\"", "\"eq\"", + "\"unknown keyword\"", "\"every\"", "\"except\"", "\"external\"", + "\"following\"", "\"following-sibling\"", "\">>\"", + "\"for-apply-template\"", "\"for\"", "\"function\"", "\"ge\"", "\"=\"", + "\">=\"", "\">\"", "\"<=\"", "\"<\"", "\"!=\"", "\"greatest\"", "\"gt\"", + "\"idiv\"", "\"if\"", "\"import\"", "\"inherit\"", "\"in\"", + "\"instance\"", "\"intersect\"", "\"is\"", "\"item\"", "\"lax\"", + "\"[\"", "\"least\"", "\"le\"", "\"let\"", "\"(\"", "\"lt\"", "\"map\"", + "\"matches\"", "\"-\"", "\"mode\"", "\"mod\"", "\"module\"", "\"name\"", + "\"namespace\"", "\"ne\"", "\"node\"", "\"no-inherit\"", + "\"no-preserve\"", "\"of\"", "\"option\"", "\"ordered\"", "\"ordering\"", + "\"order\"", "\"or\"", "\"parent\"", "\"<?\"", "\"+\"", "T_POSITION_SET", + "\"#)\"", "\"(#\"", "\"<<\"", "\"preceding\"", "\"preceding-sibling\"", + "\"preserve\"", "\"priority\"", "\"processing-instruction\"", "\"?\"", + "\"/>\"", "\"\\\"\"", "\"]\"", "\"return\"", "\")\"", "\"satisfies\"", + "\"schema-attribute\"", "\"schema-element\"", "\"schema\"", "\"self\"", + "\";\"", "\"/\"", "\"//\"", "\"some\"", "\"sort\"", "\"stable\"", + "\"*\"", "\"strict\"", "\"strip\"", "T_SUCCESS", "T_COMMENT_CONTENT", + "T_PI_CONTENT", "T_PI_TARGET", "T_XSLT_VERSION", "\"template\"", + "\"text\"", "\"then\"", "\"to\"", "\"treat\"", "\"tunnel\"", + "\"typeswitch\"", "\"union\"", "\"unordered\"", "\"validate\"", + "\"variable\"", "\"version\"", "\"where\"", "\"xquery\"", "\"internal\"", + "\"internal-name\"", "\"current\"", "$accept", "Module", "VersionDecl", + "Encoding", "MainModule", "LibraryModule", "ModuleDecl", "Prolog", + "TemplateDecl", "$@1", "$@2", "OptionalPriority", "OptionalTemplateName", + "TemplateName", "Setter", "Import", "Separator", "NamespaceDecl", + "BoundarySpaceDecl", "BoundarySpacePolicy", "DefaultNamespaceDecl", "DeclareDefaultElementNamespace", "DeclareDefaultFunctionNamespace", "OptionDecl", "OrderingModeDecl", "OrderingMode", "EmptyOrderDecl", "OrderingEmptySequence", "CopyNamespacesDecl", "PreserveMode", @@ -2029,13 +1855,13 @@ static const char *const yytname[] = "SchemaAttributeTest", "ElementTest", "OptionalQuestionMark", "SchemaElementTest", "EmptyParanteses", "AttributeName", "ElementName", "TypeName", "FunctionName", "NCName", "LexicalName", "PragmaName", - "URILiteral", "StringLiteral", "QName", 0 + "URILiteral", "StringLiteral", "QName", YY_NULLPTR }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -2058,233 +1884,18 @@ static const yytype_uint16 yytoknum[] = }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 169, 170, 170, 171, 171, 172, 172, 173, 174, - 175, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 177, 178, 179, 177, 180, 180, 181, 181, 182, 183, - 183, 183, 183, 183, 183, 183, 184, 184, 185, 186, - 187, 188, 188, 189, 189, 190, 191, 192, 193, 194, - 194, 195, 196, 196, 197, 198, 198, 199, 199, 200, - 201, 202, 203, 203, 203, 204, 205, 205, 206, 206, - 207, 207, 208, 209, 209, 210, 210, 211, 212, 212, - 214, 213, 215, 215, 215, 216, 217, 217, 218, 219, - 220, 220, 221, 221, 221, 221, 221, 221, 221, 222, - 223, 223, 223, 224, 225, 225, 226, 226, 227, 227, - 227, 227, 227, 227, 228, 228, 229, 229, 230, 230, - 231, 231, 232, 232, 234, 235, 233, 237, 238, 236, - 236, 236, 236, 239, 239, 241, 240, 243, 242, 242, - 242, 242, 244, 244, 245, 245, 246, 247, 247, 248, - 249, 249, 249, 250, 250, 251, 251, 251, 252, 252, - 253, 253, 255, 256, 254, 258, 259, 257, 257, 261, - 262, 260, 264, 265, 263, 263, 266, 268, 267, 270, - 271, 269, 272, 272, 273, 273, 274, 275, 274, 276, - 277, 277, 278, 278, 279, 279, 279, 279, 280, 280, - 281, 281, 282, 282, 283, 283, 284, 284, 284, 284, - 285, 285, 286, 286, 287, 287, 288, 288, 289, 289, - 290, 290, 291, 291, 292, 292, 293, 293, 294, 294, - 295, 295, 295, 296, 297, 297, 297, 297, 297, 297, - 298, 299, 299, 299, 299, 299, 299, 300, 301, 301, - 301, 302, 303, 303, 303, 304, 305, 305, 306, 306, - 307, 308, 308, 309, 309, 309, 309, 310, 310, 310, - 310, 311, 311, 311, 312, 311, 311, 313, 311, 311, - 315, 314, 316, 316, 316, 317, 317, 318, 319, 319, - 320, 320, 321, 321, 321, 322, 322, 323, 323, 325, - 324, 324, 326, 326, 327, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 330, 329, 329, - 329, 331, 332, 333, 333, 334, 334, 335, 335, 335, - 336, 336, 337, 337, 337, 337, 337, 337, 337, 337, - 338, 338, 339, 339, 340, 341, 341, 342, 342, 343, - 344, 345, 346, 346, 346, 347, 347, 348, 348, 348, - 350, 351, 349, 352, 352, 353, 353, 354, 355, 355, - 356, 356, 356, 357, 357, 357, 357, 357, 358, 359, - 360, 360, 360, 360, 360, 360, 360, 361, 363, 362, - 364, 364, 365, 366, 367, 368, 370, 371, 369, 369, - 372, 372, 373, 374, 374, 375, 376, 376, 377, 377, - 378, 378, 379, 379, 379, 379, 380, 380, 380, 380, - 381, 382, 382, 382, 382, 382, 382, 382, 383, 384, - 384, 385, 385, 386, 387, 388, 388, 388, 389, 389, - 390, 390, 390, 390, 390, 391, 392, 392, 392, 392, - 392, 393, 393, 394, 395, 396, 396, 397, 397, 398, - 399, 399, 400, 400, 401, 401, 402, 402, 403, 404, - 404, 405, 405 -}; +#define YYPACT_NINF -668 -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 2, 2, 0, 5, 0, 2, 2, 2, - 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 7, 0, 0, 15, 0, 2, 0, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, - 4, 1, 1, 1, 1, 6, 6, 5, 4, 1, - 1, 5, 2, 2, 6, 1, 1, 1, 1, 5, - 5, 6, 0, 3, 3, 6, 0, 3, 0, 2, - 1, 3, 9, 1, 2, 0, 2, 4, 1, 1, - 0, 11, 0, 1, 3, 3, 1, 1, 3, 1, - 1, 3, 1, 1, 2, 2, 1, 3, 3, 1, - 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, - 1, 1, 1, 4, 0, 2, 0, 2, 1, 3, - 1, 1, 1, 1, 0, 0, 10, 0, 0, 10, - 1, 1, 1, 0, 3, 0, 9, 0, 8, 1, - 1, 1, 3, 5, 0, 1, 2, 3, 1, 4, - 0, 1, 1, 0, 1, 0, 2, 3, 3, 2, - 1, 1, 0, 0, 9, 0, 0, 9, 1, 0, - 0, 9, 0, 0, 9, 1, 2, 0, 6, 0, - 0, 8, 1, 1, 0, 3, 3, 0, 6, 8, - 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, - 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, - 1, 3, 1, 3, 1, 1, 1, 1, 1, 4, - 1, 4, 1, 4, 1, 4, 1, 2, 1, 1, - 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, - 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, - 1, 2, 1, 2, 2, 2, 2, 3, 2, 1, - 4, 0, 1, 2, 2, 1, 1, 1, 3, 7, - 3, 1, 1, 2, 0, 3, 5, 0, 9, 5, - 0, 2, 0, 1, 3, 0, 3, 5, 0, 1, - 0, 2, 1, 1, 1, 1, 4, 1, 1, 0, - 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 1, 1, 1, 1, 1, 1, 1, 5, - 1, 1, 1, 1, 2, 1, 1, 3, 2, 1, - 2, 4, 0, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 8, 1, 5, 0, 2, 3, 3, 3, - 0, 2, 2, 0, 2, 2, 2, 2, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 3, 0, 5, - 0, 1, 4, 3, 3, 3, 0, 0, 3, 1, - 1, 1, 1, 1, 1, 3, 1, 2, 0, 2, - 2, 2, 0, 1, 1, 1, 1, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 4, 1, 1, 2, 2, 2, 4, 4, 1, 1, - 2, 4, 4, 6, 6, 4, 2, 4, 4, 7, - 7, 0, 1, 4, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1 -}; +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-668))) -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = -{ - 4, 0, 0, 11, 0, 1, 0, 3, 2, 11, - 0, 469, 470, 6, 0, 9, 471, 457, 472, 328, - 329, 343, 342, 306, 305, 116, 317, 390, 0, 0, - 0, 308, 390, 0, 0, 310, 309, 390, 0, 0, - 349, 322, 390, 0, 311, 313, 0, 0, 0, 0, - 390, 0, 229, 0, 0, 49, 315, 0, 228, 0, - 312, 314, 0, 0, 0, 316, 265, 0, 0, 327, - 274, 390, 0, 50, 252, 0, 0, 16, 13, 15, - 14, 29, 12, 43, 44, 19, 33, 0, 34, 35, - 30, 31, 36, 37, 17, 32, 18, 8, 89, 105, - 104, 109, 122, 123, 110, 160, 161, 111, 112, 108, - 190, 192, 194, 198, 200, 204, 210, 212, 218, 220, - 222, 224, 0, 226, 196, 195, 197, 230, 0, 232, - 0, 259, 231, 266, 267, 271, 295, 297, 299, 0, - 301, 298, 321, 319, 323, 326, 272, 330, 332, 340, - 333, 334, 335, 337, 336, 338, 355, 357, 358, 359, - 356, 380, 381, 382, 383, 384, 385, 386, 324, 427, - 421, 426, 425, 424, 320, 438, 439, 422, 423, 325, - 0, 460, 341, 458, 0, 0, 0, 0, 0, 0, - 0, 0, 391, 396, 440, 370, 0, 457, 0, 458, - 0, 0, 434, 378, 390, 0, 0, 0, 0, 390, - 0, 0, 0, 26, 390, 0, 0, 429, 345, 344, - 346, 0, 0, 446, 0, 0, 465, 464, 360, 0, - 66, 62, 0, 0, 348, 0, 0, 0, 428, 0, - 466, 261, 467, 403, 0, 404, 0, 435, 0, 0, - 263, 264, 0, 0, 0, 433, 0, 254, 253, 463, - 273, 350, 0, 0, 0, 0, 241, 250, 243, 234, - 236, 237, 238, 239, 235, 244, 248, 245, 246, 242, - 249, 0, 0, 0, 203, 202, 0, 0, 207, 208, - 209, 206, 0, 215, 214, 0, 217, 216, 0, 0, - 0, 0, 0, 227, 251, 0, 255, 258, 294, 293, - 292, 0, 0, 0, 0, 304, 0, 352, 7, 38, - 5, 0, 0, 121, 117, 120, 280, 0, 0, 0, - 0, 318, 455, 454, 0, 0, 456, 402, 0, 0, - 399, 370, 0, 370, 0, 280, 394, 0, 42, 41, - 0, 79, 78, 0, 56, 55, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 285, 0, 387, - 0, 431, 432, 0, 0, 388, 401, 400, 408, 408, - 365, 0, 0, 0, 0, 0, 0, 0, 0, 347, - 0, 405, 379, 0, 262, 0, 0, 395, 0, 0, - 408, 275, 393, 0, 107, 106, 191, 193, 233, 240, - 247, 199, 201, 205, 211, 213, 0, 0, 0, 0, - 256, 0, 270, 0, 268, 0, 0, 300, 302, 303, - 0, 354, 353, 0, 0, 468, 0, 0, 282, 0, - 441, 0, 442, 392, 397, 371, 113, 372, 0, 0, - 0, 40, 77, 0, 0, 0, 0, 0, 0, 462, - 0, 461, 0, 0, 48, 28, 0, 282, 408, 0, - 430, 0, 447, 0, 448, 0, 0, 0, 133, 361, - 0, 0, 68, 0, 0, 68, 408, 0, 88, 260, - 436, 437, 445, 453, 0, 177, 0, 0, 219, 412, - 416, 417, 418, 420, 221, 223, 406, 225, 257, 0, - 0, 0, 0, 296, 331, 351, 10, 0, 339, 289, - 281, 283, 0, 459, 0, 0, 398, 276, 279, 60, - 57, 58, 0, 59, 0, 0, 53, 52, 51, 82, - 469, 390, 47, 21, 0, 0, 408, 451, 451, 389, - 409, 0, 0, 0, 0, 366, 0, 0, 67, 0, - 0, 63, 64, 0, 0, 0, 0, 0, 411, 419, - 413, 415, 414, 410, 407, 159, 0, 0, 150, 146, - 148, 288, 0, 444, 443, 54, 45, 46, 0, 0, - 83, 277, 0, 0, 286, 0, 0, 452, 0, 0, - 169, 0, 0, 365, 0, 0, 69, 70, 65, 61, - 0, 0, 162, 184, 178, 158, 0, 151, 152, 153, - 0, 284, 408, 408, 0, 80, 0, 39, 307, 93, - 0, 22, 90, 96, 92, 100, 103, 99, 20, 0, - 73, 75, 450, 449, 170, 134, 124, 0, 370, 370, - 367, 0, 0, 135, 163, 0, 0, 269, 154, 155, - 147, 290, 85, 84, 408, 0, 94, 95, 0, 0, - 0, 0, 0, 0, 74, 0, 0, 0, 125, 373, - 363, 362, 0, 0, 189, 71, 144, 0, 0, 179, - 0, 0, 149, 0, 287, 0, 278, 91, 114, 97, - 98, 101, 102, 76, 72, 0, 0, 171, 175, 144, - 0, 369, 368, 0, 0, 140, 141, 136, 139, 0, - 145, 0, 164, 168, 185, 0, 156, 0, 291, 86, - 0, 87, 0, 24, 0, 176, 0, 131, 126, 132, - 130, 376, 0, 377, 374, 375, 0, 144, 0, 0, - 0, 157, 81, 115, 118, 0, 285, 408, 0, 0, - 408, 0, 142, 408, 180, 0, 25, 408, 0, 408, - 364, 0, 0, 0, 0, 119, 0, 0, 133, 0, - 143, 0, 0, 182, 181, 183, 0, 172, 0, 137, - 165, 0, 0, 23, 173, 0, 144, 166, 187, 186, - 0, 127, 138, 0, 0, 174, 128, 167, 0, 144, - 188, 129 -}; +#define YYTABLE_NINF -463 -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 2, 3, 185, 7, 8, 9, 10, 77, 593, - 669, 756, 366, 367, 78, 79, 320, 80, 81, 350, - 82, 83, 84, 85, 86, 87, 88, 458, 89, 356, - 532, 90, 91, 92, 386, 93, 383, 560, 606, 94, - 641, 676, 95, 353, 96, 664, 589, 590, 730, 341, - 97, 631, 632, 633, 634, 635, 98, 99, 100, 733, - 189, 753, 324, 101, 102, 678, 709, 738, 806, 809, - 553, 103, 686, 717, 796, 718, 719, 720, 579, 580, - 619, 659, 692, 512, 104, 105, 654, 687, 722, 797, - 803, 106, 644, 677, 707, 794, 800, 708, 107, 567, - 614, 725, 774, 784, 656, 785, 804, 108, 109, 110, - 111, 112, 113, 287, 114, 292, 115, 116, 295, 298, - 117, 118, 119, 120, 121, 122, 123, 124, 281, 125, - 282, 126, 283, 127, 128, 129, 306, 130, 131, 393, - 132, 133, 134, 253, 626, 437, 438, 520, 468, 521, - 522, 694, 312, 135, 136, 137, 314, 427, 138, 139, - 140, 190, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 219, 151, 152, 153, 154, 433, 155, 156, - 157, 380, 554, 681, 479, 555, 650, 342, 710, 158, - 159, 160, 161, 162, 475, 193, 163, 164, 165, 166, - 338, 339, 526, 375, 340, 246, 167, 505, 477, 498, - 573, 499, 500, 168, 169, 170, 370, 171, 172, 173, - 174, 175, 176, 177, 598, 178, 194, 335, 179, 524, - 180, 181, 556, 241, 541, 182, 183 -}; +#define yytable_value_is_error(Yytable_value) \ + 0 -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -668 + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ static const yytype_int16 yypact[] = { -63, -28, 185, 86, 337, -668, 117, -668, -668, -668, @@ -2371,7 +1982,96 @@ static const yytype_int16 yypact[] = -668, -668 }; -/* YYPGOTO[NTERM-NUM]. */ + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 4, 0, 0, 11, 0, 1, 0, 3, 2, 11, + 0, 469, 470, 6, 0, 9, 471, 457, 472, 328, + 329, 343, 342, 306, 305, 116, 317, 390, 0, 0, + 0, 308, 390, 0, 0, 310, 309, 390, 0, 0, + 349, 322, 390, 0, 311, 313, 0, 0, 0, 0, + 390, 0, 229, 0, 0, 49, 315, 0, 228, 0, + 312, 314, 0, 0, 0, 316, 265, 0, 0, 327, + 274, 390, 0, 50, 252, 0, 0, 16, 13, 15, + 14, 29, 12, 43, 44, 19, 33, 0, 34, 35, + 30, 31, 36, 37, 17, 32, 18, 8, 89, 105, + 104, 109, 122, 123, 110, 160, 161, 111, 112, 108, + 190, 192, 194, 198, 200, 204, 210, 212, 218, 220, + 222, 224, 0, 226, 196, 195, 197, 230, 0, 232, + 0, 259, 231, 266, 267, 271, 295, 297, 299, 0, + 301, 298, 321, 319, 323, 326, 272, 330, 332, 340, + 333, 334, 335, 337, 336, 338, 355, 357, 358, 359, + 356, 380, 381, 382, 383, 384, 385, 386, 324, 427, + 421, 426, 425, 424, 320, 438, 439, 422, 423, 325, + 0, 460, 341, 458, 0, 0, 0, 0, 0, 0, + 0, 0, 391, 396, 440, 370, 0, 457, 0, 458, + 0, 0, 434, 378, 390, 0, 0, 0, 0, 390, + 0, 0, 0, 26, 390, 0, 0, 429, 345, 344, + 346, 0, 0, 446, 0, 0, 465, 464, 360, 0, + 66, 62, 0, 0, 348, 0, 0, 0, 428, 0, + 466, 261, 467, 403, 0, 404, 0, 435, 0, 0, + 263, 264, 0, 0, 0, 433, 0, 254, 253, 463, + 273, 350, 0, 0, 0, 0, 241, 250, 243, 234, + 236, 237, 238, 239, 235, 244, 248, 245, 246, 242, + 249, 0, 0, 0, 203, 202, 0, 0, 207, 208, + 209, 206, 0, 215, 214, 0, 217, 216, 0, 0, + 0, 0, 0, 227, 251, 0, 255, 258, 294, 293, + 292, 0, 0, 0, 0, 304, 0, 352, 7, 38, + 5, 0, 0, 121, 117, 120, 280, 0, 0, 0, + 0, 318, 455, 454, 0, 0, 456, 402, 0, 0, + 399, 370, 0, 370, 0, 280, 394, 0, 42, 41, + 0, 79, 78, 0, 56, 55, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 285, 0, 387, + 0, 431, 432, 0, 0, 388, 401, 400, 408, 408, + 365, 0, 0, 0, 0, 0, 0, 0, 0, 347, + 0, 405, 379, 0, 262, 0, 0, 395, 0, 0, + 408, 275, 393, 0, 107, 106, 191, 193, 233, 240, + 247, 199, 201, 205, 211, 213, 0, 0, 0, 0, + 256, 0, 270, 0, 268, 0, 0, 300, 302, 303, + 0, 354, 353, 0, 0, 468, 0, 0, 282, 0, + 441, 0, 442, 392, 397, 371, 113, 372, 0, 0, + 0, 40, 77, 0, 0, 0, 0, 0, 0, 462, + 0, 461, 0, 0, 48, 28, 0, 282, 408, 0, + 430, 0, 447, 0, 448, 0, 0, 0, 133, 361, + 0, 0, 68, 0, 0, 68, 408, 0, 88, 260, + 436, 437, 445, 453, 0, 177, 0, 0, 219, 412, + 416, 417, 418, 420, 221, 223, 406, 225, 257, 0, + 0, 0, 0, 296, 331, 351, 10, 0, 339, 289, + 281, 283, 0, 459, 0, 0, 398, 276, 279, 60, + 57, 58, 0, 59, 0, 0, 53, 52, 51, 82, + 469, 390, 47, 21, 0, 0, 408, 451, 451, 389, + 409, 0, 0, 0, 0, 366, 0, 0, 67, 0, + 0, 63, 64, 0, 0, 0, 0, 0, 411, 419, + 413, 415, 414, 410, 407, 159, 0, 0, 150, 146, + 148, 288, 0, 444, 443, 54, 45, 46, 0, 0, + 83, 277, 0, 0, 286, 0, 0, 452, 0, 0, + 169, 0, 0, 365, 0, 0, 69, 70, 65, 61, + 0, 0, 162, 184, 178, 158, 0, 151, 152, 153, + 0, 284, 408, 408, 0, 80, 0, 39, 307, 93, + 0, 22, 90, 96, 92, 100, 103, 99, 20, 0, + 73, 75, 450, 449, 170, 134, 124, 0, 370, 370, + 367, 0, 0, 135, 163, 0, 0, 269, 154, 155, + 147, 290, 85, 84, 408, 0, 94, 95, 0, 0, + 0, 0, 0, 0, 74, 0, 0, 0, 125, 373, + 363, 362, 0, 0, 189, 71, 144, 0, 0, 179, + 0, 0, 149, 0, 287, 0, 278, 91, 114, 97, + 98, 101, 102, 76, 72, 0, 0, 171, 175, 144, + 0, 369, 368, 0, 0, 140, 141, 136, 139, 0, + 145, 0, 164, 168, 185, 0, 156, 0, 291, 86, + 0, 87, 0, 24, 0, 176, 0, 131, 126, 132, + 130, 376, 0, 377, 374, 375, 0, 144, 0, 0, + 0, 157, 81, 115, 118, 0, 285, 408, 0, 0, + 408, 0, 142, 408, 180, 0, 25, 408, 0, 408, + 364, 0, 0, 0, 0, 119, 0, 0, 133, 0, + 143, 0, 0, 182, 181, 183, 0, 172, 0, 137, + 165, 0, 0, 23, 173, 0, 144, 166, 187, 186, + 0, 127, 138, 0, 0, 174, 128, 167, 0, 144, + 188, 129 +}; + + /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -668, -668, -668, -668, -668, -668, -668, 613, -668, -668, @@ -2400,10 +2100,38 @@ static const yytype_int16 yypgoto[] = 321, -668, 639, -668, -308, 15, -30 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -463 + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 2, 3, 185, 7, 8, 9, 10, 77, 593, + 669, 756, 366, 367, 78, 79, 320, 80, 81, 350, + 82, 83, 84, 85, 86, 87, 88, 458, 89, 356, + 532, 90, 91, 92, 386, 93, 383, 560, 606, 94, + 641, 676, 95, 353, 96, 664, 589, 590, 730, 341, + 97, 631, 632, 633, 634, 635, 98, 99, 100, 733, + 189, 753, 324, 101, 102, 678, 709, 738, 806, 809, + 553, 103, 686, 717, 796, 718, 719, 720, 579, 580, + 619, 659, 692, 512, 104, 105, 654, 687, 722, 797, + 803, 106, 644, 677, 707, 794, 800, 708, 107, 567, + 614, 725, 774, 784, 656, 785, 804, 108, 109, 110, + 111, 112, 113, 287, 114, 292, 115, 116, 295, 298, + 117, 118, 119, 120, 121, 122, 123, 124, 281, 125, + 282, 126, 283, 127, 128, 129, 306, 130, 131, 393, + 132, 133, 134, 253, 626, 437, 438, 520, 468, 521, + 522, 694, 312, 135, 136, 137, 314, 427, 138, 139, + 140, 190, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 219, 151, 152, 153, 154, 433, 155, 156, + 157, 380, 554, 681, 479, 555, 650, 342, 710, 158, + 159, 160, 161, 162, 475, 193, 163, 164, 165, 166, + 338, 339, 526, 375, 340, 246, 167, 505, 477, 498, + 573, 499, 500, 168, 169, 170, 370, 171, 172, 173, + 174, 175, 176, 177, 598, 178, 194, 335, 179, 524, + 180, 181, 556, 241, 541, 182, 183 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { 199, 397, 237, 293, 235, 504, 198, 404, 405, 220, @@ -2614,12 +2342,6 @@ static const yytype_int16 yytable[] = 0, 0, 330 }; -#define yypact_value_is_default(yystate) \ - ((yystate) == (-668)) - -#define yytable_value_is_error(yytable_value) \ - YYID (0) - static const yytype_int16 yycheck[] = { 30, 246, 53, 25, 51, 417, 30, 262, 263, 39, @@ -2830,8 +2552,8 @@ static const yytype_int16 yycheck[] = -1, -1, 153 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 165, 170, 171, 163, 0, 102, 173, 174, 175, @@ -2918,79 +2640,188 @@ static const yytype_uint16 yystos[] = 227, 236 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ - -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 169, 170, 170, 171, 171, 172, 172, 173, 174, + 175, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 177, 178, 179, 177, 180, 180, 181, 181, 182, 183, + 183, 183, 183, 183, 183, 183, 184, 184, 185, 186, + 187, 188, 188, 189, 189, 190, 191, 192, 193, 194, + 194, 195, 196, 196, 197, 198, 198, 199, 199, 200, + 201, 202, 203, 203, 203, 204, 205, 205, 206, 206, + 207, 207, 208, 209, 209, 210, 210, 211, 212, 212, + 214, 213, 215, 215, 215, 216, 217, 217, 218, 219, + 220, 220, 221, 221, 221, 221, 221, 221, 221, 222, + 223, 223, 223, 224, 225, 225, 226, 226, 227, 227, + 227, 227, 227, 227, 228, 228, 229, 229, 230, 230, + 231, 231, 232, 232, 234, 235, 233, 237, 238, 236, + 236, 236, 236, 239, 239, 241, 240, 243, 242, 242, + 242, 242, 244, 244, 245, 245, 246, 247, 247, 248, + 249, 249, 249, 250, 250, 251, 251, 251, 252, 252, + 253, 253, 255, 256, 254, 258, 259, 257, 257, 261, + 262, 260, 264, 265, 263, 263, 266, 268, 267, 270, + 271, 269, 272, 272, 273, 273, 274, 275, 274, 276, + 277, 277, 278, 278, 279, 279, 279, 279, 280, 280, + 281, 281, 282, 282, 283, 283, 284, 284, 284, 284, + 285, 285, 286, 286, 287, 287, 288, 288, 289, 289, + 290, 290, 291, 291, 292, 292, 293, 293, 294, 294, + 295, 295, 295, 296, 297, 297, 297, 297, 297, 297, + 298, 299, 299, 299, 299, 299, 299, 300, 301, 301, + 301, 302, 303, 303, 303, 304, 305, 305, 306, 306, + 307, 308, 308, 309, 309, 309, 309, 310, 310, 310, + 310, 311, 311, 311, 312, 311, 311, 313, 311, 311, + 315, 314, 316, 316, 316, 317, 317, 318, 319, 319, + 320, 320, 321, 321, 321, 322, 322, 323, 323, 325, + 324, 324, 326, 326, 327, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 330, 329, 329, + 329, 331, 332, 333, 333, 334, 334, 335, 335, 335, + 336, 336, 337, 337, 337, 337, 337, 337, 337, 337, + 338, 338, 339, 339, 340, 341, 341, 342, 342, 343, + 344, 345, 346, 346, 346, 347, 347, 348, 348, 348, + 350, 351, 349, 352, 352, 353, 353, 354, 355, 355, + 356, 356, 356, 357, 357, 357, 357, 357, 358, 359, + 360, 360, 360, 360, 360, 360, 360, 361, 363, 362, + 364, 364, 365, 366, 367, 368, 370, 371, 369, 369, + 372, 372, 373, 374, 374, 375, 376, 376, 377, 377, + 378, 378, 379, 379, 379, 379, 380, 380, 380, 380, + 381, 382, 382, 382, 382, 382, 382, 382, 383, 384, + 384, 385, 385, 386, 387, 388, 388, 388, 389, 389, + 390, 390, 390, 390, 390, 391, 392, 392, 392, 392, + 392, 393, 393, 394, 395, 396, 396, 397, 397, 398, + 399, 399, 400, 400, 401, 401, 402, 402, 403, 404, + 404, 405, 405 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 2, 2, 0, 5, 0, 2, 2, 2, + 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 7, 0, 0, 15, 0, 2, 0, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, + 4, 1, 1, 1, 1, 6, 6, 5, 4, 1, + 1, 5, 2, 2, 6, 1, 1, 1, 1, 5, + 5, 6, 0, 3, 3, 6, 0, 3, 0, 2, + 1, 3, 9, 1, 2, 0, 2, 4, 1, 1, + 0, 11, 0, 1, 3, 3, 1, 1, 3, 1, + 1, 3, 1, 1, 2, 2, 1, 3, 3, 1, + 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, + 1, 1, 1, 4, 0, 2, 0, 2, 1, 3, + 1, 1, 1, 1, 0, 0, 10, 0, 0, 10, + 1, 1, 1, 0, 3, 0, 9, 0, 8, 1, + 1, 1, 3, 5, 0, 1, 2, 3, 1, 4, + 0, 1, 1, 0, 1, 0, 2, 3, 3, 2, + 1, 1, 0, 0, 9, 0, 0, 9, 1, 0, + 0, 9, 0, 0, 9, 1, 2, 0, 6, 0, + 0, 8, 1, 1, 0, 3, 3, 0, 6, 8, + 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, + 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, + 1, 3, 1, 3, 1, 1, 1, 1, 1, 4, + 1, 4, 1, 4, 1, 4, 1, 2, 1, 1, + 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, + 1, 2, 1, 2, 2, 2, 2, 3, 2, 1, + 4, 0, 1, 2, 2, 1, 1, 1, 3, 7, + 3, 1, 1, 2, 0, 3, 5, 0, 9, 5, + 0, 2, 0, 1, 3, 0, 3, 5, 0, 1, + 0, 2, 1, 1, 1, 1, 4, 1, 1, 0, + 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 1, 1, 1, 1, 1, 1, 1, 5, + 1, 1, 1, 1, 2, 1, 1, 3, 2, 1, + 2, 4, 0, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 8, 1, 5, 0, 2, 3, 3, 3, + 0, 2, 2, 0, 2, 2, 2, 2, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 3, 0, 5, + 0, 1, 4, 3, 3, 3, 0, 0, 3, 1, + 1, 1, 1, 1, 1, 3, 1, 2, 0, 2, + 2, 2, 0, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 4, 1, 1, 2, 2, 2, 4, 4, 1, 1, + 2, 4, 4, 6, 6, 4, 2, 4, 4, 7, + 7, 0, 1, 4, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ yyerror (&yylloc, parseInfo, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) - + YYERROR; \ + } \ +while (0) -#define YYTERROR 1 -#define YYERRCODE 256 +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (0) #endif +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know @@ -2998,84 +2829,74 @@ while (YYID (0)) #ifndef YY_LOCATION_PRINT # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif +/* Print *YYLOCP on YYO. Private, do not rely on its existence. */ -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -#else -# define YYLEX yylex (&yylval, &yylloc, parseInfo) -#endif +YY_ATTRIBUTE_UNUSED +static unsigned +yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) +{ + unsigned res = 0; + int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; + if (0 <= yylocp->first_line) + { + res += YYFPRINTF (yyo, "%d", yylocp->first_line); + if (0 <= yylocp->first_column) + res += YYFPRINTF (yyo, ".%d", yylocp->first_column); + } + if (0 <= yylocp->last_line) + { + if (yylocp->first_line < yylocp->last_line) + { + res += YYFPRINTF (yyo, "-%d", yylocp->last_line); + if (0 <= end_col) + res += YYFPRINTF (yyo, ".%d", end_col); + } + else if (0 <= end_col && yylocp->first_column < end_col) + res += YYFPRINTF (yyo, "-%d", end_col); + } + return res; + } -/* Enable debugging if requested. */ -#if YYDEBUG +# define YY_LOCATION_PRINT(File, Loc) \ + yy_location_print_ (File, &(Loc)) -# ifndef YYFPRINTF -# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif +#endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, Location, parseInfo); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, Location, parseInfo); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, ParserContext *const parseInfo) -#else static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parseInfo) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - YYLTYPE const * const yylocationp; - ParserContext *const parseInfo; -#endif +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) { - if (!yyvaluep) - return; + FILE *yyo = yyoutput; + YYUSE (yyo); YYUSE (yylocationp); YYUSE (parseInfo); + if (!yyvaluep) + return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); # endif - switch (yytype) - { - default: - break; - } + YYUSE (yytype); } @@ -3083,24 +2904,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parseInfo) | Print this symbol on YYOUTPUT. | `--------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, ParserContext *const parseInfo) -#else static void -yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, parseInfo) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - YYLTYPE const * const yylocationp; - ParserContext *const parseInfo; -#endif +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); YY_LOCATION_PRINT (yyoutput, *yylocationp); YYFPRINTF (yyoutput, ": "); @@ -3113,16 +2921,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, parseInfo) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -3133,51 +2933,42 @@ yy_stack_print (yybottom, yytop) YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, ParserContext *const parseInfo) -#else -static void -yy_reduce_print (yyvsp, yylsp, yyrule, parseInfo) - YYSTYPE *yyvsp; - YYLTYPE *yylsp; - int yyrule; - ParserContext *const parseInfo; -#endif +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) { + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , &(yylsp[(yyi + 1) - (yynrhs)]) , parseInfo); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , &(yylsp[(yyi + 1) - (yynrhs)]) , parseInfo); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, yylsp, Rule, parseInfo); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, yylsp, Rule, parseInfo); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -3191,7 +2982,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -3214,15 +3005,8 @@ int yydebug; # define yystrlen strlen # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -3238,16 +3022,8 @@ yystrlen (yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif { char *yyd = yydest; const char *yys = yysrc; @@ -3277,27 +3053,27 @@ yytnamerr (char *yyres, const char *yystr) char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -3320,12 +3096,11 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = 0; + const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -3333,10 +3108,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, int yycount = 0; /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> - for details. YYERROR is fine as it does not invoke this - function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -3385,11 +3156,13 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, break; } yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } } } } @@ -3409,10 +3182,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, # undef YYCASE_ } - yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } if (*yymsg_alloc < yysize) { @@ -3449,82 +3224,48 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, ParserContext *const parseInfo) -#else static void -yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseInfo) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; - YYLTYPE *yylocationp; - ParserContext *const parseInfo; -#endif +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) { - YYUSE (yytype); YYUSE (yyvaluep); YYUSE (yylocationp); YYUSE (parseInfo); - if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } -/* Prevent warnings from -Wmissing-prototypes. */ -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (ParserContext *const parseInfo); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ /*----------. | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (ParserContext *const parseInfo) -#else -int -yyparse (parseInfo) - ParserContext *const parseInfo; -#endif -#endif +yyparse (QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) { /* The lookahead symbol. */ int yychar; + /* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; +/* Default value used for initialization, for pacifying older GCCs + or non-GCC compilers. */ +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Location data for the lookahead symbol. */ -YYLTYPE yylloc; +static YYLTYPE yyloc_default +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL + = { 1, 1, 1, 1 } +# endif +; +YYLTYPE yylloc = yyloc_default; /* Number of syntax errors so far. */ int yynerrs; @@ -3534,11 +3275,11 @@ YYLTYPE yylloc; int yyerrstatus; /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. - `yyls': related to locations. + 'yyss': related to states. + 'yyvs': related to semantic values. + 'yyls': related to locations. - Refer to the stacks thru separate pointers, to allow yyoverflow + Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ @@ -3564,7 +3305,7 @@ YYLTYPE yylloc; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ - int yytoken; + int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; @@ -3583,10 +3324,9 @@ YYLTYPE yylloc; Keep to zero when no symbol should be popped. */ int yylen = 0; - yytoken = 0; - yyss = yyssa; - yyvs = yyvsa; - yyls = yylsa; + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yylsp = yyls = yylsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); @@ -3595,21 +3335,7 @@ YYLTYPE yylloc; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - yyssp = yyss; - yyvsp = yyvs; - yylsp = yyls; - -#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL - /* Initialize the default location before parsing starts. */ - yylloc.first_line = yylloc.last_line = 1; - yylloc.first_column = yylloc.last_column = 1; -#endif - + yylsp[0] = yylloc; goto yysetstate; /*------------------------------------------------------------. @@ -3630,26 +3356,26 @@ YYLTYPE yylloc; #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - YYLTYPE *yyls1 = yyls; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - - yyls = yyls1; - yyss = yyss1; - yyvs = yyvs1; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + YYLTYPE *yyls1 = yyls; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yyls1, yysize * sizeof (*yylsp), + &yystacksize); + + yyls = yyls1; + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -3657,23 +3383,23 @@ YYLTYPE yylloc; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); - YYSTACK_RELOCATE (yyls_alloc, yyls); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); + YYSTACK_RELOCATE (yyls_alloc, yyls); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -3683,10 +3409,10 @@ YYLTYPE yylloc; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -3715,7 +3441,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (&yylval, &yylloc, parseInfo); } if (yychar <= YYEOF) @@ -3755,7 +3481,9 @@ yybackup: yychar = YYEMPTY; yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; goto yynewstate; @@ -3778,7 +3506,7 @@ yyreduce: yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3793,9 +3521,7 @@ yyreduce: switch (yyn) { case 5: - -/* Line 1806 of yacc.c */ -#line 1440 "querytransformparser.ypp" +#line 1424 "querytransformparser.ypp" /* yacc.c:1646 */ { /* Suppress more compiler warnings about unused defines. */ @@ -3815,26 +3541,25 @@ yyreduce: || defined(YYLLOC_DEFAULT) #endif - if((yyvsp[(3) - (5)].sval) != QLatin1String("1.0")) + if((yyvsp[-2].sval) != QLatin1String("1.0")) { const ReflectYYLTYPE ryy((yyloc), parseInfo); parseInfo->staticContext->error(QtXmlPatterns::tr("Version %1 is not supported. The supported " "XQuery version is 1.0.") - .arg(formatData((yyvsp[(3) - (5)].sval))), + .arg(formatData((yyvsp[-2].sval))), ReportContext::XQST0031, &ryy); } } +#line 3512 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 7: - -/* Line 1806 of yacc.c */ -#line 1472 "querytransformparser.ypp" +#line 1456 "querytransformparser.ypp" /* yacc.c:1646 */ { const QRegExp encNameRegExp(QLatin1String("[A-Za-z][A-Za-z0-9._\\-]*")); - if(!encNameRegExp.exactMatch((yyvsp[(2) - (2)].sval))) + if(!encNameRegExp.exactMatch((yyvsp[0].sval))) { parseInfo->staticContext->error(QtXmlPatterns::tr("The encoding %1 is invalid. " "It must contain Latin characters only, " @@ -3845,12 +3570,11 @@ yyreduce: ReportContext::XQST0087, fromYYLTYPE((yyloc), parseInfo)); } } +#line 3531 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 8: - -/* Line 1806 of yacc.c */ -#line 1488 "querytransformparser.ypp" +#line 1472 "querytransformparser.ypp" /* yacc.c:1646 */ { /* In XSL-T, we can have dangling variable references, so resolve them * before we proceed with other steps, such as checking circularity. */ @@ -3945,140 +3669,128 @@ yyreduce: /* We just discard the template body that XSLTTokenizer generated. */ } else - parseInfo->queryBody = (yyvsp[(2) - (2)].expr); + parseInfo->queryBody = (yyvsp[0].expr); } +#line 3632 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 10: - -/* Line 1806 of yacc.c */ -#line 1588 "querytransformparser.ypp" +#line 1572 "querytransformparser.ypp" /* yacc.c:1646 */ { // TODO add to namespace context - parseInfo->moduleNamespace = parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[(3) - (6)].sval)); + parseInfo->moduleNamespace = parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[-3].sval)); } +#line 3641 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 12: - -/* Line 1806 of yacc.c */ -#line 1596 "querytransformparser.ypp" +#line 1580 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); if(parseInfo->hasSecondPrologPart) parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, " "variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } +#line 3652 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 13: - -/* Line 1806 of yacc.c */ -#line 1603 "querytransformparser.ypp" +#line 1587 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->hasSecondPrologPart) parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, " "variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } +#line 3662 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 14: - -/* Line 1806 of yacc.c */ -#line 1609 "querytransformparser.ypp" +#line 1593 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->hasSecondPrologPart) parseInfo->staticContext->error(QtXmlPatterns::tr("Namespace declarations must occur before function, " "variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } +#line 3672 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 15: - -/* Line 1806 of yacc.c */ -#line 1615 "querytransformparser.ypp" +#line 1599 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); if(parseInfo->hasSecondPrologPart) parseInfo->staticContext->error(QtXmlPatterns::tr("Module imports must occur before function, " "variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } +#line 3683 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 17: - -/* Line 1806 of yacc.c */ -#line 1625 "querytransformparser.ypp" +#line 1609 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->hasSecondPrologPart = true; } +#line 3691 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 18: - -/* Line 1806 of yacc.c */ -#line 1629 "querytransformparser.ypp" +#line 1613 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->hasSecondPrologPart = true; } +#line 3699 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 19: - -/* Line 1806 of yacc.c */ -#line 1633 "querytransformparser.ypp" +#line 1617 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); parseInfo->hasSecondPrologPart = true; } +#line 3708 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 20: - -/* Line 1806 of yacc.c */ -#line 1656 "querytransformparser.ypp" +#line 1640 "querytransformparser.ypp" /* yacc.c:1646 */ { - Template::Ptr temp(create(new Template(parseInfo->currentImportPrecedence, (yyvsp[(5) - (7)].sequenceType)), (yyloc), parseInfo)); + Template::Ptr temp(create(new Template(parseInfo->currentImportPrecedence, (yyvsp[-2].sequenceType)), (yyloc), parseInfo)); - registerNamedTemplate((yyvsp[(3) - (7)].qName), typeCheckTemplateBody((yyvsp[(6) - (7)].expr), (yyvsp[(5) - (7)].sequenceType), parseInfo), - parseInfo, (yylsp[(1) - (7)]), temp); + registerNamedTemplate((yyvsp[-4].qName), typeCheckTemplateBody((yyvsp[-1].expr), (yyvsp[-2].sequenceType), parseInfo), + parseInfo, (yylsp[-6]), temp); temp->templateParameters = parseInfo->templateParameters; parseInfo->templateParametersHandled(); } +#line 3721 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 21: - -/* Line 1806 of yacc.c */ -#line 1666 "querytransformparser.ypp" +#line 1650 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->isParsingPattern = true; } +#line 3729 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 22: - -/* Line 1806 of yacc.c */ -#line 1670 "querytransformparser.ypp" +#line 1654 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->isParsingPattern = false; } +#line 3737 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 23: - -/* Line 1806 of yacc.c */ -#line 1679 "querytransformparser.ypp" +#line 1663 "querytransformparser.ypp" /* yacc.c:1646 */ { /* In this grammar branch, we're guaranteed to be a template rule, but * may also be a named template. */ const ImportPrecedence ip = parseInfo->isFirstTemplate() ? 0 : parseInfo->currentImportPrecedence; - Expression::Ptr pattern((yyvsp[(7) - (15)].expr)); + Expression::Ptr pattern((yyvsp[-8].expr)); const TemplatePattern::ID templateID = parseInfo->allocateTemplateID(); - Template::Ptr templ(create(new Template(ip, (yyvsp[(13) - (15)].sequenceType)), (yyloc), parseInfo)); - templ->body = typeCheckTemplateBody((yyvsp[(14) - (15)].expr), (yyvsp[(13) - (15)].sequenceType), parseInfo); + Template::Ptr templ(create(new Template(ip, (yyvsp[-2].sequenceType)), (yyloc), parseInfo)); + templ->body = typeCheckTemplateBody((yyvsp[-1].expr), (yyvsp[-2].sequenceType), parseInfo); templ->templateParameters = parseInfo->templateParameters; parseInfo->templateParametersHandled(); @@ -4094,20 +3806,20 @@ yyreduce: const Expression::List operands(pattern->operands()); pattern = operands.first(); - loadPattern(operands.at(1), ourPatterns, templateID, (yyvsp[(11) - (15)].enums.Double), templ); + loadPattern(operands.at(1), ourPatterns, templateID, (yyvsp[-4].enums.Double), templ); } - loadPattern(pattern, ourPatterns, templateID, (yyvsp[(11) - (15)].enums.Double), templ); + loadPattern(pattern, ourPatterns, templateID, (yyvsp[-4].enums.Double), templ); - if(!(yyvsp[(3) - (15)].qName).isNull()) - registerNamedTemplate((yyvsp[(3) - (15)].qName), (yyvsp[(14) - (15)].expr), parseInfo, (yylsp[(1) - (15)]), templ); + if(!(yyvsp[-12].qName).isNull()) + registerNamedTemplate((yyvsp[-12].qName), (yyvsp[-1].expr), parseInfo, (yylsp[-14]), templ); /* Now, let's add it to all the relevant templates. */ - for(int i = 0; i < (yyvsp[(10) - (15)].qNameVector).count(); ++i) /* For each mode. */ + for(int i = 0; i < (yyvsp[-5].qNameVector).count(); ++i) /* For each mode. */ { - const QXmlName &modeName = (yyvsp[(10) - (15)].qNameVector).at(i); + const QXmlName &modeName = (yyvsp[-5].qNameVector).at(i); - if(modeName == QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::all) && (yyvsp[(10) - (15)].qNameVector).count() > 1) + if(modeName == QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::all) && (yyvsp[-5].qNameVector).count() > 1) { parseInfo->staticContext->error(QtXmlPatterns::tr("The keyword %1 cannot occur with any other mode name.") .arg(formatKeyword(QLatin1String("#all"))), @@ -4121,106 +3833,97 @@ yyreduce: mode->templatePatterns.append(ourPatterns.at(t)); } } +#line 3794 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 24: - -/* Line 1806 of yacc.c */ -#line 1733 "querytransformparser.ypp" +#line 1717 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.Double) = std::numeric_limits<xsDouble>::quiet_NaN(); } +#line 3802 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 25: - -/* Line 1806 of yacc.c */ -#line 1738 "querytransformparser.ypp" +#line 1722 "querytransformparser.ypp" /* yacc.c:1646 */ { - const AtomicValue::Ptr val(Decimal::fromLexical((yyvsp[(2) - (2)].sval))); + const AtomicValue::Ptr val(Decimal::fromLexical((yyvsp[0].sval))); if(val->hasError()) { parseInfo->staticContext->error(QtXmlPatterns::tr("The value of attribute %1 must be of type %2, which %3 isn't.") .arg(formatKeyword(QLatin1String("priority")), formatType(parseInfo->staticContext->namePool(), BuiltinTypes::xsDecimal), - formatData((yyvsp[(2) - (2)].sval))), + formatData((yyvsp[0].sval))), ReportContext::XTSE0530, fromYYLTYPE((yyloc), parseInfo)); } else (yyval.enums.Double) = val->as<Numeric>()->toDouble(); } +#line 3821 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 26: - -/* Line 1806 of yacc.c */ -#line 1754 "querytransformparser.ypp" +#line 1738 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.qName) = QXmlName(); } +#line 3829 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 28: - -/* Line 1806 of yacc.c */ -#line 1760 "querytransformparser.ypp" +#line 1744 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qName) = (yyvsp[(2) - (2)].qName); + (yyval.qName) = (yyvsp[0].qName); } +#line 3837 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 30: - -/* Line 1806 of yacc.c */ -#line 1766 "querytransformparser.ypp" +#line 1750 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } +#line 3845 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 32: - -/* Line 1806 of yacc.c */ -#line 1771 "querytransformparser.ypp" +#line 1755 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } +#line 3853 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 33: - -/* Line 1806 of yacc.c */ -#line 1775 "querytransformparser.ypp" +#line 1759 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } +#line 3861 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 34: - -/* Line 1806 of yacc.c */ -#line 1779 "querytransformparser.ypp" +#line 1763 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } +#line 3869 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 39: - -/* Line 1806 of yacc.c */ -#line 1790 "querytransformparser.ypp" +#line 1774 "querytransformparser.ypp" /* yacc.c:1646 */ { - if(!(yyvsp[(6) - (7)].enums.Bool)) + if(!(yyvsp[-1].enums.Bool)) allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); - if((yyvsp[(3) - (7)].sval) == QLatin1String("xmlns")) + if((yyvsp[-4].sval) == QLatin1String("xmlns")) { parseInfo->staticContext->error(QtXmlPatterns::tr("It is not possible to redeclare prefix %1.") .arg(formatKeyword(QLatin1String("xmlns"))), ReportContext::XQST0070, fromYYLTYPE((yyloc), parseInfo)); } - else if ((yyvsp[(5) - (7)].sval) == CommonNamespaces::XML || (yyvsp[(3) - (7)].sval) == QLatin1String("xml")) + else if ((yyvsp[-2].sval) == CommonNamespaces::XML || (yyvsp[-4].sval) == QLatin1String("xml")) { parseInfo->staticContext->error(QtXmlPatterns::tr( "The prefix %1 can not be bound. By default, it is already bound " @@ -4230,36 +3933,35 @@ yyreduce: ReportContext::XQST0070, fromYYLTYPE((yyloc), parseInfo)); } - else if(parseInfo->declaredPrefixes.contains((yyvsp[(3) - (7)].sval))) + else if(parseInfo->declaredPrefixes.contains((yyvsp[-4].sval))) { /* This includes the case where the user has bound a default prefix(such * as 'local') and now tries to do it again. */ parseInfo->staticContext->error(QtXmlPatterns::tr("Prefix %1 is already declared in the prolog.") - .arg(formatKeyword((yyvsp[(3) - (7)].sval))), + .arg(formatKeyword((yyvsp[-4].sval))), ReportContext::XQST0033, fromYYLTYPE((yyloc), parseInfo)); } else { - parseInfo->declaredPrefixes.append((yyvsp[(3) - (7)].sval)); + parseInfo->declaredPrefixes.append((yyvsp[-4].sval)); - if((yyvsp[(5) - (7)].sval).isEmpty()) + if((yyvsp[-2].sval).isEmpty()) { parseInfo->staticContext->namespaceBindings()->addBinding(QXmlName(StandardNamespaces::UndeclarePrefix, StandardLocalNames::empty, - parseInfo->staticContext->namePool()->allocatePrefix((yyvsp[(3) - (7)].sval)))); + parseInfo->staticContext->namePool()->allocatePrefix((yyvsp[-4].sval)))); } else { - parseInfo->staticContext->namespaceBindings()->addBinding(parseInfo->staticContext->namePool()->allocateBinding((yyvsp[(3) - (7)].sval), (yyvsp[(5) - (7)].sval))); + parseInfo->staticContext->namespaceBindings()->addBinding(parseInfo->staticContext->namePool()->allocateBinding((yyvsp[-4].sval), (yyvsp[-2].sval))); } } } +#line 3918 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 40: - -/* Line 1806 of yacc.c */ -#line 1836 "querytransformparser.ypp" +#line 1820 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->hasDeclaration(ParserContext::BoundarySpaceDecl)) { @@ -4268,34 +3970,31 @@ yyreduce: } else { - parseInfo->staticContext->setBoundarySpacePolicy((yyvsp[(3) - (4)].enums.boundarySpacePolicy)); + parseInfo->staticContext->setBoundarySpacePolicy((yyvsp[-1].enums.boundarySpacePolicy)); parseInfo->registerDeclaration(ParserContext::BoundarySpaceDecl); } } +#line 3935 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 41: - -/* Line 1806 of yacc.c */ -#line 1850 "querytransformparser.ypp" +#line 1834 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.boundarySpacePolicy) = StaticContext::BSPStrip; } +#line 3943 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 42: - -/* Line 1806 of yacc.c */ -#line 1855 "querytransformparser.ypp" +#line 1839 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.boundarySpacePolicy) = StaticContext::BSPPreserve; } +#line 3951 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 45: - -/* Line 1806 of yacc.c */ -#line 1864 "querytransformparser.ypp" +#line 1848 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultElementNamespace)) { @@ -4304,16 +4003,15 @@ yyreduce: } else { - parseInfo->staticContext->namespaceBindings()->addBinding(QXmlName(parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[(5) - (6)].sval)), StandardLocalNames::empty)); + parseInfo->staticContext->namespaceBindings()->addBinding(QXmlName(parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[-1].sval)), StandardLocalNames::empty)); parseInfo->registerDeclaration(ParserContext::DeclareDefaultElementNamespace); } } +#line 3968 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 46: - -/* Line 1806 of yacc.c */ -#line 1879 "querytransformparser.ypp" +#line 1863 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultFunctionNamespace)) { @@ -4322,30 +4020,28 @@ yyreduce: } else { - parseInfo->staticContext->setDefaultFunctionNamespace((yyvsp[(5) - (6)].sval)); + parseInfo->staticContext->setDefaultFunctionNamespace((yyvsp[-1].sval)); parseInfo->registerDeclaration(ParserContext::DeclareDefaultFunctionNamespace); } } +#line 3985 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 47: - -/* Line 1806 of yacc.c */ -#line 1893 "querytransformparser.ypp" +#line 1877 "querytransformparser.ypp" /* yacc.c:1646 */ { - if((yyvsp[(3) - (5)].qName).prefix() == StandardPrefixes::empty) + if((yyvsp[-2].qName).prefix() == StandardPrefixes::empty) { parseInfo->staticContext->error(QtXmlPatterns::tr("The name of an option must have a prefix. " "There is no default namespace for options."), ReportContext::XPST0081, fromYYLTYPE((yyloc), parseInfo)); } } +#line 3998 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 48: - -/* Line 1806 of yacc.c */ -#line 1903 "querytransformparser.ypp" +#line 1887 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); if(parseInfo->hasDeclaration(ParserContext::OrderingModeDecl)) @@ -4356,33 +4052,30 @@ yyreduce: else { parseInfo->registerDeclaration(ParserContext::OrderingModeDecl); - parseInfo->staticContext->setOrderingMode((yyvsp[(3) - (4)].enums.orderingMode)); + parseInfo->staticContext->setOrderingMode((yyvsp[-1].enums.orderingMode)); } } +#line 4016 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 49: - -/* Line 1806 of yacc.c */ -#line 1918 "querytransformparser.ypp" +#line 1902 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.orderingMode) = StaticContext::Ordered; } +#line 4024 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 50: - -/* Line 1806 of yacc.c */ -#line 1922 "querytransformparser.ypp" +#line 1906 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.orderingMode) = StaticContext::Unordered; } +#line 4032 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 51: - -/* Line 1806 of yacc.c */ -#line 1927 "querytransformparser.ypp" +#line 1911 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->hasDeclaration(ParserContext::EmptyOrderDecl)) { @@ -4392,33 +4085,30 @@ yyreduce: else { parseInfo->registerDeclaration(ParserContext::EmptyOrderDecl); - parseInfo->staticContext->setOrderingEmptySequence((yyvsp[(4) - (5)].enums.orderingEmptySequence)); + parseInfo->staticContext->setOrderingEmptySequence((yyvsp[-1].enums.orderingEmptySequence)); } } +#line 4049 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 52: - -/* Line 1806 of yacc.c */ -#line 1941 "querytransformparser.ypp" +#line 1925 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.orderingEmptySequence) = StaticContext::Least; } +#line 4057 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 53: - -/* Line 1806 of yacc.c */ -#line 1945 "querytransformparser.ypp" +#line 1929 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.orderingEmptySequence) = StaticContext::Greatest; } +#line 4065 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 54: - -/* Line 1806 of yacc.c */ -#line 1951 "querytransformparser.ypp" +#line 1935 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->hasDeclaration(ParserContext::CopyNamespacesDecl)) { @@ -4430,48 +4120,43 @@ yyreduce: parseInfo->registerDeclaration(ParserContext::CopyNamespacesDecl); } } +#line 4081 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 55: - -/* Line 1806 of yacc.c */ -#line 1964 "querytransformparser.ypp" +#line 1948 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->preserveNamespacesMode = true; } +#line 4089 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 56: - -/* Line 1806 of yacc.c */ -#line 1969 "querytransformparser.ypp" +#line 1953 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->preserveNamespacesMode = false; } +#line 4097 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 57: - -/* Line 1806 of yacc.c */ -#line 1974 "querytransformparser.ypp" +#line 1958 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->inheritNamespacesMode = true; } +#line 4105 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 58: - -/* Line 1806 of yacc.c */ -#line 1979 "querytransformparser.ypp" +#line 1963 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->inheritNamespacesMode = false; } +#line 4113 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 59: - -/* Line 1806 of yacc.c */ -#line 1984 "querytransformparser.ypp" +#line 1968 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->hasDeclaration(ParserContext::DefaultCollationDecl)) { @@ -4480,20 +4165,19 @@ yyreduce: } else { - const QUrl coll(resolveAndCheckCollation<ReportContext::XQST0038>((yyvsp[(4) - (5)].sval), parseInfo, (yyloc))); + const QUrl coll(resolveAndCheckCollation<ReportContext::XQST0038>((yyvsp[-1].sval), parseInfo, (yyloc))); parseInfo->registerDeclaration(ParserContext::DefaultCollationDecl); parseInfo->staticContext->setDefaultCollation(coll); } } +#line 4132 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 60: - -/* Line 1806 of yacc.c */ -#line 2000 "querytransformparser.ypp" +#line 1984 "querytransformparser.ypp" /* yacc.c:1646 */ { - allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc), (yyvsp[(3) - (5)].enums.Bool)); + allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc), (yyvsp[-2].enums.Bool)); if(parseInfo->hasDeclaration(ParserContext::BaseURIDecl)) { parseInfo->staticContext->error(prologMessage("declare base-uri"), @@ -4504,7 +4188,7 @@ yyreduce: parseInfo->registerDeclaration(ParserContext::BaseURIDecl); const ReflectYYLTYPE ryy((yyloc), parseInfo); - QUrl toBeBase(AnyURI::toQUrl<ReportContext::XQST0046>((yyvsp[(4) - (5)].sval), parseInfo->staticContext, &ryy)); + QUrl toBeBase(AnyURI::toQUrl<ReportContext::XQST0046>((yyvsp[-1].sval), parseInfo->staticContext, &ryy)); /* Now we're guaranteed that base is a valid lexical representation, but it can still be relative. */ if(toBeBase.isRelative()) @@ -4513,26 +4197,24 @@ yyreduce: parseInfo->staticContext->setBaseURI(toBeBase); } } +#line 4158 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 61: - -/* Line 1806 of yacc.c */ -#line 2023 "querytransformparser.ypp" +#line 2007 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Import feature is not supported, " "and therefore %1 declarations cannot occur.") .arg(formatKeyword("import schema")), ReportContext::XQST0009, fromYYLTYPE((yyloc), parseInfo)); } +#line 4169 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 65: - -/* Line 1806 of yacc.c */ -#line 2035 "querytransformparser.ypp" +#line 2019 "querytransformparser.ypp" /* yacc.c:1646 */ { - if((yyvsp[(4) - (6)].sval).isEmpty()) + if((yyvsp[-2].sval).isEmpty()) { parseInfo->staticContext->error(QtXmlPatterns::tr("The target namespace of a %1 cannot be empty.") .arg(formatKeyword("module import")), @@ -4546,106 +4228,100 @@ yyreduce: ReportContext::XQST0016, fromYYLTYPE((yyloc), parseInfo)); } } +#line 4189 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 72: - -/* Line 1806 of yacc.c */ -#line 2062 "querytransformparser.ypp" +#line 2046 "querytransformparser.ypp" /* yacc.c:1646 */ { - allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(3) - (9)].enums.Bool)); - if(variableByName((yyvsp[(5) - (9)].qName), parseInfo)) + allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-6].enums.Bool)); + if(variableByName((yyvsp[-4].qName), parseInfo)) { parseInfo->staticContext->error(QtXmlPatterns::tr("A variable with name %1 has already " "been declared.") - .arg(formatKeyword(parseInfo->staticContext->namePool()->toLexical((yyvsp[(5) - (9)].qName)))), + .arg(formatKeyword(parseInfo->staticContext->namePool()->toLexical((yyvsp[-4].qName)))), parseInfo->isXSLT() ? ReportContext::XTSE0630 : ReportContext::XQST0049, fromYYLTYPE((yyloc), parseInfo)); } else { - if((yyvsp[(7) - (9)].expr)) /* We got a value assigned. */ + if((yyvsp[-2].expr)) /* We got a value assigned. */ { const Expression::Ptr checked - (TypeChecker::applyFunctionConversion((yyvsp[(7) - (9)].expr), (yyvsp[(6) - (9)].sequenceType), parseInfo->staticContext, - (yyvsp[(3) - (9)].enums.Bool) ? ReportContext::XTTE0570 : ReportContext::XPTY0004, - (yyvsp[(3) - (9)].enums.Bool) ? TypeChecker::Options(TypeChecker::CheckFocus | TypeChecker::AutomaticallyConvert) : TypeChecker::CheckFocus)); + (TypeChecker::applyFunctionConversion((yyvsp[-2].expr), (yyvsp[-3].sequenceType), parseInfo->staticContext, + (yyvsp[-6].enums.Bool) ? ReportContext::XTTE0570 : ReportContext::XPTY0004, + (yyvsp[-6].enums.Bool) ? TypeChecker::Options(TypeChecker::CheckFocus | TypeChecker::AutomaticallyConvert) : TypeChecker::CheckFocus)); - pushVariable((yyvsp[(5) - (9)].qName), (yyvsp[(6) - (9)].sequenceType), checked, VariableDeclaration::GlobalVariable, (yyloc), parseInfo); + pushVariable((yyvsp[-4].qName), (yyvsp[-3].sequenceType), checked, VariableDeclaration::GlobalVariable, (yyloc), parseInfo); parseInfo->declaredVariables.append(parseInfo->variables.last()); } else /* We got an 'external' declaration. */ { const SequenceType::Ptr varType(parseInfo->staticContext-> - externalVariableLoader()->announceExternalVariable((yyvsp[(5) - (9)].qName), (yyvsp[(6) - (9)].sequenceType))); + externalVariableLoader()->announceExternalVariable((yyvsp[-4].qName), (yyvsp[-3].sequenceType))); if(varType) { /* We push the declaration such that we can see name clashes and so on, but we don't use it for tying * any references to it. */ - pushVariable((yyvsp[(5) - (9)].qName), varType, Expression::Ptr(), VariableDeclaration::ExternalVariable, (yyloc), parseInfo); + pushVariable((yyvsp[-4].qName), varType, Expression::Ptr(), VariableDeclaration::ExternalVariable, (yyloc), parseInfo); } - else if((yyvsp[(8) - (9)].expr)) + else if((yyvsp[-1].expr)) { /* Ok, the xsl:param got a default value, we make it * available as a regular variable declaration. */ // TODO turn into checked - pushVariable((yyvsp[(5) - (9)].qName), (yyvsp[(6) - (9)].sequenceType), (yyvsp[(8) - (9)].expr), VariableDeclaration::GlobalVariable, (yyloc), parseInfo); + pushVariable((yyvsp[-4].qName), (yyvsp[-3].sequenceType), (yyvsp[-1].expr), VariableDeclaration::GlobalVariable, (yyloc), parseInfo); // TODO ensure that duplicates are trapped. } else { parseInfo->staticContext->error(QtXmlPatterns::tr("No value is available for the external " "variable with name %1.") - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(5) - (9)].qName))), + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-4].qName))), parseInfo->isXSLT() ? ReportContext::XTDE0050 : ReportContext::XPDY0002, fromYYLTYPE((yyloc), parseInfo)); } } } } +#line 4246 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 73: - -/* Line 1806 of yacc.c */ -#line 2116 "querytransformparser.ypp" +#line 2100 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expr).reset(); } +#line 4254 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 74: - -/* Line 1806 of yacc.c */ -#line 2120 "querytransformparser.ypp" +#line 2104 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = (yyvsp[(2) - (2)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 4262 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 75: - -/* Line 1806 of yacc.c */ -#line 2125 "querytransformparser.ypp" +#line 2109 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expr).reset(); } +#line 4270 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 76: - -/* Line 1806 of yacc.c */ -#line 2129 "querytransformparser.ypp" +#line 2113 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = (yyvsp[(2) - (2)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 4278 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 77: - -/* Line 1806 of yacc.c */ -#line 2134 "querytransformparser.ypp" +#line 2118 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->hasDeclaration(ParserContext::ConstructionDecl)) { @@ -4655,57 +4331,53 @@ yyreduce: else { parseInfo->registerDeclaration(ParserContext::ConstructionDecl); - parseInfo->staticContext->setConstructionMode((yyvsp[(3) - (4)].enums.constructionMode)); + parseInfo->staticContext->setConstructionMode((yyvsp[-1].enums.constructionMode)); } } +#line 4295 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 78: - -/* Line 1806 of yacc.c */ -#line 2148 "querytransformparser.ypp" +#line 2132 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.constructionMode) = StaticContext::CMStrip; } +#line 4303 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 79: - -/* Line 1806 of yacc.c */ -#line 2152 "querytransformparser.ypp" +#line 2136 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.constructionMode) = StaticContext::CMPreserve; } +#line 4311 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 80: - -/* Line 1806 of yacc.c */ -#line 2157 "querytransformparser.ypp" +#line 2141 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.enums.slot) = parseInfo->currentExpressionSlot() - (yyvsp[(6) - (7)].functionArguments).count(); + (yyval.enums.slot) = parseInfo->currentExpressionSlot() - (yyvsp[-1].functionArguments).count(); } +#line 4319 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 81: - -/* Line 1806 of yacc.c */ -#line 2161 "querytransformparser.ypp" +#line 2145 "querytransformparser.ypp" /* yacc.c:1646 */ { - if(!(yyvsp[(3) - (11)].enums.Bool)) - allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(3) - (11)].enums.Bool)); + if(!(yyvsp[-8].enums.Bool)) + allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-8].enums.Bool)); /* If FunctionBody is null, it is 'external', otherwise the value is the body. */ - const QXmlName::NamespaceCode ns((yyvsp[(4) - (11)].qName).namespaceURI()); + const QXmlName::NamespaceCode ns((yyvsp[-7].qName).namespaceURI()); - if(parseInfo->isXSLT() && !(yyvsp[(4) - (11)].qName).hasPrefix()) + if(parseInfo->isXSLT() && !(yyvsp[-7].qName).hasPrefix()) { parseInfo->staticContext->error(QtXmlPatterns::tr("A stylesheet function must have a prefixed name."), ReportContext::XTSE0740, fromYYLTYPE((yyloc), parseInfo)); } - if((yyvsp[(10) - (11)].expr)) /* We got a function body. */ + if((yyvsp[-1].expr)) /* We got a function body. */ { if(ns == StandardNamespaces::empty) { @@ -4744,19 +4416,19 @@ yyreduce: { /* Apply function conversion such that the body matches the declared * return type. */ - const Expression::Ptr checked(TypeChecker::applyFunctionConversion((yyvsp[(10) - (11)].expr), (yyvsp[(9) - (11)].sequenceType), + const Expression::Ptr checked(TypeChecker::applyFunctionConversion((yyvsp[-1].expr), (yyvsp[-2].sequenceType), parseInfo->staticContext, ReportContext::XPTY0004, TypeChecker::Options(TypeChecker::AutomaticallyConvert | TypeChecker::CheckFocus | TypeChecker::GeneratePromotion))); - const int argCount = (yyvsp[(6) - (11)].functionArguments).count(); - const FunctionSignature::Ptr sign(new FunctionSignature((yyvsp[(4) - (11)].qName) /* name */, + const int argCount = (yyvsp[-5].functionArguments).count(); + const FunctionSignature::Ptr sign(new FunctionSignature((yyvsp[-7].qName) /* name */, argCount /* minArgs */, argCount /* maxArgs */, - (yyvsp[(9) - (11)].sequenceType) /* returnType */)); - sign->setArguments((yyvsp[(6) - (11)].functionArguments)); + (yyvsp[-2].sequenceType) /* returnType */)); + sign->setArguments((yyvsp[-5].functionArguments)); const UserFunction::List::const_iterator end(parseInfo->userFunctions.constEnd()); UserFunction::List::const_iterator it(parseInfo->userFunctions.constBegin()); @@ -4776,13 +4448,13 @@ yyreduce: for(int i = 0; i < argCount; ++i) argDecls.append(parseInfo->variables.at(i)); - if((yyvsp[(8) - (11)].enums.slot) > -1) + if((yyvsp[-3].enums.slot) > -1) { /* We have allocated slots, so now push them out of scope. */ parseInfo->finalizePushedVariable(argCount); } - parseInfo->userFunctions.append(UserFunction::Ptr(new UserFunction(sign, checked, (yyvsp[(8) - (11)].enums.slot), argDecls))); + parseInfo->userFunctions.append(UserFunction::Ptr(new UserFunction(sign, checked, (yyvsp[-3].enums.slot), argDecls))); } } else /* We got an 'external' declaration. */ @@ -4793,94 +4465,86 @@ yyreduce: ReportContext::XPST0017, fromYYLTYPE((yyloc), parseInfo)); } } +#line 4426 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 82: - -/* Line 1806 of yacc.c */ -#line 2265 "querytransformparser.ypp" +#line 2249 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.functionArguments) = FunctionArgument::List(); } +#line 4434 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 83: - -/* Line 1806 of yacc.c */ -#line 2269 "querytransformparser.ypp" +#line 2253 "querytransformparser.ypp" /* yacc.c:1646 */ { FunctionArgument::List l; - l.append((yyvsp[(1) - (1)].functionArgument)); + l.append((yyvsp[0].functionArgument)); (yyval.functionArguments) = l; } +#line 4444 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 84: - -/* Line 1806 of yacc.c */ -#line 2275 "querytransformparser.ypp" +#line 2259 "querytransformparser.ypp" /* yacc.c:1646 */ { - FunctionArgument::List::const_iterator it((yyvsp[(1) - (3)].functionArguments).constBegin()); - const FunctionArgument::List::const_iterator end((yyvsp[(1) - (3)].functionArguments).constEnd()); + FunctionArgument::List::const_iterator it((yyvsp[-2].functionArguments).constBegin()); + const FunctionArgument::List::const_iterator end((yyvsp[-2].functionArguments).constEnd()); for(; it != end; ++it) { - if((*it)->name() == (yyvsp[(3) - (3)].functionArgument)->name()) + if((*it)->name() == (yyvsp[0].functionArgument)->name()) { parseInfo->staticContext->error(QtXmlPatterns::tr("An argument with name %1 has already " "been declared. Every argument name " "must be unique.") - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(3) - (3)].functionArgument)->name())), + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[0].functionArgument)->name())), ReportContext::XQST0039, fromYYLTYPE((yyloc), parseInfo)); } } - (yyvsp[(1) - (3)].functionArguments).append((yyvsp[(3) - (3)].functionArgument)); - (yyval.functionArguments) = (yyvsp[(1) - (3)].functionArguments); + (yyvsp[-2].functionArguments).append((yyvsp[0].functionArgument)); + (yyval.functionArguments) = (yyvsp[-2].functionArguments); } +#line 4468 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 85: - -/* Line 1806 of yacc.c */ -#line 2296 "querytransformparser.ypp" +#line 2280 "querytransformparser.ypp" /* yacc.c:1646 */ { - pushVariable((yyvsp[(2) - (3)].qName), (yyvsp[(3) - (3)].sequenceType), Expression::Ptr(), VariableDeclaration::FunctionArgument, (yyloc), parseInfo); - (yyval.functionArgument) = FunctionArgument::Ptr(new FunctionArgument((yyvsp[(2) - (3)].qName), (yyvsp[(3) - (3)].sequenceType))); + pushVariable((yyvsp[-1].qName), (yyvsp[0].sequenceType), Expression::Ptr(), VariableDeclaration::FunctionArgument, (yyloc), parseInfo); + (yyval.functionArgument) = FunctionArgument::Ptr(new FunctionArgument((yyvsp[-1].qName), (yyvsp[0].sequenceType))); } +#line 4477 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 86: - -/* Line 1806 of yacc.c */ -#line 2302 "querytransformparser.ypp" +#line 2286 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expr).reset(); } +#line 4485 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 88: - -/* Line 1806 of yacc.c */ -#line 2308 "querytransformparser.ypp" +#line 2292 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = (yyvsp[(2) - (3)].expr); + (yyval.expr) = (yyvsp[-1].expr); } +#line 4493 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 91: - -/* Line 1806 of yacc.c */ -#line 2324 "querytransformparser.ypp" +#line 2308 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new CombineNodes((yyvsp[(1) - (3)].expr), CombineNodes::Union, (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new CombineNodes((yyvsp[-2].expr), CombineNodes::Union, (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 4501 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 93: - -/* Line 1806 of yacc.c */ -#line 2330 "querytransformparser.ypp" +#line 2314 "querytransformparser.ypp" /* yacc.c:1646 */ { /* We write this into a node test. The spec says, 5.5.3 The Meaning of a Pattern: * "Similarly, / matches a document node, and only a document node, @@ -4889,12 +4553,11 @@ yyreduce: * document node." */ (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisSelf, BuiltinTypes::document), (yyloc), parseInfo); } +#line 4514 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 94: - -/* Line 1806 of yacc.c */ -#line 2339 "querytransformparser.ypp" +#line 2323 "querytransformparser.ypp" /* yacc.c:1646 */ { /* /axis::node-test * => @@ -4933,7 +4596,7 @@ yyreduce: */ /* First, find the target. */ - Expression::Ptr target((yyvsp[(2) - (2)].expr)); + Expression::Ptr target((yyvsp[0].expr)); while(isPredicate(target->id())) { @@ -4947,8 +4610,8 @@ yyreduce: if(target->is(Expression::IDAxisStep)) { - (yyval.expr) = create(GenericPredicate::create((yyvsp[(2) - (2)].expr), create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::document), (yyloc), parseInfo), - parseInfo->staticContext, fromYYLTYPE((yylsp[(1) - (2)]), parseInfo)), (yylsp[(1) - (2)]), parseInfo); + (yyval.expr) = create(GenericPredicate::create((yyvsp[0].expr), create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::document), (yyloc), parseInfo), + parseInfo->staticContext, fromYYLTYPE((yylsp[-1]), parseInfo)), (yylsp[-1]), parseInfo); } else { @@ -4958,18 +4621,17 @@ yyreduce: newOps.append(create(GenericPredicate::create(targetOperands.at(1), create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::document), (yyloc), parseInfo), - parseInfo->staticContext, fromYYLTYPE((yylsp[(1) - (2)]), parseInfo)), (yylsp[(1) - (2)]), parseInfo)); + parseInfo->staticContext, fromYYLTYPE((yylsp[-1]), parseInfo)), (yylsp[-1]), parseInfo)); target->setOperands(newOps); - (yyval.expr) = (yyvsp[(2) - (2)].expr); + (yyval.expr) = (yyvsp[0].expr); } } +#line 4588 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 95: - -/* Line 1806 of yacc.c */ -#line 2409 "querytransformparser.ypp" +#line 2393 "querytransformparser.ypp" /* yacc.c:1646 */ { /* //axis::node-test * => @@ -4977,36 +4639,33 @@ yyreduce: * * Spec says: "//para matches any para element that has a parent node." */ - (yyval.expr) = create(GenericPredicate::create((yyvsp[(2) - (2)].expr), create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::node), (yyloc), parseInfo), - parseInfo->staticContext, fromYYLTYPE((yylsp[(1) - (2)]), parseInfo)), (yylsp[(1) - (2)]), parseInfo); + (yyval.expr) = create(GenericPredicate::create((yyvsp[0].expr), create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::node), (yyloc), parseInfo), + parseInfo->staticContext, fromYYLTYPE((yylsp[-1]), parseInfo)), (yylsp[-1]), parseInfo); } +#line 4603 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 97: - -/* Line 1806 of yacc.c */ -#line 2421 "querytransformparser.ypp" +#line 2405 "querytransformparser.ypp" /* yacc.c:1646 */ { - createIdPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisParent, (yylsp[(2) - (3)]), parseInfo); + createIdPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisParent, (yylsp[-1]), parseInfo); } +#line 4611 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 98: - -/* Line 1806 of yacc.c */ -#line 2425 "querytransformparser.ypp" +#line 2409 "querytransformparser.ypp" /* yacc.c:1646 */ { - createIdPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[(2) - (3)]), parseInfo); + createIdPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[-1]), parseInfo); } +#line 4619 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 99: - -/* Line 1806 of yacc.c */ -#line 2430 "querytransformparser.ypp" +#line 2414 "querytransformparser.ypp" /* yacc.c:1646 */ { - const Expression::List ands((yyvsp[(1) - (1)].expr)->operands()); - const FunctionSignature::Ptr signature((yyvsp[(1) - (1)].expr)->as<FunctionCall>()->signature()); + const Expression::List ands((yyvsp[0].expr)->operands()); + const FunctionSignature::Ptr signature((yyvsp[0].expr)->as<FunctionCall>()->signature()); const QXmlName name(signature->name()); const QXmlName key(StandardNamespaces::fn, StandardLocalNames::key); const QXmlName id(StandardNamespaces::fn, StandardLocalNames::id); @@ -5069,34 +4728,31 @@ yyreduce: fromYYLTYPE((yyloc), parseInfo)); } - (yyval.expr) = (yyvsp[(1) - (1)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 4691 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 101: - -/* Line 1806 of yacc.c */ -#line 2500 "querytransformparser.ypp" +#line 2484 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = createPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisParent, (yylsp[(2) - (3)]), parseInfo); + (yyval.expr) = createPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisParent, (yylsp[-1]), parseInfo); } +#line 4699 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 102: - -/* Line 1806 of yacc.c */ -#line 2504 "querytransformparser.ypp" +#line 2488 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = createPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[(2) - (3)]), parseInfo); + (yyval.expr) = createPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[-1]), parseInfo); } +#line 4707 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 103: - -/* Line 1806 of yacc.c */ -#line 2509 "querytransformparser.ypp" +#line 2493 "querytransformparser.ypp" /* yacc.c:1646 */ { - const Expression::Ptr expr(findAxisStep((yyvsp[(1) - (1)].expr))); + const Expression::Ptr expr(findAxisStep((yyvsp[0].expr))); const QXmlNodeModelIndex::Axis axis = expr->as<AxisStep>()->axis(); AxisStep *const axisStep = expr->as<AxisStep>(); @@ -5135,192 +4791,177 @@ yyreduce: fromYYLTYPE((yyloc), parseInfo)); } - (yyval.expr) = (yyvsp[(1) - (1)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 4754 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 105: - -/* Line 1806 of yacc.c */ -#line 2554 "querytransformparser.ypp" +#line 2538 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new ExpressionSequence((yyvsp[(1) - (1)].expressionList)), (yyloc), parseInfo); + (yyval.expr) = create(new ExpressionSequence((yyvsp[0].expressionList)), (yyloc), parseInfo); } +#line 4762 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 106: - -/* Line 1806 of yacc.c */ -#line 2559 "querytransformparser.ypp" +#line 2543 "querytransformparser.ypp" /* yacc.c:1646 */ { Expression::List l; - l.append((yyvsp[(1) - (3)].expr)); - l.append((yyvsp[(3) - (3)].expr)); + l.append((yyvsp[-2].expr)); + l.append((yyvsp[0].expr)); (yyval.expressionList) = l; } +#line 4773 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 107: - -/* Line 1806 of yacc.c */ -#line 2566 "querytransformparser.ypp" +#line 2550 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyvsp[(1) - (3)].expressionList).append((yyvsp[(3) - (3)].expr)); - (yyval.expressionList) = (yyvsp[(1) - (3)].expressionList); + (yyvsp[-2].expressionList).append((yyvsp[0].expr)); + (yyval.expressionList) = (yyvsp[-2].expressionList); } +#line 4782 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 113: - -/* Line 1806 of yacc.c */ -#line 2577 "querytransformparser.ypp" +#line 2561 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = createDirAttributeValue((yyvsp[(3) - (4)].expressionList), parseInfo, (yyloc)); + (yyval.expr) = createDirAttributeValue((yyvsp[-1].expressionList), parseInfo, (yyloc)); } +#line 4790 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 114: - -/* Line 1806 of yacc.c */ -#line 2582 "querytransformparser.ypp" +#line 2566 "querytransformparser.ypp" /* yacc.c:1646 */ { QVector<QXmlName> result; result.append(QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default)); (yyval.qNameVector) = result; } +#line 4800 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 115: - -/* Line 1806 of yacc.c */ -#line 2588 "querytransformparser.ypp" +#line 2572 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qNameVector) = (yyvsp[(2) - (2)].qNameVector); + (yyval.qNameVector) = (yyvsp[0].qNameVector); } +#line 4808 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 116: - -/* Line 1806 of yacc.c */ -#line 2593 "querytransformparser.ypp" +#line 2577 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default); } +#line 4816 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 117: - -/* Line 1806 of yacc.c */ -#line 2597 "querytransformparser.ypp" +#line 2581 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qName) = (yyvsp[(2) - (2)].qName); + (yyval.qName) = (yyvsp[0].qName); } +#line 4824 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 118: - -/* Line 1806 of yacc.c */ -#line 2602 "querytransformparser.ypp" +#line 2586 "querytransformparser.ypp" /* yacc.c:1646 */ { QVector<QXmlName> result; - result.append((yyvsp[(1) - (1)].qName)); + result.append((yyvsp[0].qName)); (yyval.qNameVector) = result; } +#line 4834 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 119: - -/* Line 1806 of yacc.c */ -#line 2608 "querytransformparser.ypp" +#line 2592 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyvsp[(1) - (3)].qNameVector).append((yyvsp[(3) - (3)].qName)); - (yyval.qNameVector) = (yyvsp[(1) - (3)].qNameVector); + (yyvsp[-2].qNameVector).append((yyvsp[0].qName)); + (yyval.qNameVector) = (yyvsp[-2].qNameVector); } +#line 4843 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 120: - -/* Line 1806 of yacc.c */ -#line 2614 "querytransformparser.ypp" +#line 2598 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qName) = (yyvsp[(1) - (1)].qName); + (yyval.qName) = (yyvsp[0].qName); } +#line 4851 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 121: - -/* Line 1806 of yacc.c */ -#line 2618 "querytransformparser.ypp" +#line 2602 "querytransformparser.ypp" /* yacc.c:1646 */ { - if((yyvsp[(1) - (1)].sval) == QLatin1String("#current")) + if((yyvsp[0].sval) == QLatin1String("#current")) (yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::current); - else if((yyvsp[(1) - (1)].sval) == QLatin1String("#default")) + else if((yyvsp[0].sval) == QLatin1String("#default")) (yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default); - else if((yyvsp[(1) - (1)].sval) == QLatin1String("#all")) + else if((yyvsp[0].sval) == QLatin1String("#all")) (yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::all); else { const ReflectYYLTYPE ryy((yyloc), parseInfo); - if(!QXmlUtils::isNCName((yyvsp[(1) - (1)].sval))) + if(!QXmlUtils::isNCName((yyvsp[0].sval))) { parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is an invalid template mode name.") - .arg(formatKeyword((yyvsp[(1) - (1)].sval))), + .arg(formatKeyword((yyvsp[0].sval))), ReportContext::XTSE0550, fromYYLTYPE((yyloc), parseInfo)); } - (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[(1) - (1)].sval)); + (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[0].sval)); } } +#line 4878 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 124: - -/* Line 1806 of yacc.c */ -#line 2647 "querytransformparser.ypp" +#line 2631 "querytransformparser.ypp" /* yacc.c:1646 */ { /* We're pushing the range variable here, not the positional. */ - (yyval.expr) = pushVariable((yyvsp[(3) - (7)].qName), quantificationType((yyvsp[(4) - (7)].sequenceType)), (yyvsp[(7) - (7)].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); + (yyval.expr) = pushVariable((yyvsp[-4].qName), quantificationType((yyvsp[-3].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } +#line 4887 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 125: - -/* Line 1806 of yacc.c */ -#line 2651 "querytransformparser.ypp" +#line 2635 "querytransformparser.ypp" /* yacc.c:1646 */ { /* It is ok this appears after PositionalVar, because currentRangeSlot() * uses a different "channel" than currentPositionSlot(), so they can't trash * each other. */ (yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot(); } +#line 4898 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 126: - -/* Line 1806 of yacc.c */ -#line 2658 "querytransformparser.ypp" +#line 2642 "querytransformparser.ypp" /* yacc.c:1646 */ { - Q_ASSERT((yyvsp[(7) - (10)].expr)); - Q_ASSERT((yyvsp[(10) - (10)].expr)); + Q_ASSERT((yyvsp[-3].expr)); + Q_ASSERT((yyvsp[0].expr)); /* We want the next last pushed variable, since we push the range variable after the * positional variable. */ - if((yyvsp[(5) - (10)].enums.slot) != -1 && parseInfo->variables.at(parseInfo->variables.count() -2)->name == (yyvsp[(3) - (10)].qName)) + if((yyvsp[-5].enums.slot) != -1 && parseInfo->variables.at(parseInfo->variables.count() -2)->name == (yyvsp[-7].qName)) { /* Ok, a positional variable is used since its slot is not -1, and its name is equal * to our range variable. This is an error. */ parseInfo->staticContext->error(QtXmlPatterns::tr("The name of a variable bound in a for-expression must be different " "from the positional variable. Hence, the two variables named %1 collide.") - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(3) - (10)].qName))), + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-7].qName))), ReportContext::XQST0089, fromYYLTYPE((yyloc), parseInfo)); } - const Expression::Ptr retBody(create(new ForClause((yyvsp[(9) - (10)].enums.slot), (yyvsp[(8) - (10)].expr), (yyvsp[(10) - (10)].expr), (yyvsp[(5) - (10)].enums.slot)), (yyloc), parseInfo)); - ReturnOrderBy *const rob = locateReturnClause((yyvsp[(10) - (10)].expr)); + const Expression::Ptr retBody(create(new ForClause((yyvsp[-1].enums.slot), (yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-5].enums.slot)), (yyloc), parseInfo)); + ReturnOrderBy *const rob = locateReturnClause((yyvsp[0].expr)); if(rob) (yyval.expr) = create(new OrderBy(rob->stability(), rob->orderSpecs(), retBody, rob), (yyloc), parseInfo); @@ -5329,186 +4970,169 @@ yyreduce: parseInfo->finalizePushedVariable(); - if((yyvsp[(5) - (10)].enums.slot) != -1) /* We also have a positional variable to remove from the scope. */ + if((yyvsp[-5].enums.slot) != -1) /* We also have a positional variable to remove from the scope. */ parseInfo->finalizePushedVariable(); } +#line 4934 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 127: - -/* Line 1806 of yacc.c */ -#line 2692 "querytransformparser.ypp" +#line 2676 "querytransformparser.ypp" /* yacc.c:1646 */ { - pushVariable((yyvsp[(3) - (7)].qName), quantificationType((yyvsp[(4) - (7)].sequenceType)), (yyvsp[(7) - (7)].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); + pushVariable((yyvsp[-4].qName), quantificationType((yyvsp[-3].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } +#line 4942 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 128: - -/* Line 1806 of yacc.c */ -#line 2695 "querytransformparser.ypp" +#line 2679 "querytransformparser.ypp" /* yacc.c:1646 */ { /* It is ok this appears after PositionalVar, because currentRangeSlot() * uses a different "channel" than currentPositionSlot(), so they can't trash * each other. */ (yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot(); } +#line 4953 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 129: - -/* Line 1806 of yacc.c */ -#line 2702 "querytransformparser.ypp" +#line 2686 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new ForClause((yyvsp[(9) - (10)].enums.slot), (yyvsp[(7) - (10)].expr), (yyvsp[(10) - (10)].expr), (yyvsp[(5) - (10)].enums.slot)), (yyloc), parseInfo); + (yyval.expr) = create(new ForClause((yyvsp[-1].enums.slot), (yyvsp[-3].expr), (yyvsp[0].expr), (yyvsp[-5].enums.slot)), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); - if((yyvsp[(5) - (10)].enums.slot) != -1) /* We also have a positional variable to remove from the scope. */ + if((yyvsp[-5].enums.slot) != -1) /* We also have a positional variable to remove from the scope. */ parseInfo->finalizePushedVariable(); } +#line 4966 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 133: - -/* Line 1806 of yacc.c */ -#line 2716 "querytransformparser.ypp" +#line 2700 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.slot) = -1; } +#line 4974 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 134: - -/* Line 1806 of yacc.c */ -#line 2721 "querytransformparser.ypp" +#line 2705 "querytransformparser.ypp" /* yacc.c:1646 */ { - pushVariable((yyvsp[(3) - (3)].qName), CommonSequenceTypes::ExactlyOneInteger, Expression::Ptr(), + pushVariable((yyvsp[0].qName), CommonSequenceTypes::ExactlyOneInteger, Expression::Ptr(), VariableDeclaration::PositionalVariable, (yyloc), parseInfo); (yyval.enums.slot) = parseInfo->currentPositionSlot(); } +#line 4984 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 135: - -/* Line 1806 of yacc.c */ -#line 2728 "querytransformparser.ypp" +#line 2712 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = pushVariable((yyvsp[(4) - (7)].qName), quantificationType((yyvsp[(5) - (7)].sequenceType)), (yyvsp[(7) - (7)].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo); + (yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo); } +#line 4992 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 136: - -/* Line 1806 of yacc.c */ -#line 2732 "querytransformparser.ypp" +#line 2716 "querytransformparser.ypp" /* yacc.c:1646 */ { - allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (9)].enums.Bool)); + allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-7].enums.Bool)); - Q_ASSERT(parseInfo->variables.top()->name == (yyvsp[(4) - (9)].qName)); - (yyval.expr) = create(new LetClause((yyvsp[(8) - (9)].expr), (yyvsp[(9) - (9)].expr), parseInfo->variables.top()), (yyloc), parseInfo); + Q_ASSERT(parseInfo->variables.top()->name == (yyvsp[-5].qName)); + (yyval.expr) = create(new LetClause((yyvsp[-1].expr), (yyvsp[0].expr), parseInfo->variables.top()), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } +#line 5004 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 137: - -/* Line 1806 of yacc.c */ -#line 2741 "querytransformparser.ypp" - { (yyval.expr) = pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo);} +#line 2725 "querytransformparser.ypp" /* yacc.c:1646 */ + { (yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo);} +#line 5010 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 138: - -/* Line 1806 of yacc.c */ -#line 2743 "querytransformparser.ypp" +#line 2727 "querytransformparser.ypp" /* yacc.c:1646 */ { - Q_ASSERT(parseInfo->variables.top()->name == (yyvsp[(3) - (8)].qName)); - (yyval.expr) = create(new LetClause((yyvsp[(7) - (8)].expr), (yyvsp[(8) - (8)].expr), parseInfo->variables.top()), (yyloc), parseInfo); + Q_ASSERT(parseInfo->variables.top()->name == (yyvsp[-5].qName)); + (yyval.expr) = create(new LetClause((yyvsp[-1].expr), (yyvsp[0].expr), parseInfo->variables.top()), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } +#line 5020 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 142: - -/* Line 1806 of yacc.c */ -#line 2754 "querytransformparser.ypp" +#line 2738 "querytransformparser.ypp" /* yacc.c:1646 */ { - if((yyvsp[(1) - (3)].orderSpecs).isEmpty()) - (yyval.expr) = (yyvsp[(3) - (3)].expr); + if((yyvsp[-2].orderSpecs).isEmpty()) + (yyval.expr) = (yyvsp[0].expr); else - (yyval.expr) = createReturnOrderBy((yyvsp[(1) - (3)].orderSpecs), (yyvsp[(3) - (3)].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo); + (yyval.expr) = createReturnOrderBy((yyvsp[-2].orderSpecs), (yyvsp[0].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo); } +#line 5031 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 143: - -/* Line 1806 of yacc.c */ -#line 2762 "querytransformparser.ypp" +#line 2746 "querytransformparser.ypp" /* yacc.c:1646 */ { - if((yyvsp[(3) - (5)].orderSpecs).isEmpty()) - (yyval.expr) = create(new IfThenClause((yyvsp[(2) - (5)].expr), (yyvsp[(5) - (5)].expr), create(new EmptySequence, (yyloc), parseInfo)), (yyloc), parseInfo); + if((yyvsp[-2].orderSpecs).isEmpty()) + (yyval.expr) = create(new IfThenClause((yyvsp[-3].expr), (yyvsp[0].expr), create(new EmptySequence, (yyloc), parseInfo)), (yyloc), parseInfo); else - (yyval.expr) = create(new IfThenClause((yyvsp[(2) - (5)].expr), createReturnOrderBy((yyvsp[(3) - (5)].orderSpecs), (yyvsp[(5) - (5)].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo), + (yyval.expr) = create(new IfThenClause((yyvsp[-3].expr), createReturnOrderBy((yyvsp[-2].orderSpecs), (yyvsp[0].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo), create(new EmptySequence, (yyloc), parseInfo)), (yyloc), parseInfo); } +#line 5044 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 144: - -/* Line 1806 of yacc.c */ -#line 2772 "querytransformparser.ypp" +#line 2756 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.orderSpecs) = OrderSpecTransfer::List(); } +#line 5052 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 146: - -/* Line 1806 of yacc.c */ -#line 2778 "querytransformparser.ypp" +#line 2762 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.orderSpecs) = (yyvsp[(2) - (2)].orderSpecs); + (yyval.orderSpecs) = (yyvsp[0].orderSpecs); } +#line 5060 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 147: - -/* Line 1806 of yacc.c */ -#line 2783 "querytransformparser.ypp" +#line 2767 "querytransformparser.ypp" /* yacc.c:1646 */ { OrderSpecTransfer::List list; - list += (yyvsp[(1) - (3)].orderSpecs); - list.append((yyvsp[(3) - (3)].orderSpec)); + list += (yyvsp[-2].orderSpecs); + list.append((yyvsp[0].orderSpec)); (yyval.orderSpecs) = list; } +#line 5071 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 148: - -/* Line 1806 of yacc.c */ -#line 2790 "querytransformparser.ypp" +#line 2774 "querytransformparser.ypp" /* yacc.c:1646 */ { OrderSpecTransfer::List list; - list.append((yyvsp[(1) - (1)].orderSpec)); + list.append((yyvsp[0].orderSpec)); (yyval.orderSpecs) = list; } +#line 5081 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 149: - -/* Line 1806 of yacc.c */ -#line 2797 "querytransformparser.ypp" +#line 2781 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.orderSpec) = OrderSpecTransfer((yyvsp[(1) - (4)].expr), OrderBy::OrderSpec((yyvsp[(2) - (4)].enums.sortDirection), (yyvsp[(3) - (4)].enums.orderingEmptySequence))); + (yyval.orderSpec) = OrderSpecTransfer((yyvsp[-3].expr), OrderBy::OrderSpec((yyvsp[-2].enums.sortDirection), (yyvsp[-1].enums.orderingEmptySequence))); } +#line 5089 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 150: - -/* Line 1806 of yacc.c */ -#line 2802 "querytransformparser.ypp" +#line 2786 "querytransformparser.ypp" /* yacc.c:1646 */ { /* Where does the specification state the default value is ascending? * @@ -5528,654 +5152,582 @@ yyreduce: */ (yyval.enums.sortDirection) = OrderBy::OrderSpec::Ascending; } +#line 5113 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 151: - -/* Line 1806 of yacc.c */ -#line 2823 "querytransformparser.ypp" +#line 2807 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.sortDirection) = OrderBy::OrderSpec::Ascending; } +#line 5121 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 152: - -/* Line 1806 of yacc.c */ -#line 2828 "querytransformparser.ypp" +#line 2812 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.sortDirection) = OrderBy::OrderSpec::Descending; } +#line 5129 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 153: - -/* Line 1806 of yacc.c */ -#line 2833 "querytransformparser.ypp" +#line 2817 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.orderingEmptySequence) = parseInfo->staticContext->orderingEmptySequence(); } +#line 5137 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 156: - -/* Line 1806 of yacc.c */ -#line 2840 "querytransformparser.ypp" +#line 2824 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->isXSLT()) - resolveAndCheckCollation<ReportContext::XTDE1035>((yyvsp[(2) - (2)].sval), parseInfo, (yyloc)); + resolveAndCheckCollation<ReportContext::XTDE1035>((yyvsp[0].sval), parseInfo, (yyloc)); else - resolveAndCheckCollation<ReportContext::XQST0076>((yyvsp[(2) - (2)].sval), parseInfo, (yyloc)); + resolveAndCheckCollation<ReportContext::XQST0076>((yyvsp[0].sval), parseInfo, (yyloc)); } +#line 5148 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 157: - -/* Line 1806 of yacc.c */ -#line 2847 "querytransformparser.ypp" +#line 2831 "querytransformparser.ypp" /* yacc.c:1646 */ { /* We do nothing. We don't use collations, and we have this non-terminal * in order to accept expressions. */ } +#line 5157 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 158: - -/* Line 1806 of yacc.c */ -#line 2853 "querytransformparser.ypp" +#line 2837 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->orderStability.push(OrderBy::StableOrder); } +#line 5165 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 159: - -/* Line 1806 of yacc.c */ -#line 2857 "querytransformparser.ypp" +#line 2841 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->orderStability.push(OrderBy::UnstableOrder); } +#line 5173 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 162: - -/* Line 1806 of yacc.c */ -#line 2865 "querytransformparser.ypp" +#line 2849 "querytransformparser.ypp" /* yacc.c:1646 */ { - pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr), + pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } +#line 5182 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 163: - -/* Line 1806 of yacc.c */ -#line 2869 "querytransformparser.ypp" +#line 2853 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();} +#line 5188 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 164: - -/* Line 1806 of yacc.c */ -#line 2871 "querytransformparser.ypp" +#line 2855 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot), - QuantifiedExpression::Some, (yyvsp[(6) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot), + QuantifiedExpression::Some, (yyvsp[-3].expr), (yyvsp[0].expr)), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } +#line 5199 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 165: - -/* Line 1806 of yacc.c */ -#line 2879 "querytransformparser.ypp" +#line 2863 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr), + (yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } +#line 5208 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 166: - -/* Line 1806 of yacc.c */ -#line 2883 "querytransformparser.ypp" +#line 2867 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();} +#line 5214 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 167: - -/* Line 1806 of yacc.c */ -#line 2885 "querytransformparser.ypp" +#line 2869 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot), - QuantifiedExpression::Some, (yyvsp[(7) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot), + QuantifiedExpression::Some, (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } +#line 5224 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 169: - -/* Line 1806 of yacc.c */ -#line 2894 "querytransformparser.ypp" +#line 2878 "querytransformparser.ypp" /* yacc.c:1646 */ { - pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr), + pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } +#line 5233 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 170: - -/* Line 1806 of yacc.c */ -#line 2898 "querytransformparser.ypp" +#line 2882 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();} +#line 5239 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 171: - -/* Line 1806 of yacc.c */ -#line 2900 "querytransformparser.ypp" +#line 2884 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot), - QuantifiedExpression::Every, (yyvsp[(6) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot), + QuantifiedExpression::Every, (yyvsp[-3].expr), (yyvsp[0].expr)), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } +#line 5250 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 172: - -/* Line 1806 of yacc.c */ -#line 2908 "querytransformparser.ypp" +#line 2892 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr), + (yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } +#line 5259 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 173: - -/* Line 1806 of yacc.c */ -#line 2912 "querytransformparser.ypp" +#line 2896 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();} +#line 5265 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 174: - -/* Line 1806 of yacc.c */ -#line 2914 "querytransformparser.ypp" +#line 2898 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot), - QuantifiedExpression::Every, (yyvsp[(7) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot), + QuantifiedExpression::Every, (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } +#line 5275 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 176: - -/* Line 1806 of yacc.c */ -#line 2923 "querytransformparser.ypp" +#line 2907 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = (yyvsp[(2) - (2)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 5283 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 177: - -/* Line 1806 of yacc.c */ -#line 2950 "querytransformparser.ypp" +#line 2934 "querytransformparser.ypp" /* yacc.c:1646 */ { - parseInfo->typeswitchSource.push((yyvsp[(3) - (4)].expr)); + parseInfo->typeswitchSource.push((yyvsp[-1].expr)); } +#line 5291 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 178: - -/* Line 1806 of yacc.c */ -#line 2954 "querytransformparser.ypp" +#line 2938 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); parseInfo->typeswitchSource.pop(); - (yyval.expr) = (yyvsp[(6) - (6)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 5301 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 179: - -/* Line 1806 of yacc.c */ -#line 2961 "querytransformparser.ypp" +#line 2945 "querytransformparser.ypp" /* yacc.c:1646 */ { - if(!(yyvsp[(2) - (3)].qName).isNull()) + if(!(yyvsp[-1].qName).isNull()) { - pushVariable((yyvsp[(2) - (3)].qName), (yyvsp[(3) - (3)].sequenceType), parseInfo->typeswitchSource.top(), + pushVariable((yyvsp[-1].qName), (yyvsp[0].sequenceType), parseInfo->typeswitchSource.top(), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo, false); } } +#line 5313 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 180: - -/* Line 1806 of yacc.c */ -#line 2969 "querytransformparser.ypp" +#line 2953 "querytransformparser.ypp" /* yacc.c:1646 */ { /* The variable shouldn't be in-scope for other case branches. */ - if(!(yyvsp[(2) - (6)].qName).isNull()) + if(!(yyvsp[-4].qName).isNull()) parseInfo->finalizePushedVariable(); } +#line 5323 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 181: - -/* Line 1806 of yacc.c */ -#line 2975 "querytransformparser.ypp" +#line 2959 "querytransformparser.ypp" /* yacc.c:1646 */ { - const Expression::Ptr instanceOf(create(new InstanceOf(parseInfo->typeswitchSource.top(), (yyvsp[(3) - (8)].sequenceType)), (yyloc), parseInfo)); - (yyval.expr) = create(new IfThenClause(instanceOf, (yyvsp[(6) - (8)].expr), (yyvsp[(8) - (8)].expr)), (yyloc), parseInfo); + const Expression::Ptr instanceOf(create(new InstanceOf(parseInfo->typeswitchSource.top(), (yyvsp[-5].sequenceType)), (yyloc), parseInfo)); + (yyval.expr) = create(new IfThenClause(instanceOf, (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5332 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 184: - -/* Line 1806 of yacc.c */ -#line 2984 "querytransformparser.ypp" +#line 2968 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.qName) = QXmlName(); } +#line 5340 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 185: - -/* Line 1806 of yacc.c */ -#line 2989 "querytransformparser.ypp" +#line 2973 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qName) = (yyvsp[(2) - (3)].qName); + (yyval.qName) = (yyvsp[-1].qName); } +#line 5348 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 186: - -/* Line 1806 of yacc.c */ -#line 2994 "querytransformparser.ypp" +#line 2978 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = (yyvsp[(3) - (3)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 5356 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 187: - -/* Line 1806 of yacc.c */ -#line 2998 "querytransformparser.ypp" +#line 2982 "querytransformparser.ypp" /* yacc.c:1646 */ { - if(!(yyvsp[(3) - (3)].qName).isNull()) + if(!(yyvsp[0].qName).isNull()) { - pushVariable((yyvsp[(3) - (3)].qName), parseInfo->typeswitchSource.top()->staticType(), + pushVariable((yyvsp[0].qName), parseInfo->typeswitchSource.top()->staticType(), parseInfo->typeswitchSource.top(), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo, false); } } +#line 5369 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 188: - -/* Line 1806 of yacc.c */ -#line 3007 "querytransformparser.ypp" +#line 2991 "querytransformparser.ypp" /* yacc.c:1646 */ { - if(!(yyvsp[(3) - (6)].qName).isNull()) + if(!(yyvsp[-3].qName).isNull()) parseInfo->finalizePushedVariable(); - (yyval.expr) = (yyvsp[(6) - (6)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 5379 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 189: - -/* Line 1806 of yacc.c */ -#line 3014 "querytransformparser.ypp" +#line 2998 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new IfThenClause((yyvsp[(3) - (8)].expr), (yyvsp[(6) - (8)].expr), (yyvsp[(8) - (8)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new IfThenClause((yyvsp[-5].expr), (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5388 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 191: - -/* Line 1806 of yacc.c */ -#line 3021 "querytransformparser.ypp" +#line 3005 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new OrExpression((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new OrExpression((yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5397 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 193: - -/* Line 1806 of yacc.c */ -#line 3028 "querytransformparser.ypp" +#line 3012 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new AndExpression((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new AndExpression((yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5406 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 199: - -/* Line 1806 of yacc.c */ -#line 3040 "querytransformparser.ypp" +#line 3024 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new RangeExpression((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new RangeExpression((yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5415 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 201: - -/* Line 1806 of yacc.c */ -#line 3047 "querytransformparser.ypp" +#line 3031 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new ArithmeticExpression((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.mathOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new ArithmeticExpression((yyvsp[-2].expr), (yyvsp[-1].enums.mathOperator), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5424 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 202: - -/* Line 1806 of yacc.c */ -#line 3052 "querytransformparser.ypp" +#line 3036 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.mathOperator) = AtomicMathematician::Add;} +#line 5430 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 203: - -/* Line 1806 of yacc.c */ -#line 3053 "querytransformparser.ypp" +#line 3037 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.mathOperator) = AtomicMathematician::Substract;} +#line 5436 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 205: - -/* Line 1806 of yacc.c */ -#line 3057 "querytransformparser.ypp" +#line 3041 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new ArithmeticExpression((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.mathOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new ArithmeticExpression((yyvsp[-2].expr), (yyvsp[-1].enums.mathOperator), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5445 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 206: - -/* Line 1806 of yacc.c */ -#line 3062 "querytransformparser.ypp" +#line 3046 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.mathOperator) = AtomicMathematician::Multiply;} +#line 5451 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 207: - -/* Line 1806 of yacc.c */ -#line 3063 "querytransformparser.ypp" +#line 3047 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.mathOperator) = AtomicMathematician::Div;} +#line 5457 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 208: - -/* Line 1806 of yacc.c */ -#line 3064 "querytransformparser.ypp" +#line 3048 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.mathOperator) = AtomicMathematician::IDiv;} +#line 5463 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 209: - -/* Line 1806 of yacc.c */ -#line 3065 "querytransformparser.ypp" +#line 3049 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.mathOperator) = AtomicMathematician::Mod;} +#line 5469 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 211: - -/* Line 1806 of yacc.c */ -#line 3069 "querytransformparser.ypp" +#line 3053 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20 | QXmlQuery::XmlSchema11IdentityConstraintField | QXmlQuery::XmlSchema11IdentityConstraintSelector), parseInfo, (yyloc)); - (yyval.expr) = create(new CombineNodes((yyvsp[(1) - (3)].expr), CombineNodes::Union, (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new CombineNodes((yyvsp[-2].expr), CombineNodes::Union, (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5482 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 213: - -/* Line 1806 of yacc.c */ -#line 3080 "querytransformparser.ypp" +#line 3064 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new CombineNodes((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.combinedNodeOp), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new CombineNodes((yyvsp[-2].expr), (yyvsp[-1].enums.combinedNodeOp), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5491 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 216: - -/* Line 1806 of yacc.c */ -#line 3089 "querytransformparser.ypp" +#line 3073 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.combinedNodeOp) = CombineNodes::Intersect; } +#line 5499 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 217: - -/* Line 1806 of yacc.c */ -#line 3093 "querytransformparser.ypp" +#line 3077 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.combinedNodeOp) = CombineNodes::Except; } +#line 5507 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 219: - -/* Line 1806 of yacc.c */ -#line 3099 "querytransformparser.ypp" +#line 3083 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new InstanceOf((yyvsp[(1) - (4)].expr), - SequenceType::Ptr((yyvsp[(4) - (4)].sequenceType))), (yyloc), parseInfo); + (yyval.expr) = create(new InstanceOf((yyvsp[-3].expr), + SequenceType::Ptr((yyvsp[0].sequenceType))), (yyloc), parseInfo); } +#line 5517 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 221: - -/* Line 1806 of yacc.c */ -#line 3107 "querytransformparser.ypp" +#line 3091 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new TreatAs((yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].sequenceType)), (yyloc), parseInfo); + (yyval.expr) = create(new TreatAs((yyvsp[-3].expr), (yyvsp[0].sequenceType)), (yyloc), parseInfo); } +#line 5526 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 223: - -/* Line 1806 of yacc.c */ -#line 3114 "querytransformparser.ypp" +#line 3098 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new CastableAs((yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].sequenceType)), (yyloc), parseInfo); + (yyval.expr) = create(new CastableAs((yyvsp[-3].expr), (yyvsp[0].sequenceType)), (yyloc), parseInfo); } +#line 5535 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 225: - -/* Line 1806 of yacc.c */ -#line 3121 "querytransformparser.ypp" +#line 3105 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new CastAs((yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].sequenceType)), (yyloc), parseInfo); + (yyval.expr) = create(new CastAs((yyvsp[-3].expr), (yyvsp[0].sequenceType)), (yyloc), parseInfo); } +#line 5544 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 227: - -/* Line 1806 of yacc.c */ -#line 3128 "querytransformparser.ypp" +#line 3112 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new UnaryExpression((yyvsp[(1) - (2)].enums.mathOperator), (yyvsp[(2) - (2)].expr), parseInfo->staticContext), (yyloc), parseInfo); + (yyval.expr) = create(new UnaryExpression((yyvsp[-1].enums.mathOperator), (yyvsp[0].expr), parseInfo->staticContext), (yyloc), parseInfo); } +#line 5553 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 228: - -/* Line 1806 of yacc.c */ -#line 3134 "querytransformparser.ypp" +#line 3118 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.mathOperator) = AtomicMathematician::Add; } +#line 5561 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 229: - -/* Line 1806 of yacc.c */ -#line 3138 "querytransformparser.ypp" +#line 3122 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.mathOperator) = AtomicMathematician::Substract; } +#line 5569 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 233: - -/* Line 1806 of yacc.c */ -#line 3147 "querytransformparser.ypp" +#line 3131 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(new GeneralComparison((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.valueOperator), (yyvsp[(3) - (3)].expr), parseInfo->isBackwardsCompat.top()), (yyloc), parseInfo); + (yyval.expr) = create(new GeneralComparison((yyvsp[-2].expr), (yyvsp[-1].enums.valueOperator), (yyvsp[0].expr), parseInfo->isBackwardsCompat.top()), (yyloc), parseInfo); } +#line 5578 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 234: - -/* Line 1806 of yacc.c */ -#line 3152 "querytransformparser.ypp" +#line 3136 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;} +#line 5584 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 235: - -/* Line 1806 of yacc.c */ -#line 3153 "querytransformparser.ypp" +#line 3137 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;} +#line 5590 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 236: - -/* Line 1806 of yacc.c */ -#line 3154 "querytransformparser.ypp" +#line 3138 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;} +#line 5596 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 237: - -/* Line 1806 of yacc.c */ -#line 3155 "querytransformparser.ypp" +#line 3139 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;} +#line 5602 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 238: - -/* Line 1806 of yacc.c */ -#line 3156 "querytransformparser.ypp" +#line 3140 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;} +#line 5608 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 239: - -/* Line 1806 of yacc.c */ -#line 3157 "querytransformparser.ypp" +#line 3141 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;} +#line 5614 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 240: - -/* Line 1806 of yacc.c */ -#line 3160 "querytransformparser.ypp" +#line 3144 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new ValueComparison((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.valueOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new ValueComparison((yyvsp[-2].expr), (yyvsp[-1].enums.valueOperator), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5622 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 241: - -/* Line 1806 of yacc.c */ -#line 3164 "querytransformparser.ypp" +#line 3148 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;} +#line 5628 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 242: - -/* Line 1806 of yacc.c */ -#line 3165 "querytransformparser.ypp" +#line 3149 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;} +#line 5634 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 243: - -/* Line 1806 of yacc.c */ -#line 3166 "querytransformparser.ypp" +#line 3150 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;} +#line 5640 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 244: - -/* Line 1806 of yacc.c */ -#line 3167 "querytransformparser.ypp" +#line 3151 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;} +#line 5646 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 245: - -/* Line 1806 of yacc.c */ -#line 3168 "querytransformparser.ypp" +#line 3152 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;} +#line 5652 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 246: - -/* Line 1806 of yacc.c */ -#line 3169 "querytransformparser.ypp" +#line 3153 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;} +#line 5658 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 247: - -/* Line 1806 of yacc.c */ -#line 3172 "querytransformparser.ypp" +#line 3156 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new NodeComparison((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.nodeOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new NodeComparison((yyvsp[-2].expr), (yyvsp[-1].enums.nodeOperator), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5666 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 248: - -/* Line 1806 of yacc.c */ -#line 3176 "querytransformparser.ypp" +#line 3160 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Is;} +#line 5672 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 249: - -/* Line 1806 of yacc.c */ -#line 3177 "querytransformparser.ypp" +#line 3161 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Precedes;} +#line 5678 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 250: - -/* Line 1806 of yacc.c */ -#line 3178 "querytransformparser.ypp" +#line 3162 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Follows;} +#line 5684 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 251: - -/* Line 1806 of yacc.c */ -#line 3181 "querytransformparser.ypp" +#line 3165 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Validation Feature is not supported. " @@ -6186,40 +5738,36 @@ yyreduce: $$ = Validate::create($2, $1, parseInfo->staticContext); */ } +#line 5699 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 252: - -/* Line 1806 of yacc.c */ -#line 3194 "querytransformparser.ypp" +#line 3178 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.validationMode) = Validate::Strict;} +#line 5705 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 253: - -/* Line 1806 of yacc.c */ -#line 3195 "querytransformparser.ypp" +#line 3179 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.validationMode) = Validate::Strict;} +#line 5711 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 254: - -/* Line 1806 of yacc.c */ -#line 3196 "querytransformparser.ypp" +#line 3180 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.validationMode) = Validate::Lax;} +#line 5717 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 255: - -/* Line 1806 of yacc.c */ -#line 3199 "querytransformparser.ypp" +#line 3183 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); /* We don't support any pragmas, so we only do the * necessary validation and use the fallback expression. */ - if((yyvsp[(2) - (2)].expr)) - (yyval.expr) = (yyvsp[(2) - (2)].expr); + if((yyvsp[0].expr)) + (yyval.expr) = (yyvsp[0].expr); else { parseInfo->staticContext->error(QtXmlPatterns::tr("None of the pragma expressions are supported. " @@ -6228,248 +5776,223 @@ yyreduce: ReportContext::XQST0079, fromYYLTYPE((yyloc), parseInfo)); } } +#line 5737 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 256: - -/* Line 1806 of yacc.c */ -#line 3216 "querytransformparser.ypp" +#line 3200 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expr).reset(); } +#line 5745 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 257: - -/* Line 1806 of yacc.c */ -#line 3220 "querytransformparser.ypp" +#line 3204 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = (yyvsp[(2) - (3)].expr); + (yyval.expr) = (yyvsp[-1].expr); } +#line 5753 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 260: - -/* Line 1806 of yacc.c */ -#line 3228 "querytransformparser.ypp" +#line 3212 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } +#line 5761 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 263: - -/* Line 1806 of yacc.c */ -#line 3236 "querytransformparser.ypp" +#line 3220 "querytransformparser.ypp" /* yacc.c:1646 */ { /* This is "/step". That is, fn:root(self::node()) treat as document-node()/RelativePathExpr. */ - (yyval.expr) = create(new Path(createRootExpression(parseInfo, (yyloc)), (yyvsp[(2) - (2)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new Path(createRootExpression(parseInfo, (yyloc)), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5770 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 264: - -/* Line 1806 of yacc.c */ -#line 3242 "querytransformparser.ypp" +#line 3226 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = createSlashSlashPath(createRootExpression(parseInfo, (yyloc)), (yyvsp[(2) - (2)].expr), (yyloc), parseInfo); + (yyval.expr) = createSlashSlashPath(createRootExpression(parseInfo, (yyloc)), (yyvsp[0].expr), (yyloc), parseInfo); } +#line 5778 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 265: - -/* Line 1806 of yacc.c */ -#line 3246 "querytransformparser.ypp" +#line 3230 "querytransformparser.ypp" /* yacc.c:1646 */ { /* This is "/". That is, fn:root(self::node()) treat as document-node(). */ (yyval.expr) = createRootExpression(parseInfo, (yyloc)); } +#line 5787 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 268: - -/* Line 1806 of yacc.c */ -#line 3256 "querytransformparser.ypp" +#line 3240 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new Path((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), (yyvsp[(2) - (3)].enums.pathKind)), (yyloc), parseInfo); + (yyval.expr) = create(new Path((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].enums.pathKind)), (yyloc), parseInfo); } +#line 5795 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 269: - -/* Line 1806 of yacc.c */ -#line 3260 "querytransformparser.ypp" +#line 3244 "querytransformparser.ypp" /* yacc.c:1646 */ { - const Expression::Ptr orderBy(createReturnOrderBy((yyvsp[(4) - (7)].orderSpecs), (yyvsp[(6) - (7)].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo)); + const Expression::Ptr orderBy(createReturnOrderBy((yyvsp[-3].orderSpecs), (yyvsp[-1].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo)); ReturnOrderBy *const rob = orderBy->as<ReturnOrderBy>(); - const Expression::Ptr path(create(new Path((yyvsp[(1) - (7)].expr), orderBy, (yyvsp[(2) - (7)].enums.pathKind)), (yyloc), parseInfo)); + const Expression::Ptr path(create(new Path((yyvsp[-6].expr), orderBy, (yyvsp[-5].enums.pathKind)), (yyloc), parseInfo)); (yyval.expr) = create(new OrderBy(rob->stability(), rob->orderSpecs(), path, rob), (yyloc), parseInfo); } +#line 5808 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 270: - -/* Line 1806 of yacc.c */ -#line 3269 "querytransformparser.ypp" +#line 3253 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = createSlashSlashPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), (yyloc), parseInfo); + (yyval.expr) = createSlashSlashPath((yyvsp[-2].expr), (yyvsp[0].expr), (yyloc), parseInfo); } +#line 5816 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 271: - -/* Line 1806 of yacc.c */ -#line 3274 "querytransformparser.ypp" +#line 3258 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = NodeSortExpression::wrapAround((yyvsp[(1) - (1)].expr), parseInfo->staticContext); + (yyval.expr) = NodeSortExpression::wrapAround((yyvsp[0].expr), parseInfo->staticContext); } +#line 5824 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 273: - -/* Line 1806 of yacc.c */ -#line 3279 "querytransformparser.ypp" +#line 3263 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new CurrentItemStore((yyvsp[(2) - (2)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new CurrentItemStore((yyvsp[0].expr)), (yyloc), parseInfo); } +#line 5832 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 274: - -/* Line 1806 of yacc.c */ -#line 3283 "querytransformparser.ypp" +#line 3267 "querytransformparser.ypp" /* yacc.c:1646 */ { - const xsDouble version = (yyvsp[(1) - (1)].sval).toDouble(); + const xsDouble version = (yyvsp[0].sval).toDouble(); parseInfo->isBackwardsCompat.push(version != 2); (yyval.enums.Double) = version; } +#line 5844 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 275: - -/* Line 1806 of yacc.c */ -#line 3291 "querytransformparser.ypp" +#line 3275 "querytransformparser.ypp" /* yacc.c:1646 */ { - if((yyvsp[(2) - (3)].enums.Double) < 2) - (yyval.expr) = createCompatStore((yyvsp[(3) - (3)].expr), (yyloc), parseInfo); + if((yyvsp[-1].enums.Double) < 2) + (yyval.expr) = createCompatStore((yyvsp[0].expr), (yyloc), parseInfo); else - (yyval.expr) = (yyvsp[(3) - (3)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 5855 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 276: - -/* Line 1806 of yacc.c */ -#line 3298 "querytransformparser.ypp" +#line 3282 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XSLT20, parseInfo, (yyloc)); - Q_ASSERT(!(yyvsp[(2) - (5)].sval).isEmpty()); - (yyval.expr) = create(new StaticBaseURIStore((yyvsp[(2) - (5)].sval), (yyvsp[(4) - (5)].expr)), (yyloc), parseInfo); + Q_ASSERT(!(yyvsp[-3].sval).isEmpty()); + (yyval.expr) = create(new StaticBaseURIStore((yyvsp[-3].sval), (yyvsp[-1].expr)), (yyloc), parseInfo); } +#line 5865 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 277: - -/* Line 1806 of yacc.c */ -#line 3305 "querytransformparser.ypp" +#line 3289 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc)); parseInfo->resolvers.push(parseInfo->staticContext->namespaceBindings()); const NamespaceResolver::Ptr resolver(new DelegatingNamespaceResolver(parseInfo->staticContext->namespaceBindings())); - resolver->addBinding(QXmlName(parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[(5) - (6)].sval)), + resolver->addBinding(QXmlName(parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[-1].sval)), StandardLocalNames::empty, - parseInfo->staticContext->namePool()->allocatePrefix((yyvsp[(3) - (6)].sval)))); + parseInfo->staticContext->namePool()->allocatePrefix((yyvsp[-3].sval)))); parseInfo->staticContext->setNamespaceBindings(resolver); } +#line 5879 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 278: - -/* Line 1806 of yacc.c */ -#line 3316 "querytransformparser.ypp" +#line 3300 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->staticContext->setNamespaceBindings(parseInfo->resolvers.pop()); - (yyval.expr) = (yyvsp[(8) - (9)].expr); + (yyval.expr) = (yyvsp[-1].expr); } +#line 5888 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 279: - -/* Line 1806 of yacc.c */ -#line 3321 "querytransformparser.ypp" +#line 3305 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new CallTemplate((yyvsp[(2) - (5)].qName), parseInfo->templateWithParams), (yyloc), parseInfo); + (yyval.expr) = create(new CallTemplate((yyvsp[-3].qName), parseInfo->templateWithParams), (yyloc), parseInfo); parseInfo->templateWithParametersHandled(); parseInfo->templateCalls.append((yyval.expr)); } +#line 5898 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 280: - -/* Line 1806 of yacc.c */ -#line 3328 "querytransformparser.ypp" +#line 3312 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->startParsingWithParam(); } +#line 5906 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 281: - -/* Line 1806 of yacc.c */ -#line 3332 "querytransformparser.ypp" +#line 3316 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->endParsingWithParam(); } +#line 5914 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 282: - -/* Line 1806 of yacc.c */ -#line 3337 "querytransformparser.ypp" +#line 3321 "querytransformparser.ypp" /* yacc.c:1646 */ { } +#line 5921 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 283: - -/* Line 1806 of yacc.c */ -#line 3340 "querytransformparser.ypp" +#line 3324 "querytransformparser.ypp" /* yacc.c:1646 */ { } +#line 5928 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 284: - -/* Line 1806 of yacc.c */ -#line 3343 "querytransformparser.ypp" +#line 3327 "querytransformparser.ypp" /* yacc.c:1646 */ { } +#line 5935 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 285: - -/* Line 1806 of yacc.c */ -#line 3347 "querytransformparser.ypp" +#line 3331 "querytransformparser.ypp" /* yacc.c:1646 */ { } +#line 5942 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 286: - -/* Line 1806 of yacc.c */ -#line 3350 "querytransformparser.ypp" +#line 3334 "querytransformparser.ypp" /* yacc.c:1646 */ { } +#line 5949 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 287: - -/* Line 1806 of yacc.c */ -#line 3354 "querytransformparser.ypp" +#line 3338 "querytransformparser.ypp" /* yacc.c:1646 */ { /* Note, this grammar rule is invoked for @c xsl:param @em and @c * xsl:with-param. */ @@ -6492,140 +6015,130 @@ yyreduce: */ SequenceType::Ptr type; - if(!(yyvsp[(4) - (5)].sequenceType)->is(CommonSequenceTypes::ZeroOrMoreItems)) - type = (yyvsp[(4) - (5)].sequenceType); + if(!(yyvsp[-1].sequenceType)->is(CommonSequenceTypes::ZeroOrMoreItems)) + type = (yyvsp[-1].sequenceType); Expression::Ptr expr; /* The default value is an empty sequence. */ - if(!(yyvsp[(5) - (5)].expr) && ((type && (yyvsp[(4) - (5)].sequenceType)->cardinality().allowsEmpty()) + if(!(yyvsp[0].expr) && ((type && (yyvsp[-1].sequenceType)->cardinality().allowsEmpty()) || isParsingWithParam)) expr = create(new EmptySequence, (yyloc), parseInfo); else - expr = (yyvsp[(5) - (5)].expr); + expr = (yyvsp[0].expr); /* We ensure we have some type, so CallTemplate, Template and friends * are happy. */ if(!isParsingWithParam && !type) type = CommonSequenceTypes::ZeroOrMoreItems; - if((yyvsp[(1) - (5)].enums.Bool)) + if((yyvsp[-4].enums.Bool)) /* TODO, handle tunnel parameters. */; else { - if((!isParsingWithParam && VariableDeclaration::contains(parseInfo->templateParameters, (yyvsp[(3) - (5)].qName))) || - (isParsingWithParam && parseInfo->templateWithParams.contains((yyvsp[(3) - (5)].qName)))) + if((!isParsingWithParam && VariableDeclaration::contains(parseInfo->templateParameters, (yyvsp[-2].qName))) || + (isParsingWithParam && parseInfo->templateWithParams.contains((yyvsp[-2].qName)))) { parseInfo->staticContext->error(QtXmlPatterns::tr("Each name of a template parameter must be unique; %1 is duplicated.") - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(3) - (5)].qName))), + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-2].qName))), isParsingWithParam ? ReportContext::XTSE0670 : ReportContext::XTSE0580, fromYYLTYPE((yyloc), parseInfo)); } else { if(isParsingWithParam) - parseInfo->templateWithParams[(yyvsp[(3) - (5)].qName)] = WithParam::Ptr(new WithParam((yyvsp[(3) - (5)].qName), (yyvsp[(4) - (5)].sequenceType), expr)); + parseInfo->templateWithParams[(yyvsp[-2].qName)] = WithParam::Ptr(new WithParam((yyvsp[-2].qName), (yyvsp[-1].sequenceType), expr)); else { Q_ASSERT(type); - pushVariable((yyvsp[(3) - (5)].qName), type, expr, VariableDeclaration::TemplateParameter, (yyloc), parseInfo); + pushVariable((yyvsp[-2].qName), type, expr, VariableDeclaration::TemplateParameter, (yyloc), parseInfo); parseInfo->templateParameters.append(parseInfo->variables.top()); } } } } +#line 6017 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 288: - -/* Line 1806 of yacc.c */ -#line 3419 "querytransformparser.ypp" +#line 3403 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.Bool) = false; } +#line 6025 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 289: - -/* Line 1806 of yacc.c */ -#line 3423 "querytransformparser.ypp" +#line 3407 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.Bool) = true; } +#line 6033 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 290: - -/* Line 1806 of yacc.c */ -#line 3428 "querytransformparser.ypp" +#line 3412 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expr) = Expression::Ptr(); } +#line 6041 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 291: - -/* Line 1806 of yacc.c */ -#line 3432 "querytransformparser.ypp" +#line 3416 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = (yyvsp[(2) - (2)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 6049 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 292: - -/* Line 1806 of yacc.c */ -#line 3441 "querytransformparser.ypp" +#line 3425 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.pathKind) = Path::RegularPath; } +#line 6057 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 293: - -/* Line 1806 of yacc.c */ -#line 3445 "querytransformparser.ypp" +#line 3429 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.pathKind) = Path::XSLTForEach; } +#line 6065 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 294: - -/* Line 1806 of yacc.c */ -#line 3449 "querytransformparser.ypp" +#line 3433 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.pathKind) = Path::ForApplyTemplate; } +#line 6073 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 296: - -/* Line 1806 of yacc.c */ -#line 3455 "querytransformparser.ypp" +#line 3439 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(GenericPredicate::create((yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr), parseInfo->staticContext, fromYYLTYPE((yyloc), parseInfo)), (yyloc), parseInfo); + (yyval.expr) = create(GenericPredicate::create((yyvsp[-3].expr), (yyvsp[-1].expr), parseInfo->staticContext, fromYYLTYPE((yyloc), parseInfo)), (yyloc), parseInfo); } +#line 6081 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 299: - -/* Line 1806 of yacc.c */ -#line 3463 "querytransformparser.ypp" +#line 3447 "querytransformparser.ypp" /* yacc.c:1646 */ { - if((yyvsp[(1) - (1)].enums.axis) == QXmlNodeModelIndex::AxisAttribute) + if((yyvsp[0].enums.axis) == QXmlNodeModelIndex::AxisAttribute) parseInfo->nodeTestSource = BuiltinTypes::attribute; } +#line 6090 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 300: - -/* Line 1806 of yacc.c */ -#line 3468 "querytransformparser.ypp" +#line 3452 "querytransformparser.ypp" /* yacc.c:1646 */ { - if((yyvsp[(3) - (3)].itemType)) + if((yyvsp[0].itemType)) { /* A node test was explicitly specified. The un-abbreviated syntax was used. */ - (yyval.expr) = create(new AxisStep((yyvsp[(1) - (3)].enums.axis), (yyvsp[(3) - (3)].itemType)), (yyloc), parseInfo); + (yyval.expr) = create(new AxisStep((yyvsp[-2].enums.axis), (yyvsp[0].itemType)), (yyloc), parseInfo); } else { @@ -6637,22 +6150,21 @@ yyreduce: * - For the attribute axis, the principal node kind is attribute. * - For all other axes, the principal node kind is element. */ - if((yyvsp[(1) - (3)].enums.axis) == QXmlNodeModelIndex::AxisAttribute) + if((yyvsp[-2].enums.axis) == QXmlNodeModelIndex::AxisAttribute) (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, BuiltinTypes::attribute), (yyloc), parseInfo); else - (yyval.expr) = create(new AxisStep((yyvsp[(1) - (3)].enums.axis), BuiltinTypes::element), (yyloc), parseInfo); + (yyval.expr) = create(new AxisStep((yyvsp[-2].enums.axis), BuiltinTypes::element), (yyloc), parseInfo); } parseInfo->restoreNodeTestSource(); } +#line 6119 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 304: - -/* Line 1806 of yacc.c */ -#line 3498 "querytransformparser.ypp" +#line 3482 "querytransformparser.ypp" /* yacc.c:1646 */ { - if((yyvsp[(1) - (2)].enums.axis) == QXmlNodeModelIndex::AxisNamespace) + if((yyvsp[-1].enums.axis) == QXmlNodeModelIndex::AxisNamespace) { /* We don't raise XPST0010 here because the namespace axis isn't an optional * axis. It simply is not part of the XQuery grammar. */ @@ -6661,9 +6173,9 @@ yyreduce: ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } else - (yyval.enums.axis) = (yyvsp[(1) - (2)].enums.axis); + (yyval.enums.axis) = (yyvsp[-1].enums.axis); - switch((yyvsp[(1) - (2)].enums.axis)) + switch((yyvsp[-1].enums.axis)) { case QXmlNodeModelIndex::AxisAttribute: { @@ -6693,395 +6205,355 @@ yyreduce: } } } +#line 6166 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 305: - -/* Line 1806 of yacc.c */ -#line 3541 "querytransformparser.ypp" +#line 3525 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestorOrSelf ;} +#line 6172 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 306: - -/* Line 1806 of yacc.c */ -#line 3542 "querytransformparser.ypp" +#line 3526 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestor ;} +#line 6178 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 307: - -/* Line 1806 of yacc.c */ -#line 3543 "querytransformparser.ypp" +#line 3527 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisAttribute ;} +#line 6184 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 308: - -/* Line 1806 of yacc.c */ -#line 3544 "querytransformparser.ypp" +#line 3528 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisChild ;} +#line 6190 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 309: - -/* Line 1806 of yacc.c */ -#line 3545 "querytransformparser.ypp" +#line 3529 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendantOrSelf;} +#line 6196 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 310: - -/* Line 1806 of yacc.c */ -#line 3546 "querytransformparser.ypp" +#line 3530 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendant ;} +#line 6202 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 311: - -/* Line 1806 of yacc.c */ -#line 3547 "querytransformparser.ypp" +#line 3531 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowing ;} +#line 6208 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 312: - -/* Line 1806 of yacc.c */ -#line 3548 "querytransformparser.ypp" +#line 3532 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisPreceding ;} +#line 6214 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 313: - -/* Line 1806 of yacc.c */ -#line 3549 "querytransformparser.ypp" +#line 3533 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowingSibling;} +#line 6220 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 314: - -/* Line 1806 of yacc.c */ -#line 3550 "querytransformparser.ypp" +#line 3534 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisPrecedingSibling;} +#line 6226 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 315: - -/* Line 1806 of yacc.c */ -#line 3551 "querytransformparser.ypp" +#line 3535 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisParent ;} +#line 6232 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 316: - -/* Line 1806 of yacc.c */ -#line 3552 "querytransformparser.ypp" +#line 3536 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisSelf ;} +#line 6238 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 317: - -/* Line 1806 of yacc.c */ -#line 3555 "querytransformparser.ypp" +#line 3539 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->nodeTestSource = BuiltinTypes::attribute; } +#line 6246 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 318: - -/* Line 1806 of yacc.c */ -#line 3559 "querytransformparser.ypp" +#line 3543 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20 | QXmlQuery::XmlSchema11IdentityConstraintField), parseInfo, (yyloc)); - (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[(3) - (3)].itemType)), (yyloc), parseInfo); + (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[0].itemType)), (yyloc), parseInfo); parseInfo->restoreNodeTestSource(); } +#line 6257 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 319: - -/* Line 1806 of yacc.c */ -#line 3566 "querytransformparser.ypp" +#line 3550 "querytransformparser.ypp" /* yacc.c:1646 */ { ItemType::Ptr nodeTest; - if(parseInfo->isParsingPattern && *(yyvsp[(1) - (1)].itemType) == *BuiltinTypes::node) + if(parseInfo->isParsingPattern && *(yyvsp[0].itemType) == *BuiltinTypes::node) nodeTest = BuiltinTypes::xsltNodeTest; else - nodeTest = (yyvsp[(1) - (1)].itemType); + nodeTest = (yyvsp[0].itemType); (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisChild, nodeTest), (yyloc), parseInfo); } +#line 6272 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 320: - -/* Line 1806 of yacc.c */ -#line 3577 "querytransformparser.ypp" +#line 3561 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[(1) - (1)].itemType)), (yyloc), parseInfo); + (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[0].itemType)), (yyloc), parseInfo); } +#line 6280 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 322: - -/* Line 1806 of yacc.c */ -#line 3584 "querytransformparser.ypp" +#line 3568 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::node), (yyloc), parseInfo); } +#line 6288 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 324: - -/* Line 1806 of yacc.c */ -#line 3590 "querytransformparser.ypp" +#line 3574 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); } +#line 6296 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 325: - -/* Line 1806 of yacc.c */ -#line 3595 "querytransformparser.ypp" +#line 3579 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.itemType) = QNameTest::create(parseInfo->nodeTestSource, (yyvsp[(1) - (1)].qName)); + (yyval.itemType) = QNameTest::create(parseInfo->nodeTestSource, (yyvsp[0].qName)); } +#line 6304 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 327: - -/* Line 1806 of yacc.c */ -#line 3601 "querytransformparser.ypp" +#line 3585 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = parseInfo->nodeTestSource; } +#line 6312 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 328: - -/* Line 1806 of yacc.c */ -#line 3605 "querytransformparser.ypp" +#line 3589 "querytransformparser.ypp" /* yacc.c:1646 */ { const NamePool::Ptr np(parseInfo->staticContext->namePool()); const ReflectYYLTYPE ryy((yyloc), parseInfo); - const QXmlName::NamespaceCode ns(QNameConstructor::namespaceForPrefix(np->allocatePrefix((yyvsp[(1) - (1)].sval)), parseInfo->staticContext, &ryy)); + const QXmlName::NamespaceCode ns(QNameConstructor::namespaceForPrefix(np->allocatePrefix((yyvsp[0].sval)), parseInfo->staticContext, &ryy)); (yyval.itemType) = NamespaceNameTest::create(parseInfo->nodeTestSource, ns); } +#line 6325 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 329: - -/* Line 1806 of yacc.c */ -#line 3614 "querytransformparser.ypp" +#line 3598 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - const QXmlName::LocalNameCode c = parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[(1) - (1)].sval)); + const QXmlName::LocalNameCode c = parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[0].sval)); (yyval.itemType) = LocalNameTest::create(parseInfo->nodeTestSource, c); } +#line 6335 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 331: - -/* Line 1806 of yacc.c */ -#line 3622 "querytransformparser.ypp" +#line 3606 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = create(GenericPredicate::create((yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr), parseInfo->staticContext, fromYYLTYPE((yylsp[(4) - (4)]), parseInfo)), (yyloc), parseInfo); + (yyval.expr) = create(GenericPredicate::create((yyvsp[-3].expr), (yyvsp[-1].expr), parseInfo->staticContext, fromYYLTYPE((yylsp[0]), parseInfo)), (yyloc), parseInfo); } +#line 6344 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 339: - -/* Line 1806 of yacc.c */ -#line 3635 "querytransformparser.ypp" +#line 3619 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new ApplyTemplate(parseInfo->modeFor((yyvsp[(2) - (5)].qName)), + (yyval.expr) = create(new ApplyTemplate(parseInfo->modeFor((yyvsp[-3].qName)), parseInfo->templateWithParams, parseInfo->modeFor(QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default))), - (yylsp[(1) - (5)]), parseInfo); + (yylsp[-4]), parseInfo); parseInfo->templateWithParametersHandled(); } +#line 6357 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 341: - -/* Line 1806 of yacc.c */ -#line 3646 "querytransformparser.ypp" +#line 3630 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new Literal(AtomicString::fromValue((yyvsp[(1) - (1)].sval))), (yyloc), parseInfo); + (yyval.expr) = create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo); } +#line 6365 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 342: - -/* Line 1806 of yacc.c */ -#line 3651 "querytransformparser.ypp" +#line 3635 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = createNumericLiteral<Double>((yyvsp[(1) - (1)].sval), (yyloc), parseInfo); + (yyval.expr) = createNumericLiteral<Double>((yyvsp[0].sval), (yyloc), parseInfo); } +#line 6374 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 343: - -/* Line 1806 of yacc.c */ -#line 3656 "querytransformparser.ypp" +#line 3640 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = createNumericLiteral<Numeric>((yyvsp[(1) - (1)].sval), (yyloc), parseInfo); + (yyval.expr) = createNumericLiteral<Numeric>((yyvsp[0].sval), (yyloc), parseInfo); } +#line 6383 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 344: - -/* Line 1806 of yacc.c */ -#line 3662 "querytransformparser.ypp" +#line 3646 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = resolveVariable((yyvsp[(2) - (2)].qName), (yyloc), parseInfo, false); + (yyval.expr) = resolveVariable((yyvsp[0].qName), (yyloc), parseInfo, false); } +#line 6392 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 345: - -/* Line 1806 of yacc.c */ -#line 3668 "querytransformparser.ypp" +#line 3652 "querytransformparser.ypp" /* yacc.c:1646 */ { /* See: http://www.w3.org/TR/xpath20/#id-variables */ - (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(QString(), (yyvsp[(1) - (1)].sval)); + (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(QString(), (yyvsp[0].sval)); } +#line 6401 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 346: - -/* Line 1806 of yacc.c */ -#line 3673 "querytransformparser.ypp" +#line 3657 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qName) = (yyvsp[(1) - (1)].qName); + (yyval.qName) = (yyvsp[0].qName); } +#line 6409 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 347: - -/* Line 1806 of yacc.c */ -#line 3678 "querytransformparser.ypp" +#line 3662 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - (yyval.expr) = (yyvsp[(2) - (3)].expr); + (yyval.expr) = (yyvsp[-1].expr); } +#line 6418 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 348: - -/* Line 1806 of yacc.c */ -#line 3683 "querytransformparser.ypp" +#line 3667 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new EmptySequence, (yyloc), parseInfo); } +#line 6427 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 349: - -/* Line 1806 of yacc.c */ -#line 3689 "querytransformparser.ypp" +#line 3673 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expr) = create(new ContextItem(), (yyloc), parseInfo); } +#line 6435 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 350: - -/* Line 1806 of yacc.c */ -#line 3694 "querytransformparser.ypp" +#line 3678 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = (yyvsp[(2) - (2)].expr); + (yyval.expr) = (yyvsp[0].expr); } +#line 6443 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 351: - -/* Line 1806 of yacc.c */ -#line 3699 "querytransformparser.ypp" +#line 3683 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); - if(XPathHelper::isReservedNamespace((yyvsp[(1) - (4)].qName).namespaceURI()) || (yyvsp[(1) - (4)].qName).namespaceURI() == StandardNamespaces::InternalXSLT) + if(XPathHelper::isReservedNamespace((yyvsp[-3].qName).namespaceURI()) || (yyvsp[-3].qName).namespaceURI() == StandardNamespaces::InternalXSLT) { /* We got a call to a builtin function. */ const ReflectYYLTYPE ryy((yyloc), parseInfo); const Expression::Ptr func(parseInfo->staticContext-> - functionSignatures()->createFunctionCall((yyvsp[(1) - (4)].qName), (yyvsp[(3) - (4)].expressionList), parseInfo->staticContext, &ryy)); + functionSignatures()->createFunctionCall((yyvsp[-3].qName), (yyvsp[-1].expressionList), parseInfo->staticContext, &ryy)); if(func) (yyval.expr) = create(func, (yyloc), parseInfo); else { parseInfo->staticContext->error(QtXmlPatterns::tr("No function with name %1 is available.") - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(1) - (4)].qName))), + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-3].qName))), ReportContext::XPST0017, fromYYLTYPE((yyloc), parseInfo)); } } else /* It's a call to a function created with 'declare function'.*/ { - (yyval.expr) = create(new UserFunctionCallsite((yyvsp[(1) - (4)].qName), (yyvsp[(3) - (4)].expressionList).count()), (yyloc), parseInfo); + (yyval.expr) = create(new UserFunctionCallsite((yyvsp[-3].qName), (yyvsp[-1].expressionList).count()), (yyloc), parseInfo); - (yyval.expr)->setOperands((yyvsp[(3) - (4)].expressionList)); + (yyval.expr)->setOperands((yyvsp[-1].expressionList)); parseInfo->userFunctionCallsites.append((yyval.expr)); } } +#line 6475 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 352: - -/* Line 1806 of yacc.c */ -#line 3728 "querytransformparser.ypp" +#line 3712 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expressionList) = Expression::List(); } +#line 6483 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 353: - -/* Line 1806 of yacc.c */ -#line 3733 "querytransformparser.ypp" +#line 3717 "querytransformparser.ypp" /* yacc.c:1646 */ { Expression::List list; - list.append((yyvsp[(1) - (1)].expr)); + list.append((yyvsp[0].expr)); (yyval.expressionList) = list; } +#line 6493 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 355: - -/* Line 1806 of yacc.c */ -#line 3742 "querytransformparser.ypp" +#line 3726 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } +#line 6501 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 360: - -/* Line 1806 of yacc.c */ -#line 3786 "querytransformparser.ypp" +#line 3770 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.tokenizerPosition) = parseInfo->tokenizer->commenceScanOnly(); parseInfo->scanOnlyStack.push(true); } +#line 6510 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 361: - -/* Line 1806 of yacc.c */ -#line 3795 "querytransformparser.ypp" +#line 3779 "querytransformparser.ypp" /* yacc.c:1646 */ { ++parseInfo->elementConstructorDepth; Expression::List constructors; @@ -7091,7 +6563,7 @@ yyreduce: /* Fix up attributes and namespace declarations. */ const NamespaceResolver::Ptr resolver(new DelegatingNamespaceResolver(parseInfo->staticContext->namespaceBindings())); const NamePool::Ptr namePool(parseInfo->staticContext->namePool()); - const int len = (yyvsp[(4) - (4)].attributeHolders).size(); + const int len = (yyvsp[0].attributeHolders).size(); QSet<QXmlName::PrefixCode> usedDeclarations; /* Whether xmlns="" has been encountered. */ @@ -7103,7 +6575,7 @@ yyreduce: QString strLocalName; QString strPrefix; - XPathHelper::splitQName((yyvsp[(4) - (4)].attributeHolders).at(i).first, strPrefix, strLocalName); + XPathHelper::splitQName((yyvsp[0].attributeHolders).at(i).first, strPrefix, strLocalName); const QXmlName::PrefixCode prefix = namePool->allocatePrefix(strPrefix); /* This can seem a bit weird. However, this name is ending up in a QXmlName @@ -7121,7 +6593,7 @@ yyreduce: /* We have a namespace declaration. */ - const Expression::Ptr nsExpr((yyvsp[(4) - (4)].attributeHolders).at(i).second); + const Expression::Ptr nsExpr((yyvsp[0].attributeHolders).at(i).second); const QString strNamespace(nsExpr->is(Expression::IDEmptySequence) ? QString() : nsExpr->as<Literal>()->item().stringValue()); @@ -7219,25 +6691,24 @@ yyreduce: const QXmlName ele = QNameConstructor::expandQName<StaticContext::Ptr, ReportContext::XPST0081, - ReportContext::XPST0081>((yyvsp[(2) - (4)].sval), parseInfo->staticContext, resolver, &ryy); + ReportContext::XPST0081>((yyvsp[-2].sval), parseInfo->staticContext, resolver, &ryy); parseInfo->tagStack.push(ele); } - parseInfo->tokenizer->resumeTokenizationFrom((yyvsp[(3) - (4)].enums.tokenizerPosition)); + parseInfo->tokenizer->resumeTokenizationFrom((yyvsp[-1].enums.tokenizerPosition)); } +#line 6658 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 362: - -/* Line 1806 of yacc.c */ -#line 3941 "querytransformparser.ypp" +#line 3925 "querytransformparser.ypp" /* yacc.c:1646 */ { /* We add the content constructor after the attribute constructors. This might result * in nested ExpressionSequences, but it will be optimized away later on. */ - Expression::List attributes((yyvsp[(5) - (8)].expressionList)); + Expression::List attributes((yyvsp[-3].expressionList)); const NamePool::Ptr namePool(parseInfo->staticContext->namePool()); - const int len = (yyvsp[(7) - (8)].attributeHolders).size(); + const int len = (yyvsp[-1].attributeHolders).size(); QSet<QXmlName> declaredAttributes; declaredAttributes.reserve(len); @@ -7248,14 +6719,14 @@ yyreduce: QString strLocalName; QString strPrefix; - XPathHelper::splitQName((yyvsp[(7) - (8)].attributeHolders).at(i).first, strPrefix, strLocalName); + XPathHelper::splitQName((yyvsp[-1].attributeHolders).at(i).first, strPrefix, strLocalName); const QXmlName::PrefixCode prefix = namePool->allocatePrefix(strPrefix); const QXmlName::LocalNameCode localName = namePool->allocateLocalName(strLocalName); if(prefix == StandardPrefixes::xmlns || (prefix == StandardPrefixes::empty && localName == StandardLocalNames::xmlns)) { - const Expression::ID id = (yyvsp[(7) - (8)].attributeHolders).at(i).second->id(); + const Expression::ID id = (yyvsp[-1].attributeHolders).at(i).second->id(); if(id == Expression::IDStringValue || id == Expression::IDEmptySequence) { @@ -7275,7 +6746,7 @@ yyreduce: const ReflectYYLTYPE ryy((yyloc), parseInfo); const QXmlName att = QNameConstructor::expandQName<StaticContext::Ptr, ReportContext::XPST0081, - ReportContext::XPST0081>((yyvsp[(7) - (8)].attributeHolders).at(i).first, parseInfo->staticContext, + ReportContext::XPST0081>((yyvsp[-1].attributeHolders).at(i).first, parseInfo->staticContext, parseInfo->staticContext->namespaceBindings(), &ryy, true); if(declaredAttributes.contains(att)) @@ -7293,11 +6764,11 @@ yyreduce: * it twice. * * The AttributeConstructor's arguments are just dummies. */ - const Expression::Ptr ctor(create(new AttributeConstructor((yyvsp[(7) - (8)].attributeHolders).at(i).second, (yyvsp[(7) - (8)].attributeHolders).at(i).second), (yyloc), parseInfo)); + const Expression::Ptr ctor(create(new AttributeConstructor((yyvsp[-1].attributeHolders).at(i).second, (yyvsp[-1].attributeHolders).at(i).second), (yyloc), parseInfo)); Expression::List ops; ops.append(wrapLiteral(toItem(QNameValue::fromValue(namePool, att)), parseInfo->staticContext, ctor.data())); - ops.append((yyvsp[(7) - (8)].attributeHolders).at(i).second); + ops.append((yyvsp[-1].attributeHolders).at(i).second); ctor->setOperands(ops); attributes.append(ctor); @@ -7307,10 +6778,10 @@ yyreduce: Expression::Ptr contentOp; if(attributes.isEmpty()) - contentOp = (yyvsp[(8) - (8)].expr); + contentOp = (yyvsp[0].expr); else { - attributes.append((yyvsp[(8) - (8)].expr)); + attributes.append((yyvsp[0].expr)); contentOp = create(new ExpressionSequence(attributes), (yyloc), parseInfo); } @@ -7325,251 +6796,231 @@ yyreduce: --parseInfo->elementConstructorDepth; } +#line 6757 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 363: - -/* Line 1806 of yacc.c */ -#line 4037 "querytransformparser.ypp" +#line 4021 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expr) = create(new EmptySequence(), (yyloc), parseInfo); } +#line 6765 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 364: - -/* Line 1806 of yacc.c */ -#line 4041 "querytransformparser.ypp" +#line 4025 "querytransformparser.ypp" /* yacc.c:1646 */ { - if(!(yyvsp[(4) - (5)].qName).isLexicallyEqual(parseInfo->tagStack.top())) + if(!(yyvsp[-1].qName).isLexicallyEqual(parseInfo->tagStack.top())) { parseInfo->staticContext->error(QtXmlPatterns::tr("A direct element constructor is not " "well-formed. %1 is ended with %2.") .arg(formatKeyword(parseInfo->staticContext->namePool()->toLexical(parseInfo->tagStack.top())), - formatKeyword(parseInfo->staticContext->namePool()->toLexical((yyvsp[(4) - (5)].qName)))), + formatKeyword(parseInfo->staticContext->namePool()->toLexical((yyvsp[-1].qName)))), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } - if((yyvsp[(2) - (5)].expressionList).isEmpty()) + if((yyvsp[-3].expressionList).isEmpty()) (yyval.expr) = create(new EmptySequence(), (yyloc), parseInfo); - else if((yyvsp[(2) - (5)].expressionList).size() == 1) - (yyval.expr) = (yyvsp[(2) - (5)].expressionList).first(); + else if((yyvsp[-3].expressionList).size() == 1) + (yyval.expr) = (yyvsp[-3].expressionList).first(); else - (yyval.expr) = create(new ExpressionSequence((yyvsp[(2) - (5)].expressionList)), (yyloc), parseInfo); + (yyval.expr) = create(new ExpressionSequence((yyvsp[-3].expressionList)), (yyloc), parseInfo); } +#line 6787 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 365: - -/* Line 1806 of yacc.c */ -#line 4060 "querytransformparser.ypp" +#line 4044 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.attributeHolders) = AttributeHolderVector(); } +#line 6795 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 366: - -/* Line 1806 of yacc.c */ -#line 4064 "querytransformparser.ypp" +#line 4048 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyvsp[(1) - (2)].attributeHolders).append((yyvsp[(2) - (2)].attributeHolder)); - (yyval.attributeHolders) = (yyvsp[(1) - (2)].attributeHolders); + (yyvsp[-1].attributeHolders).append((yyvsp[0].attributeHolder)); + (yyval.attributeHolders) = (yyvsp[-1].attributeHolders); } +#line 6804 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 367: - -/* Line 1806 of yacc.c */ -#line 4070 "querytransformparser.ypp" +#line 4054 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.attributeHolder) = qMakePair((yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].expr)); + (yyval.attributeHolder) = qMakePair((yyvsp[-2].sval), (yyvsp[0].expr)); } +#line 6812 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 368: - -/* Line 1806 of yacc.c */ -#line 4075 "querytransformparser.ypp" +#line 4059 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = createDirAttributeValue((yyvsp[(2) - (3)].expressionList), parseInfo, (yyloc)); + (yyval.expr) = createDirAttributeValue((yyvsp[-1].expressionList), parseInfo, (yyloc)); } +#line 6820 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 369: - -/* Line 1806 of yacc.c */ -#line 4080 "querytransformparser.ypp" +#line 4064 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = createDirAttributeValue((yyvsp[(2) - (3)].expressionList), parseInfo, (yyloc)); + (yyval.expr) = createDirAttributeValue((yyvsp[-1].expressionList), parseInfo, (yyloc)); } +#line 6828 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 370: - -/* Line 1806 of yacc.c */ -#line 4085 "querytransformparser.ypp" +#line 4069 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expressionList) = Expression::List(); } +#line 6836 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 371: - -/* Line 1806 of yacc.c */ -#line 4089 "querytransformparser.ypp" +#line 4073 "querytransformparser.ypp" /* yacc.c:1646 */ { - Expression::Ptr content((yyvsp[(1) - (2)].expr)); + Expression::Ptr content((yyvsp[-1].expr)); if(parseInfo->isBackwardsCompat.top()) content = create(GenericPredicate::createFirstItem(content), (yyloc), parseInfo); - (yyvsp[(2) - (2)].expressionList).prepend(createSimpleContent(content, (yyloc), parseInfo)); - (yyval.expressionList) = (yyvsp[(2) - (2)].expressionList); + (yyvsp[0].expressionList).prepend(createSimpleContent(content, (yyloc), parseInfo)); + (yyval.expressionList) = (yyvsp[0].expressionList); } +#line 6850 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 372: - -/* Line 1806 of yacc.c */ -#line 4099 "querytransformparser.ypp" +#line 4083 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyvsp[(2) - (2)].expressionList).prepend(create(new Literal(AtomicString::fromValue((yyvsp[(1) - (2)].sval))), (yyloc), parseInfo)); - (yyval.expressionList) = (yyvsp[(2) - (2)].expressionList); + (yyvsp[0].expressionList).prepend(create(new Literal(AtomicString::fromValue((yyvsp[-1].sval))), (yyloc), parseInfo)); + (yyval.expressionList) = (yyvsp[0].expressionList); } +#line 6859 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 373: - -/* Line 1806 of yacc.c */ -#line 4105 "querytransformparser.ypp" +#line 4089 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.expressionList) = Expression::List(); parseInfo->isPreviousEnclosedExpr = false; } +#line 6868 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 374: - -/* Line 1806 of yacc.c */ -#line 4110 "querytransformparser.ypp" +#line 4094 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyvsp[(1) - (2)].expressionList).append((yyvsp[(2) - (2)].expr)); - (yyval.expressionList) = (yyvsp[(1) - (2)].expressionList); + (yyvsp[-1].expressionList).append((yyvsp[0].expr)); + (yyval.expressionList) = (yyvsp[-1].expressionList); parseInfo->isPreviousEnclosedExpr = false; } +#line 6878 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 375: - -/* Line 1806 of yacc.c */ -#line 4116 "querytransformparser.ypp" +#line 4100 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->staticContext->boundarySpacePolicy() == StaticContext::BSPStrip && - XPathHelper::isWhitespaceOnly((yyvsp[(2) - (2)].sval))) + XPathHelper::isWhitespaceOnly((yyvsp[0].sval))) { - (yyval.expressionList) = (yyvsp[(1) - (2)].expressionList); + (yyval.expressionList) = (yyvsp[-1].expressionList); } else { - (yyvsp[(1) - (2)].expressionList).append(create(new TextNodeConstructor(create(new Literal(AtomicString::fromValue((yyvsp[(2) - (2)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo)); - (yyval.expressionList) = (yyvsp[(1) - (2)].expressionList); + (yyvsp[-1].expressionList).append(create(new TextNodeConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo)); + (yyval.expressionList) = (yyvsp[-1].expressionList); parseInfo->isPreviousEnclosedExpr = false; } } +#line 6896 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 376: - -/* Line 1806 of yacc.c */ -#line 4130 "querytransformparser.ypp" +#line 4114 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyvsp[(1) - (2)].expressionList).append(create(new TextNodeConstructor(create(new Literal(AtomicString::fromValue((yyvsp[(2) - (2)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo)); - (yyval.expressionList) = (yyvsp[(1) - (2)].expressionList); + (yyvsp[-1].expressionList).append(create(new TextNodeConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo)); + (yyval.expressionList) = (yyvsp[-1].expressionList); parseInfo->isPreviousEnclosedExpr = false; } +#line 6906 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 377: - -/* Line 1806 of yacc.c */ -#line 4136 "querytransformparser.ypp" +#line 4120 "querytransformparser.ypp" /* yacc.c:1646 */ { /* We insert a text node constructor that send an empty text node between * the two enclosed expressions, in order to ensure that no space is inserted. * * However, we only do it when we have no node constructors. */ if(parseInfo->isPreviousEnclosedExpr && - BuiltinTypes::xsAnyAtomicType->xdtTypeMatches((yyvsp[(2) - (2)].expr)->staticType()->itemType()) && - BuiltinTypes::xsAnyAtomicType->xdtTypeMatches((yyvsp[(1) - (2)].expressionList).last()->staticType()->itemType())) - (yyvsp[(1) - (2)].expressionList).append(create(new TextNodeConstructor(create(new Literal(AtomicString::fromValue(QString())), (yyloc), parseInfo)), (yyloc), parseInfo)); + BuiltinTypes::xsAnyAtomicType->xdtTypeMatches((yyvsp[0].expr)->staticType()->itemType()) && + BuiltinTypes::xsAnyAtomicType->xdtTypeMatches((yyvsp[-1].expressionList).last()->staticType()->itemType())) + (yyvsp[-1].expressionList).append(create(new TextNodeConstructor(create(new Literal(AtomicString::fromValue(QString())), (yyloc), parseInfo)), (yyloc), parseInfo)); else parseInfo->isPreviousEnclosedExpr = true; - (yyvsp[(1) - (2)].expressionList).append(createCopyOf((yyvsp[(2) - (2)].expr), parseInfo, (yyloc))); - (yyval.expressionList) = (yyvsp[(1) - (2)].expressionList); + (yyvsp[-1].expressionList).append(createCopyOf((yyvsp[0].expr), parseInfo, (yyloc))); + (yyval.expressionList) = (yyvsp[-1].expressionList); } +#line 6926 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 378: - -/* Line 1806 of yacc.c */ -#line 4153 "querytransformparser.ypp" +#line 4137 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new CommentConstructor(create(new Literal(AtomicString::fromValue((yyvsp[(2) - (2)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo); + (yyval.expr) = create(new CommentConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo); } +#line 6934 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 379: - -/* Line 1806 of yacc.c */ -#line 4158 "querytransformparser.ypp" +#line 4142 "querytransformparser.ypp" /* yacc.c:1646 */ { const ReflectYYLTYPE ryy((yyloc), parseInfo); NCNameConstructor::validateTargetName<StaticContext::Ptr, ReportContext::XPST0003, - ReportContext::XPST0003>((yyvsp[(2) - (3)].sval), + ReportContext::XPST0003>((yyvsp[-1].sval), parseInfo->staticContext, &ryy); (yyval.expr) = create(new ProcessingInstructionConstructor( - create(new Literal(AtomicString::fromValue((yyvsp[(2) - (3)].sval))), (yyloc), parseInfo), - create(new Literal(AtomicString::fromValue((yyvsp[(3) - (3)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo); + create(new Literal(AtomicString::fromValue((yyvsp[-1].sval))), (yyloc), parseInfo), + create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo); } +#line 6950 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 387: - -/* Line 1806 of yacc.c */ -#line 4179 "querytransformparser.ypp" +#line 4163 "querytransformparser.ypp" /* yacc.c:1646 */ { - allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (3)].enums.Bool)); + allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-1].enums.Bool)); - (yyval.expr) = create(new DocumentConstructor((yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new DocumentConstructor((yyvsp[0].expr)), (yyloc), parseInfo); } +#line 6960 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 388: - -/* Line 1806 of yacc.c */ -#line 4186 "querytransformparser.ypp" +#line 4170 "querytransformparser.ypp" /* yacc.c:1646 */ { /* This value is incremented before the action below is executed. */ ++parseInfo->elementConstructorDepth; } +#line 6969 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 389: - -/* Line 1806 of yacc.c */ -#line 4191 "querytransformparser.ypp" +#line 4175 "querytransformparser.ypp" /* yacc.c:1646 */ { Q_ASSERT(5); - allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (5)].enums.Bool)); + allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-3].enums.Bool)); Expression::Ptr effExpr; - if((yyvsp[(5) - (5)].expr)) - effExpr = createCopyOf((yyvsp[(5) - (5)].expr), parseInfo, (yyloc)); + if((yyvsp[0].expr)) + effExpr = createCopyOf((yyvsp[0].expr), parseInfo, (yyloc)); else effExpr = create(new EmptySequence(), (yyloc), parseInfo); @@ -7592,261 +7043,235 @@ yyreduce: } --parseInfo->elementConstructorDepth; - (yyval.expr) = create(new ElementConstructor((yyvsp[(3) - (5)].expr), effExpr, parseInfo->isXSLT()), (yyloc), parseInfo); + (yyval.expr) = create(new ElementConstructor((yyvsp[-2].expr), effExpr, parseInfo->isXSLT()), (yyloc), parseInfo); } +#line 7006 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 390: - -/* Line 1806 of yacc.c */ -#line 4225 "querytransformparser.ypp" +#line 4209 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.Bool) = false; } +#line 7014 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 391: - -/* Line 1806 of yacc.c */ -#line 4229 "querytransformparser.ypp" +#line 4213 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.enums.Bool) = true; } +#line 7022 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 392: - -/* Line 1806 of yacc.c */ -#line 4237 "querytransformparser.ypp" +#line 4221 "querytransformparser.ypp" /* yacc.c:1646 */ { - allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (4)].enums.Bool)); + allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-2].enums.Bool)); - const Expression::Ptr name(create(new AttributeNameValidator((yyvsp[(3) - (4)].expr)), (yyloc), parseInfo)); + const Expression::Ptr name(create(new AttributeNameValidator((yyvsp[-1].expr)), (yyloc), parseInfo)); - if((yyvsp[(4) - (4)].expr)) - (yyval.expr) = create(new AttributeConstructor(name, createSimpleContent((yyvsp[(4) - (4)].expr), (yyloc), parseInfo)), (yyloc), parseInfo); + if((yyvsp[0].expr)) + (yyval.expr) = create(new AttributeConstructor(name, createSimpleContent((yyvsp[0].expr), (yyloc), parseInfo)), (yyloc), parseInfo); else (yyval.expr) = create(new AttributeConstructor(name, create(new EmptySequence(), (yyloc), parseInfo)), (yyloc), parseInfo); } +#line 7037 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 393: - -/* Line 1806 of yacc.c */ -#line 4249 "querytransformparser.ypp" +#line 4233 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new TextNodeConstructor(createSimpleContent((yyvsp[(3) - (3)].expr), (yyloc), parseInfo)), (yyloc), parseInfo); + (yyval.expr) = create(new TextNodeConstructor(createSimpleContent((yyvsp[0].expr), (yyloc), parseInfo)), (yyloc), parseInfo); } +#line 7045 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 394: - -/* Line 1806 of yacc.c */ -#line 4254 "querytransformparser.ypp" +#line 4238 "querytransformparser.ypp" /* yacc.c:1646 */ { - allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (3)].enums.Bool)); + allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-1].enums.Bool)); - (yyval.expr) = create(new CommentConstructor(createSimpleContent((yyvsp[(3) - (3)].expr), (yyloc), parseInfo)), (yyloc), parseInfo); + (yyval.expr) = create(new CommentConstructor(createSimpleContent((yyvsp[0].expr), (yyloc), parseInfo)), (yyloc), parseInfo); } +#line 7055 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 395: - -/* Line 1806 of yacc.c */ -#line 4261 "querytransformparser.ypp" +#line 4245 "querytransformparser.ypp" /* yacc.c:1646 */ { - allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (3)].expr)); + allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-1].expr)); - if((yyvsp[(3) - (3)].expr)) + if((yyvsp[0].expr)) { - (yyval.expr) = create(new ProcessingInstructionConstructor((yyvsp[(2) - (3)].expr), createSimpleContent((yyvsp[(3) - (3)].expr), (yyloc), parseInfo)), (yyloc), parseInfo); + (yyval.expr) = create(new ProcessingInstructionConstructor((yyvsp[-1].expr), createSimpleContent((yyvsp[0].expr), (yyloc), parseInfo)), (yyloc), parseInfo); } else - (yyval.expr) = create(new ProcessingInstructionConstructor((yyvsp[(2) - (3)].expr), create(new EmptySequence(), (yyloc), parseInfo)), (yyloc), parseInfo); + (yyval.expr) = create(new ProcessingInstructionConstructor((yyvsp[-1].expr), create(new EmptySequence(), (yyloc), parseInfo)), (yyloc), parseInfo); } +#line 7070 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 396: - -/* Line 1806 of yacc.c */ -#line 4272 "querytransformparser.ypp" +#line 4256 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->nodeTestSource = BuiltinTypes::attribute; } +#line 7078 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 397: - -/* Line 1806 of yacc.c */ -#line 4276 "querytransformparser.ypp" +#line 4260 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->restoreNodeTestSource(); } +#line 7086 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 398: - -/* Line 1806 of yacc.c */ -#line 4279 "querytransformparser.ypp" +#line 4263 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[(2) - (3)].qName)))), (yyloc), parseInfo); + (yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[-1].qName)))), (yyloc), parseInfo); } +#line 7094 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 400: - -/* Line 1806 of yacc.c */ -#line 4285 "querytransformparser.ypp" +#line 4269 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[(1) - (1)].qName)))), (yyloc), parseInfo); + (yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[0].qName)))), (yyloc), parseInfo); } +#line 7102 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 402: - -/* Line 1806 of yacc.c */ -#line 4291 "querytransformparser.ypp" +#line 4275 "querytransformparser.ypp" /* yacc.c:1646 */ { - if(BuiltinTypes::xsQName->xdtTypeMatches((yyvsp[(1) - (1)].expr)->staticType()->itemType())) - (yyval.expr) = (yyvsp[(1) - (1)].expr); + if(BuiltinTypes::xsQName->xdtTypeMatches((yyvsp[0].expr)->staticType()->itemType())) + (yyval.expr) = (yyvsp[0].expr); else { - (yyval.expr) = create(new QNameConstructor((yyvsp[(1) - (1)].expr), + (yyval.expr) = create(new QNameConstructor((yyvsp[0].expr), parseInfo->staticContext->namespaceBindings()), (yyloc), parseInfo); } } +#line 7117 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 403: - -/* Line 1806 of yacc.c */ -#line 4306 "querytransformparser.ypp" +#line 4290 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new NCNameConstructor(create(new Literal(AtomicString::fromValue((yyvsp[(1) - (1)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo); + (yyval.expr) = create(new NCNameConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo); } +#line 7125 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 404: - -/* Line 1806 of yacc.c */ -#line 4310 "querytransformparser.ypp" +#line 4294 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new NCNameConstructor((yyvsp[(1) - (1)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new NCNameConstructor((yyvsp[0].expr)), (yyloc), parseInfo); } +#line 7133 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 405: - -/* Line 1806 of yacc.c */ -#line 4319 "querytransformparser.ypp" +#line 4303 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.expr) = create(new ComputedNamespaceConstructor((yyvsp[(2) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo); + (yyval.expr) = create(new ComputedNamespaceConstructor((yyvsp[-1].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } +#line 7141 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 406: - -/* Line 1806 of yacc.c */ -#line 4324 "querytransformparser.ypp" +#line 4308 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.sequenceType) = makeGenericSequenceType((yyvsp[(1) - (1)].itemType), Cardinality::exactlyOne()); + (yyval.sequenceType) = makeGenericSequenceType((yyvsp[0].itemType), Cardinality::exactlyOne()); } +#line 7149 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 407: - -/* Line 1806 of yacc.c */ -#line 4328 "querytransformparser.ypp" +#line 4312 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.sequenceType) = makeGenericSequenceType((yyvsp[(1) - (2)].itemType), Cardinality::zeroOrOne()); + (yyval.sequenceType) = makeGenericSequenceType((yyvsp[-1].itemType), Cardinality::zeroOrOne()); } +#line 7157 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 408: - -/* Line 1806 of yacc.c */ -#line 4333 "querytransformparser.ypp" +#line 4317 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.sequenceType) = CommonSequenceTypes::ZeroOrMoreItems; } +#line 7165 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 409: - -/* Line 1806 of yacc.c */ -#line 4337 "querytransformparser.ypp" +#line 4321 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.sequenceType) = (yyvsp[(2) - (2)].sequenceType); + (yyval.sequenceType) = (yyvsp[0].sequenceType); } +#line 7173 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 410: - -/* Line 1806 of yacc.c */ -#line 4342 "querytransformparser.ypp" +#line 4326 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.sequenceType) = makeGenericSequenceType((yyvsp[(1) - (2)].itemType), (yyvsp[(2) - (2)].cardinality)); + (yyval.sequenceType) = makeGenericSequenceType((yyvsp[-1].itemType), (yyvsp[0].cardinality)); } +#line 7181 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 411: - -/* Line 1806 of yacc.c */ -#line 4347 "querytransformparser.ypp" +#line 4331 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.sequenceType) = CommonSequenceTypes::Empty; } +#line 7189 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 412: - -/* Line 1806 of yacc.c */ -#line 4351 "querytransformparser.ypp" +#line 4335 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.cardinality) = Cardinality::exactlyOne();} +#line 7195 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 413: - -/* Line 1806 of yacc.c */ -#line 4352 "querytransformparser.ypp" +#line 4336 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.cardinality) = Cardinality::oneOrMore();} +#line 7201 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 414: - -/* Line 1806 of yacc.c */ -#line 4353 "querytransformparser.ypp" +#line 4337 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.cardinality) = Cardinality::zeroOrMore();} +#line 7207 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 415: - -/* Line 1806 of yacc.c */ -#line 4354 "querytransformparser.ypp" +#line 4338 "querytransformparser.ypp" /* yacc.c:1646 */ {(yyval.cardinality) = Cardinality::zeroOrOne();} +#line 7213 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 419: - -/* Line 1806 of yacc.c */ -#line 4360 "querytransformparser.ypp" +#line 4344 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::item; } +#line 7221 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 420: - -/* Line 1806 of yacc.c */ -#line 4365 "querytransformparser.ypp" +#line 4349 "querytransformparser.ypp" /* yacc.c:1646 */ { - const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(1) - (1)].qName))); + const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[0].qName))); if(!t) { parseInfo->staticContext->error(QtXmlPatterns::tr("The name %1 does not refer to any schema type.") - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(1) - (1)].qName))), ReportContext::XPST0051, fromYYLTYPE((yyloc), parseInfo)); + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[0].qName))), ReportContext::XPST0051, fromYYLTYPE((yyloc), parseInfo)); } else if(BuiltinTypes::xsAnyAtomicType->wxsTypeMatches(t)) (yyval.itemType) = AtomicType::Ptr(t); @@ -7871,316 +7296,288 @@ yyreduce: } } } +#line 7257 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 428: - -/* Line 1806 of yacc.c */ -#line 4409 "querytransformparser.ypp" +#line 4393 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::node; } +#line 7265 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 429: - -/* Line 1806 of yacc.c */ -#line 4414 "querytransformparser.ypp" +#line 4398 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::document; } +#line 7273 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 430: - -/* Line 1806 of yacc.c */ -#line 4419 "querytransformparser.ypp" +#line 4403 "querytransformparser.ypp" /* yacc.c:1646 */ { // TODO support for document element testing (yyval.itemType) = BuiltinTypes::document; } +#line 7282 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 433: - -/* Line 1806 of yacc.c */ -#line 4428 "querytransformparser.ypp" +#line 4412 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::text; } +#line 7290 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 434: - -/* Line 1806 of yacc.c */ -#line 4433 "querytransformparser.ypp" +#line 4417 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::comment; } +#line 7298 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 435: - -/* Line 1806 of yacc.c */ -#line 4438 "querytransformparser.ypp" +#line 4422 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::pi; } +#line 7306 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 436: - -/* Line 1806 of yacc.c */ -#line 4443 "querytransformparser.ypp" +#line 4427 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.itemType) = LocalNameTest::create(BuiltinTypes::pi, parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[(3) - (4)].sval))); + (yyval.itemType) = LocalNameTest::create(BuiltinTypes::pi, parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[-1].sval))); } +#line 7314 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 437: - -/* Line 1806 of yacc.c */ -#line 4448 "querytransformparser.ypp" +#line 4432 "querytransformparser.ypp" /* yacc.c:1646 */ { - if(QXmlUtils::isNCName((yyvsp[(3) - (4)].sval))) + if(QXmlUtils::isNCName((yyvsp[-1].sval))) { - (yyval.itemType) = LocalNameTest::create(BuiltinTypes::pi, parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[(3) - (4)].sval))); + (yyval.itemType) = LocalNameTest::create(BuiltinTypes::pi, parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[-1].sval))); } else { parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not a valid name for a " "processing-instruction.") - .arg(formatKeyword((yyvsp[(3) - (4)].sval))), + .arg(formatKeyword((yyvsp[-1].sval))), ReportContext::XPTY0004, fromYYLTYPE((yyloc), parseInfo)); } } +#line 7333 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 440: - -/* Line 1806 of yacc.c */ -#line 4467 "querytransformparser.ypp" +#line 4451 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::attribute; } +#line 7341 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 441: - -/* Line 1806 of yacc.c */ -#line 4472 "querytransformparser.ypp" +#line 4456 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::attribute; } +#line 7349 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 442: - -/* Line 1806 of yacc.c */ -#line 4477 "querytransformparser.ypp" +#line 4461 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.itemType) = QNameTest::create(BuiltinTypes::attribute, (yyvsp[(3) - (4)].qName)); + (yyval.itemType) = QNameTest::create(BuiltinTypes::attribute, (yyvsp[-1].qName)); } +#line 7357 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 443: - -/* Line 1806 of yacc.c */ -#line 4481 "querytransformparser.ypp" +#line 4465 "querytransformparser.ypp" /* yacc.c:1646 */ { - const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (6)].qName))); + const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-1].qName))); if(t) (yyval.itemType) = BuiltinTypes::attribute; else { - parseInfo->staticContext->error(unknownType().arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(5) - (6)].qName))), + parseInfo->staticContext->error(unknownType().arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-1].qName))), ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); } } +#line 7373 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 444: - -/* Line 1806 of yacc.c */ -#line 4493 "querytransformparser.ypp" +#line 4477 "querytransformparser.ypp" /* yacc.c:1646 */ { - const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (6)].qName))); + const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-1].qName))); if(t) (yyval.itemType) = BuiltinTypes::attribute; else { - parseInfo->staticContext->error(unknownType().arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(5) - (6)].qName))), + parseInfo->staticContext->error(unknownType().arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-1].qName))), ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); } } +#line 7389 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 445: - -/* Line 1806 of yacc.c */ -#line 4506 "querytransformparser.ypp" +#line 4490 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute " "declarations. Note that the schema import " "feature is not supported.") - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(3) - (4)].qName))), + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-1].qName))), ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); (yyval.itemType).reset(); } +#line 7402 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 446: - -/* Line 1806 of yacc.c */ -#line 4516 "querytransformparser.ypp" +#line 4500 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::element; } +#line 7410 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 447: - -/* Line 1806 of yacc.c */ -#line 4521 "querytransformparser.ypp" +#line 4505 "querytransformparser.ypp" /* yacc.c:1646 */ { (yyval.itemType) = BuiltinTypes::element; } +#line 7418 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 448: - -/* Line 1806 of yacc.c */ -#line 4526 "querytransformparser.ypp" +#line 4510 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.itemType) = QNameTest::create(BuiltinTypes::element, (yyvsp[(3) - (4)].qName)); + (yyval.itemType) = QNameTest::create(BuiltinTypes::element, (yyvsp[-1].qName)); } +#line 7426 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 449: - -/* Line 1806 of yacc.c */ -#line 4531 "querytransformparser.ypp" +#line 4515 "querytransformparser.ypp" /* yacc.c:1646 */ { - const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (7)].qName))); + const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-2].qName))); if(t) (yyval.itemType) = BuiltinTypes::element; else { parseInfo->staticContext->error(unknownType() - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(5) - (7)].qName))), + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-2].qName))), ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); } } +#line 7443 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 450: - -/* Line 1806 of yacc.c */ -#line 4545 "querytransformparser.ypp" +#line 4529 "querytransformparser.ypp" /* yacc.c:1646 */ { - const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (7)].qName))); + const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-2].qName))); if(t) (yyval.itemType) = BuiltinTypes::element; else { parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is an unknown schema type.") - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(5) - (7)].qName))), + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-2].qName))), ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); } } +#line 7460 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 453: - -/* Line 1806 of yacc.c */ -#line 4562 "querytransformparser.ypp" +#line 4546 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute " "declarations. Note that the schema import " "feature is not supported.") - .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[(3) - (4)].qName))), + .arg(formatKeyword(parseInfo->staticContext->namePool(), (yyvsp[-1].qName))), ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); (yyval.itemType).reset(); } +#line 7473 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 455: - -/* Line 1806 of yacc.c */ -#line 4574 "querytransformparser.ypp" +#line 4558 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[(1) - (1)].sval)); + (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[0].sval)); } +#line 7481 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 457: - -/* Line 1806 of yacc.c */ -#line 4586 "querytransformparser.ypp" +#line 4570 "querytransformparser.ypp" /* yacc.c:1646 */ { if(parseInfo->nodeTestSource == BuiltinTypes::element) - (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->namespaceBindings()->lookupNamespaceURI(StandardPrefixes::empty), (yyvsp[(1) - (1)].sval)); + (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->namespaceBindings()->lookupNamespaceURI(StandardPrefixes::empty), (yyvsp[0].sval)); else - (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[(1) - (1)].sval)); + (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[0].sval)); } +#line 7492 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 462: - -/* Line 1806 of yacc.c */ -#line 4600 "querytransformparser.ypp" +#line 4584 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->defaultFunctionNamespace(), (yyvsp[(1) - (1)].sval)); + (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->defaultFunctionNamespace(), (yyvsp[0].sval)); } +#line 7500 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 463: - -/* Line 1806 of yacc.c */ -#line 4604 "querytransformparser.ypp" +#line 4588 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::InternalXSLT, (yyvsp[(2) - (2)].sval)); + (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::InternalXSLT, (yyvsp[0].sval)); } +#line 7508 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 466: - -/* Line 1806 of yacc.c */ -#line 4612 "querytransformparser.ypp" +#line 4596 "querytransformparser.ypp" /* yacc.c:1646 */ { parseInfo->staticContext->error(QtXmlPatterns::tr("The name of an extension expression must be in " "a namespace."), ReportContext::XPST0081, fromYYLTYPE((yyloc), parseInfo)); } +#line 7518 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 469: - -/* Line 1806 of yacc.c */ -#line 4622 "querytransformparser.ypp" +#line 4606 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); } +#line 7526 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 470: - -/* Line 1806 of yacc.c */ -#line 4626 "querytransformparser.ypp" +#line 4610 "querytransformparser.ypp" /* yacc.c:1646 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); } +#line 7534 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 471: - -/* Line 1806 of yacc.c */ -#line 4631 "querytransformparser.ypp" +#line 4615 "querytransformparser.ypp" /* yacc.c:1646 */ { const ReflectYYLTYPE ryy((yyloc), parseInfo); @@ -8188,25 +7585,23 @@ yyreduce: (yyval.qName) = QNameConstructor:: expandQName<StaticContext::Ptr, ReportContext::XPST0081, - ReportContext::XPST0081>((yyvsp[(1) - (1)].sval), parseInfo->staticContext, + ReportContext::XPST0081>((yyvsp[0].sval), parseInfo->staticContext, parseInfo->staticContext->namespaceBindings(), &ryy); } +#line 7550 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; case 472: - -/* Line 1806 of yacc.c */ -#line 4643 "querytransformparser.ypp" +#line 4627 "querytransformparser.ypp" /* yacc.c:1646 */ { - (yyval.qName) = parseInfo->staticContext->namePool()->fromClarkName((yyvsp[(1) - (1)].sval)); + (yyval.qName) = parseInfo->staticContext->namePool()->fromClarkName((yyvsp[0].sval)); } +#line 7558 "qquerytransformparser.cpp" /* yacc.c:1646 */ break; - -/* Line 1806 of yacc.c */ -#line 8181 "qquerytransformparser.cpp" +#line 7562 "qquerytransformparser.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -8229,7 +7624,7 @@ yyreduce: *++yyvsp = yyval; *++yylsp = yyloc; - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -8244,9 +7639,9 @@ yyreduce: goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -8297,20 +7692,20 @@ yyerrlab: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval, &yylloc, parseInfo); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval, &yylloc, parseInfo); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -8330,7 +7725,7 @@ yyerrorlab: goto yyerrorlab; yyerror_range[1] = yylsp[1-yylen]; - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -8343,35 +7738,37 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - yystos[yystate], yyvsp, yylsp, parseInfo); + yystos[yystate], yyvsp, yylsp, parseInfo); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; /* Using YYLLOC is tempting, but would change the location of @@ -8400,7 +7797,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#if !defined(yyoverflow) || YYERROR_VERBOSE +#if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -8419,14 +7816,14 @@ yyreturn: yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc, parseInfo); } - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, yylsp, parseInfo); + yystos[*yyssp], yyvsp, yylsp, parseInfo); YYPOPSTACK (1); } #ifndef yyoverflow @@ -8437,29 +7834,24 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } - - - -/* Line 2067 of yacc.c */ -#line 4647 "querytransformparser.ypp" +#line 4631 "querytransformparser.ypp" /* yacc.c:1906 */ QString Tokenizer::tokenToString(const Token &token) { switch(token.type) { - case NCNAME: + case T_NCNAME: /* Fallthrough. */ - case QNAME: + case T_QNAME: /* Fallthrough. */ - case NUMBER: + case T_NUMBER: /* Fallthrough. */ - case XPATH2_NUMBER: + case T_XPATH2_NUMBER: return token.value; - case STRING_LITERAL: + case T_STRING_LITERAL: return QLatin1Char('"') + token.value + QLatin1Char('"'); default: { @@ -8479,4 +7871,3 @@ QString Tokenizer::tokenToString(const Token &token) QT_END_NAMESPACE // vim: et:ts=4:sw=4:sts=4:syntax=yacc - |