summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2013-11-28 20:55:11 -0800
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-12-06 08:00:48 +0100
commite382b722fa853e0241b396a13831bcdc9dd840b2 (patch)
tree6142b8f2f08d63e59164ff9c228844c8cfdf672c
parent624e7d7bcdcd1f5e5f73faf07f7c19c6f0e04160 (diff)
Sync source and generated versions of the query parser.
The following manual changes to qquerytransformparser.cpp were not reflected in the .ypp source, but they are now: c95a0e6e8eb8ba5fd2a4412b318ad998b3ccb4fc (Nov 2009) c1623a0d42c9869e5a1d04081e7660722a863de5 (Apr 2012) The following change is lost because it modified code generated by bison (not from .ypp) and needs to be re-applied: e7a51b138772cb453555d27f44e6a2c0e79e799c Change-Id: I72e76732acd1c370394c9fc373522b43ace6e009 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
-rw-r--r--src/xmlpatterns/parser/qquerytransformparser.cpp2625
-rw-r--r--src/xmlpatterns/parser/qquerytransformparser_p.h46
-rw-r--r--src/xmlpatterns/parser/querytransformparser.ypp14
3 files changed, 1569 insertions, 1116 deletions
diff --git a/src/xmlpatterns/parser/qquerytransformparser.cpp b/src/xmlpatterns/parser/qquerytransformparser.cpp
index 0969701b..3b014796 100644
--- a/src/xmlpatterns/parser/qquerytransformparser.cpp
+++ b/src/xmlpatterns/parser/qquerytransformparser.cpp
@@ -39,27 +39,34 @@
**
****************************************************************************/
-/* A Bison parser, made by GNU Bison 2.3a. */
-
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+/* A Bison parser, made by GNU Bison 2.5. */
+
+/* Bison implementation for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2011 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 2, or (at your option)
- any later version.
-
+ 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, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -70,7 +77,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. */
@@ -88,7 +95,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.3a"
+#define YYBISON_VERSION "2.5"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -96,109 +103,167 @@
/* Pure parsers. */
#define YYPURE 1
+/* Push parsers. */
+#define YYPUSH 0
+
+/* 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
+#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 164 of yacc.c. */
-#line 22 "querytransformparser.ypp"
+
+/* Line 268 of yacc.c */
+#line 52 "querytransformparser.ypp"
+
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtXmlPatterns module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
#include <limits>
#include <QUrl>
-#include "qabstractfloat_p.h"
-#include "qandexpression_p.h"
-#include "qanyuri_p.h"
-#include "qapplytemplate_p.h"
-#include "qargumentreference_p.h"
-#include "qarithmeticexpression_p.h"
-#include "qatomicstring_p.h"
-#include "qattributeconstructor_p.h"
-#include "qattributenamevalidator_p.h"
-#include "qaxisstep_p.h"
-#include "qbuiltintypes_p.h"
-#include "qcalltemplate_p.h"
-#include "qcastableas_p.h"
-#include "qcastas_p.h"
-#include "qcombinenodes_p.h"
-#include "qcommentconstructor_p.h"
-#include "qcommonnamespaces_p.h"
-#include "qcommonsequencetypes_p.h"
-#include "qcommonvalues_p.h"
-#include "qcomputednamespaceconstructor_p.h"
-#include "qcontextitem_p.h"
-#include "qcopyof_p.h"
-#include "qcurrentitemstore_p.h"
-#include "qdebug_p.h"
-#include "qdelegatingnamespaceresolver_p.h"
-#include "qdocumentconstructor_p.h"
-#include "qelementconstructor_p.h"
-#include "qemptysequence_p.h"
-#include "qemptysequencetype_p.h"
-#include "qevaluationcache_p.h"
-#include "qexpressionfactory_p.h"
-#include "qexpressionsequence_p.h"
-#include "qexpressionvariablereference_p.h"
-#include "qexternalvariablereference_p.h"
-#include "qforclause_p.h"
-#include "qfunctioncall_p.h"
-#include "qfunctionfactory_p.h"
-#include "qfunctionsignature_p.h"
-#include "qgeneralcomparison_p.h"
-#include "qgenericpredicate_p.h"
-#include "qgenericsequencetype_p.h"
-#include "qifthenclause_p.h"
-#include "qinstanceof_p.h"
-#include "qletclause_p.h"
-#include "qliteral_p.h"
-#include "qlocalnametest_p.h"
-#include "qnamespaceconstructor_p.h"
-#include "qnamespacenametest_p.h"
-#include "qncnameconstructor_p.h"
-#include "qnodecomparison_p.h"
-#include "qnodesort_p.h"
-#include "qorderby_p.h"
-#include "qorexpression_p.h"
-#include "qparsercontext_p.h"
-#include "qpath_p.h"
-#include "qpatternistlocale_p.h"
-#include "qpositionalvariablereference_p.h"
-#include "qprocessinginstructionconstructor_p.h"
-#include "qqnameconstructor_p.h"
-#include "qqnametest_p.h"
-#include "qqnamevalue_p.h"
-#include "qquantifiedexpression_p.h"
-#include "qrangeexpression_p.h"
-#include "qrangevariablereference_p.h"
-#include "qreturnorderby_p.h"
-#include "qschemanumeric_p.h"
-#include "qschematypefactory_p.h"
-#include "qsimplecontentconstructor_p.h"
-#include "qstaticbaseuristore_p.h"
-#include "qstaticcompatibilitystore_p.h"
-#include "qtemplateparameterreference_p.h"
-#include "qtemplate_p.h"
-#include "qtextnodeconstructor_p.h"
-#include "qtokenizer_p.h"
-#include "qtreatas_p.h"
-#include "qtypechecker_p.h"
-#include "qunaryexpression_p.h"
-#include "qunresolvedvariablereference_p.h"
-#include "quserfunctioncallsite_p.h"
-#include "qvaluecomparison_p.h"
-#include "qxpathhelper_p.h"
-#include "qxsltsimplecontentconstructor_p.h"
+#include <private/qabstractfloat_p.h>
+#include <private/qandexpression_p.h>
+#include <private/qanyuri_p.h>
+#include <private/qapplytemplate_p.h>
+#include <private/qargumentreference_p.h>
+#include <private/qarithmeticexpression_p.h>
+#include <private/qatomicstring_p.h>
+#include <private/qattributeconstructor_p.h>
+#include <private/qattributenamevalidator_p.h>
+#include <private/qaxisstep_p.h>
+#include <private/qbuiltintypes_p.h>
+#include <private/qcalltemplate_p.h>
+#include <private/qcastableas_p.h>
+#include <private/qcastas_p.h>
+#include <private/qcombinenodes_p.h>
+#include <private/qcommentconstructor_p.h>
+#include <private/qcommonnamespaces_p.h>
+#include <private/qcommonsequencetypes_p.h>
+#include <private/qcommonvalues_p.h>
+#include <private/qcomputednamespaceconstructor_p.h>
+#include <private/qcontextitem_p.h>
+#include <private/qcopyof_p.h>
+#include <private/qcurrentitemstore_p.h>
+#include <private/qdebug_p.h>
+#include <private/qdelegatingnamespaceresolver_p.h>
+#include <private/qdocumentconstructor_p.h>
+#include <private/qelementconstructor_p.h>
+#include <private/qemptysequence_p.h>
+#include <private/qemptysequencetype_p.h>
+#include <private/qevaluationcache_p.h>
+#include <private/qexpressionfactory_p.h>
+#include <private/qexpressionsequence_p.h>
+#include <private/qexpressionvariablereference_p.h>
+#include <private/qexternalvariablereference_p.h>
+#include <private/qforclause_p.h>
+#include <private/qfunctioncall_p.h>
+#include <private/qfunctionfactory_p.h>
+#include <private/qfunctionsignature_p.h>
+#include <private/qgeneralcomparison_p.h>
+#include <private/qgenericpredicate_p.h>
+#include <private/qgenericsequencetype_p.h>
+#include <private/qifthenclause_p.h>
+#include <private/qinstanceof_p.h>
+#include <private/qletclause_p.h>
+#include <private/qliteral_p.h>
+#include <private/qlocalnametest_p.h>
+#include <private/qnamespaceconstructor_p.h>
+#include <private/qnamespacenametest_p.h>
+#include <private/qncnameconstructor_p.h>
+#include <private/qnodecomparison_p.h>
+#include <private/qnodesort_p.h>
+#include <private/qorderby_p.h>
+#include <private/qorexpression_p.h>
+#include <private/qparsercontext_p.h>
+#include <private/qpath_p.h>
+#include <private/qpatternistlocale_p.h>
+#include <private/qpositionalvariablereference_p.h>
+#include <private/qprocessinginstructionconstructor_p.h>
+#include <private/qqnameconstructor_p.h>
+#include <private/qqnametest_p.h>
+#include <private/qqnamevalue_p.h>
+#include <private/qquantifiedexpression_p.h>
+#include <private/qrangeexpression_p.h>
+#include <private/qrangevariablereference_p.h>
+#include <private/qreturnorderby_p.h>
+#include <private/qschemanumeric_p.h>
+#include <private/qschematypefactory_p.h>
+#include <private/qsimplecontentconstructor_p.h>
+#include <private/qstaticbaseuristore_p.h>
+#include <private/qstaticcompatibilitystore_p.h>
+#include <private/qtemplateparameterreference_p.h>
+#include <private/qtemplate_p.h>
+#include <private/qtextnodeconstructor_p.h>
+#include <private/qtokenizer_p.h>
+#include <private/qtreatas_p.h>
+#include <private/qtypechecker_p.h>
+#include <private/qunaryexpression_p.h>
+#include <private/qunresolvedvariablereference_p.h>
+#include <private/quserfunctioncallsite_p.h>
+#include <private/qvaluecomparison_p.h>
+#include <private/qxpathhelper_p.h>
+#include <private/qxsltsimplecontentconstructor_p.h>
/*
* The cpp generated with bison 2.1 wants to
@@ -1119,6 +1184,9 @@ static Expression::Ptr createReturnOrderBy(const OrderSpecTransfer::List &orderS
+/* Line 268 of yacc.c */
+#line 1138 "qquerytransformparser.cpp"
+
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -1338,8 +1406,9 @@ typedef struct YYLTYPE
/* Copy the second part of user declarations. */
-/* Line 221 of yacc.c. */
-#line 1323 "qquerytransformparser.cpp"
+
+/* Line 343 of yacc.c */
+#line 1361 "qquerytransformparser.cpp"
#ifdef short
# undef short
@@ -1389,7 +1458,7 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -1442,11 +1511,11 @@ YYID (yyi)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -1469,24 +1538,24 @@ YYID (yyi)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -1503,9 +1572,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- YYLTYPE yyls;
+ yytype_int16 yyss_alloc;
+ YYSTYPE yyvs_alloc;
+ YYLTYPE yyls_alloc;
};
/* The size of the maximum gap between one aligned stack and the next. */
@@ -1517,6 +1586,27 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
+ 2 * YYSTACK_GAP_MAXIMUM)
+# define YYCOPY_NEEDED 1
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ 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))
+
+#endif
+
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
@@ -1534,24 +1624,7 @@ union yyalloc
while (YYID (0))
# endif
# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- 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) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
-
-#endif
+#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 5
@@ -1823,54 +1896,54 @@ static const yytype_int16 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1375, 1375, 1376, 1378, 1379, 1410, 1411, 1427, 1525,
- 1527, 1533, 1535, 1542, 1548, 1554, 1561, 1564, 1568, 1572,
- 1592, 1606, 1610, 1604, 1673, 1677, 1694, 1697, 1699, 1704,
- 1705, 1709, 1710, 1714, 1718, 1722, 1724, 1725, 1727, 1729,
- 1775, 1789, 1794, 1799, 1800, 1802, 1817, 1832, 1842, 1857,
- 1861, 1866, 1880, 1884, 1889, 1903, 1908, 1913, 1918, 1923,
- 1939, 1962, 1970, 1971, 1972, 1974, 1991, 1992, 1994, 1995,
- 1997, 1998, 2000, 2055, 2059, 2065, 2068, 2073, 2087, 2091,
- 2097, 2096, 2205, 2208, 2214, 2235, 2241, 2245, 2247, 2252,
- 2262, 2263, 2268, 2269, 2278, 2348, 2359, 2360, 2364, 2369,
- 2438, 2439, 2443, 2448, 2492, 2493, 2498, 2505, 2511, 2512,
- 2513, 2514, 2515, 2516, 2522, 2527, 2533, 2536, 2541, 2547,
- 2553, 2557, 2582, 2583, 2587, 2591, 2585, 2632, 2635, 2630,
- 2651, 2652, 2653, 2656, 2660, 2668, 2667, 2681, 2680, 2689,
- 2690, 2691, 2693, 2701, 2712, 2715, 2717, 2722, 2729, 2736,
- 2742, 2762, 2767, 2773, 2776, 2778, 2779, 2786, 2792, 2796,
- 2801, 2802, 2805, 2809, 2804, 2819, 2823, 2818, 2831, 2834,
- 2838, 2833, 2848, 2852, 2847, 2860, 2862, 2890, 2889, 2901,
- 2909, 2900, 2920, 2921, 2924, 2928, 2933, 2938, 2937, 2953,
- 2959, 2960, 2966, 2967, 2973, 2974, 2975, 2976, 2978, 2979,
- 2985, 2986, 2992, 2993, 2995, 2996, 3002, 3003, 3004, 3005,
- 3007, 3008, 3018, 3019, 3025, 3026, 3028, 3032, 3037, 3038,
- 3045, 3046, 3052, 3053, 3059, 3060, 3066, 3067, 3073, 3077,
- 3082, 3083, 3084, 3086, 3092, 3093, 3094, 3095, 3096, 3097,
- 3099, 3104, 3105, 3106, 3107, 3108, 3109, 3111, 3116, 3117,
- 3118, 3120, 3134, 3135, 3136, 3138, 3155, 3159, 3164, 3165,
- 3167, 3172, 3173, 3175, 3181, 3185, 3191, 3194, 3195, 3199,
- 3208, 3213, 3217, 3218, 3223, 3222, 3237, 3245, 3244, 3260,
- 3268, 3268, 3277, 3279, 3282, 3287, 3289, 3293, 3359, 3362,
- 3368, 3371, 3380, 3384, 3388, 3393, 3394, 3399, 3400, 3403,
- 3402, 3432, 3434, 3435, 3437, 3481, 3482, 3483, 3484, 3485,
- 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3495, 3494, 3505,
- 3516, 3521, 3523, 3528, 3529, 3534, 3538, 3540, 3544, 3553,
- 3560, 3561, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574,
- 3584, 3585, 3590, 3595, 3601, 3607, 3612, 3617, 3622, 3628,
- 3633, 3638, 3668, 3672, 3679, 3681, 3685, 3690, 3691, 3692,
- 3726, 3735, 3724, 3976, 3980, 4000, 4003, 4009, 4014, 4019,
- 4025, 4028, 4038, 4045, 4049, 4055, 4069, 4075, 4092, 4097,
- 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4118, 4126, 4125,
- 4165, 4168, 4173, 4188, 4193, 4200, 4212, 4216, 4212, 4222,
- 4224, 4228, 4230, 4245, 4249, 4258, 4263, 4267, 4273, 4276,
- 4281, 4286, 4291, 4292, 4293, 4294, 4296, 4297, 4298, 4299,
- 4304, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4348, 4353,
- 4358, 4364, 4365, 4367, 4372, 4377, 4382, 4387, 4403, 4404,
- 4406, 4411, 4416, 4420, 4432, 4445, 4455, 4460, 4465, 4470,
- 4484, 4498, 4499, 4501, 4511, 4513, 4518, 4525, 4532, 4534,
- 4536, 4537, 4539, 4543, 4548, 4549, 4551, 4557, 4559, 4561,
- 4565, 4570, 4582
+ 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
};
#endif
@@ -1917,7 +1990,7 @@ static const char *const yytname[] =
"\"where\"", "\"xquery\"", "\"internal\"", "\"internal-name\"",
"\"current\"", "$accept", "Module", "VersionDecl", "Encoding",
"MainModule", "LibraryModule", "ModuleDecl", "Prolog", "TemplateDecl",
- "@1", "@2", "OptionalPriority", "OptionalTemplateName", "TemplateName",
+ "$@1", "$@2", "OptionalPriority", "OptionalTemplateName", "TemplateName",
"Setter", "Import", "Separator", "NamespaceDecl", "BoundarySpaceDecl",
"BoundarySpacePolicy", "DefaultNamespaceDecl",
"DeclareDefaultElementNamespace", "DeclareDefaultFunctionNamespace",
@@ -1931,29 +2004,29 @@ static const char *const yytname[] =
"Pattern", "PathPattern", "IdKeyPattern", "RelativePathPattern",
"PatternStep", "Expr", "ExpressionSequence", "ExprSingle",
"OptionalModes", "OptionalMode", "Modes", "Mode", "FLWORExpr",
- "ForClause", "@4", "@5", "ForTail", "@6", "@7", "PositionalVar",
+ "ForClause", "@4", "@5", "ForTail", "$@6", "@7", "PositionalVar",
"LetClause", "@8", "LetTail", "@9", "WhereClause", "OrderByClause",
"MandatoryOrderByClause", "OrderSpecList", "OrderSpec",
"DirectionModifier", "EmptynessModifier", "CollationModifier",
- "OrderByInputOrder", "QuantifiedExpr", "SomeQuantificationExpr", "@10",
+ "OrderByInputOrder", "QuantifiedExpr", "SomeQuantificationExpr", "$@10",
"@11", "SomeQuantificationTail", "@12", "@13", "EveryQuantificationExpr",
- "@14", "@15", "EveryQuantificationTail", "@16", "@17", "SatisfiesClause",
- "TypeswitchExpr", "@18", "CaseClause", "@19", "@20", "CaseTail",
- "CaseVariable", "CaseDefault", "@21", "IfExpr", "OrExpr", "AndExpr",
- "ComparisonExpr", "RangeExpr", "AdditiveExpr", "AdditiveOperator",
- "MultiplicativeExpr", "MultiplyOperator", "UnionExpr",
- "IntersectExceptExpr", "UnionOperator", "IntersectOperator",
+ "$@14", "@15", "EveryQuantificationTail", "@16", "@17",
+ "SatisfiesClause", "TypeswitchExpr", "$@18", "CaseClause", "$@19",
+ "$@20", "CaseTail", "CaseVariable", "CaseDefault", "$@21", "IfExpr",
+ "OrExpr", "AndExpr", "ComparisonExpr", "RangeExpr", "AdditiveExpr",
+ "AdditiveOperator", "MultiplicativeExpr", "MultiplyOperator",
+ "UnionExpr", "IntersectExceptExpr", "UnionOperator", "IntersectOperator",
"InstanceOfExpr", "TreatExpr", "CastableExpr", "CastExpr", "UnaryExpr",
"UnaryOperator", "ValueExpr", "GeneralComp", "GeneralComparisonOperator",
"ValueComp", "ValueComparisonOperator", "NodeComp", "NodeOperator",
"ValidateExpr", "ValidationMode", "ExtensionExpr",
"EnclosedOptionalExpr", "Pragmas", "Pragma", "PragmaContents",
- "PathExpr", "RelativePathExpr", "StepExpr", "@22", "@23",
- "TemplateWithParameters", "@24", "TemplateParameters",
+ "PathExpr", "RelativePathExpr", "StepExpr", "@22", "$@23",
+ "TemplateWithParameters", "$@24", "TemplateParameters",
"OptionalTemplateParameters", "TemplateParameter", "IsTunnel",
"OptionalAssign", "MapOrSlash", "FilteredAxisStep", "AxisStep",
- "ForwardStep", "@25", "NodeTestInAxisStep", "Axis", "AxisToken",
- "AbbrevForwardStep", "@26", "ReverseStep", "AbbrevReverseStep",
+ "ForwardStep", "$@25", "NodeTestInAxisStep", "Axis", "AxisToken",
+ "AbbrevForwardStep", "$@26", "ReverseStep", "AbbrevReverseStep",
"NodeTest", "NameTest", "WildCard", "FilterExpr", "PrimaryExpr",
"Literal", "NumericLiteral", "VarRef", "VarName", "ParenthesizedExpr",
"ContextItemExpr", "OrderingExpr", "FunctionCallExpr",
@@ -1962,9 +2035,9 @@ static const char *const yytname[] =
"DirAttributeList", "Attribute", "DirAttributeValue", "AttrValueContent",
"DirElemContent", "DirCommentConstructor", "DirPIConstructor",
"ComputedConstructor", "CompDocConstructor", "CompElemConstructor",
- "@29", "IsInternal", "CompAttrConstructor", "CompTextConstructor",
+ "$@29", "IsInternal", "CompAttrConstructor", "CompTextConstructor",
"CompCommentConstructor", "CompPIConstructor", "CompAttributeName",
- "@30", "@31", "CompElementName", "CompNameExpr", "CompPIName",
+ "$@30", "$@31", "CompElementName", "CompNameExpr", "CompPIName",
"CompNamespaceConstructor", "SingleType", "TypeDeclaration",
"SequenceType", "OccurrenceIndicator", "ItemType", "AtomicType",
"KindTest", "AnyKindTest", "DocumentTest", "AnyElementTest", "TextTest",
@@ -2107,8 +2180,8 @@ static const yytype_uint8 yyr2[] =
1, 1, 1
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* 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[] =
{
@@ -2345,8 +2418,7 @@ static const yytype_int16 yypgoto[] =
/* 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 zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
+ number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -463
static const yytype_int16 yytable[] =
{
@@ -2558,6 +2630,12 @@ 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,
@@ -2868,9 +2946,18 @@ static const yytype_uint16 yystos[] =
/* 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. */
+ 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
#define YYRECOVERING() (!!yyerrstatus)
@@ -2880,7 +2967,6 @@ do \
{ \
yychar = (Token); \
yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
@@ -2927,7 +3013,7 @@ while (YYID (0))
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# 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, \
@@ -3095,11 +3181,11 @@ yy_reduce_print (yyvsp, yylsp, yyrule, parseInfo)
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
- fprintf (stderr, " $%d = ", yyi + 1);
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
, &(yylsp[(yyi + 1) - (yynrhs)]) , parseInfo);
- fprintf (stderr, "\n");
+ YYFPRINTF (stderr, "\n");
}
}
@@ -3136,7 +3222,6 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -3239,115 +3324,142 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
+
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
{
- int yyn = yypact[yystate];
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = 0;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ 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
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
+ {
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+ switch (yycount)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
+ yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
}
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -3368,7 +3480,6 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseInfo)
ParserContext *const parseInfo;
#endif
{
- YYUSE (yytype);
YYUSE (yyvaluep);
YYUSE (yylocationp);
YYUSE (parseInfo);
@@ -3376,11 +3487,17 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseInfo)
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+ break;
+ }
}
-
-/* Prevent warnings from -Wmissing-prototypes. */
+/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
@@ -3396,10 +3513,6 @@ int yyparse ();
#endif /* ! YYPARSE_PARAM */
-
-
-
-
/*----------.
| yyparse. |
`----------*/
@@ -3426,85 +3539,94 @@ yyparse (parseInfo)
#endif
#endif
{
- /* The lookahead symbol. */
+/* The lookahead symbol. */
int yychar;
/* The semantic value of the lookahead symbol. */
YYSTYPE yylval;
-/* Number of syntax errors so far. */
-int yynerrs;
/* Location data for the lookahead symbol. */
YYLTYPE yylloc;
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Lookahead token as an internal (translated) token number. */
- int yytoken = 0;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
+ /* Number of syntax errors so far. */
+ int yynerrs;
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
+ /* The stacks and their tools:
+ `yyss': related to states.
+ `yyvs': related to semantic values.
+ `yyls': related to locations.
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
- /* The location stack. */
- YYLTYPE yylsa[YYINITDEPTH];
- YYLTYPE *yyls = yylsa;
- YYLTYPE *yylsp;
- /* The locations where the error started and ended. */
- YYLTYPE yyerror_range[2];
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs;
+ YYSTYPE *yyvsp;
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
+ /* The location stack. */
+ YYLTYPE yylsa[YYINITDEPTH];
+ YYLTYPE *yyls;
+ YYLTYPE *yylsp;
+
+ /* The locations where the error started and ended. */
+ YYLTYPE yyerror_range[3];
- YYSIZE_T yystacksize = YYINITDEPTH;
+ YYSIZE_T yystacksize;
+ int yyn;
+ int yyresult;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
YYLTYPE yyloc;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
+
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
+ yytoken = 0;
+ yyss = yyssa;
+ yyvs = yyvsa;
+ yyls = yylsa;
+ yystacksize = YYINITDEPTH;
+
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
+ 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 YYLTYPE_IS_TRIVIAL
+
+#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;
@@ -3546,6 +3668,7 @@ YYLTYPE yylloc;
&yyvs1, yysize * sizeof (*yyvsp),
&yyls1, yysize * sizeof (*yylsp),
&yystacksize);
+
yyls = yyls1;
yyss = yyss1;
yyvs = yyvs1;
@@ -3567,9 +3690,9 @@ YYLTYPE yylloc;
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
- YYSTACK_RELOCATE (yyls);
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+ YYSTACK_RELOCATE (yyls_alloc, yyls);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
@@ -3605,7 +3728,7 @@ yybackup:
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
@@ -3636,8 +3759,8 @@ yybackup:
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
@@ -3692,8 +3815,9 @@ yyreduce:
switch (yyn)
{
case 5:
-/* Line 1269 of yacc.c. */
-#line 1380 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1440 "querytransformparser.ypp"
{
/* Suppress more compiler warnings about unused defines. */
@@ -3726,10 +3850,11 @@ yyreduce:
break;
case 7:
-/* Line 1269 of yacc.c. */
-#line 1412 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1472 "querytransformparser.ypp"
{
- QRegExp encNameRegExp(QLatin1String("[A-Za-z][A-Za-z0-9._\\-]*"));
+ const QRegExp encNameRegExp(QLatin1String("[A-Za-z][A-Za-z0-9._\\-]*"));
if(!encNameRegExp.exactMatch((yyvsp[(2) - (2)].sval)))
{
@@ -3745,8 +3870,9 @@ yyreduce:
break;
case 8:
-/* Line 1269 of yacc.c. */
-#line 1428 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1488 "querytransformparser.ypp"
{
/* In XSL-T, we can have dangling variable references, so resolve them
* before we proceed with other steps, such as checking circularity. */
@@ -3846,8 +3972,9 @@ yyreduce:
break;
case 10:
-/* Line 1269 of yacc.c. */
-#line 1528 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1588 "querytransformparser.ypp"
{
// TODO add to namespace context
parseInfo->moduleNamespace = parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[(3) - (6)].sval));
@@ -3855,8 +3982,9 @@ yyreduce:
break;
case 12:
-/* Line 1269 of yacc.c. */
-#line 1536 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1596 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if(parseInfo->hasSecondPrologPart)
@@ -3866,8 +3994,9 @@ yyreduce:
break;
case 13:
-/* Line 1269 of yacc.c. */
-#line 1543 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1603 "querytransformparser.ypp"
{
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, "
@@ -3876,8 +4005,9 @@ yyreduce:
break;
case 14:
-/* Line 1269 of yacc.c. */
-#line 1549 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1609 "querytransformparser.ypp"
{
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("Namespace declarations must occur before function, "
@@ -3886,8 +4016,9 @@ yyreduce:
break;
case 15:
-/* Line 1269 of yacc.c. */
-#line 1555 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1615 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if(parseInfo->hasSecondPrologPart)
@@ -3897,24 +4028,27 @@ yyreduce:
break;
case 17:
-/* Line 1269 of yacc.c. */
-#line 1565 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1625 "querytransformparser.ypp"
{
parseInfo->hasSecondPrologPart = true;
}
break;
case 18:
-/* Line 1269 of yacc.c. */
-#line 1569 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1629 "querytransformparser.ypp"
{
parseInfo->hasSecondPrologPart = true;
}
break;
case 19:
-/* Line 1269 of yacc.c. */
-#line 1573 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1633 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
parseInfo->hasSecondPrologPart = true;
@@ -3922,8 +4056,9 @@ yyreduce:
break;
case 20:
-/* Line 1269 of yacc.c. */
-#line 1596 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1656 "querytransformparser.ypp"
{
Template::Ptr temp(create(new Template(parseInfo->currentImportPrecedence, (yyvsp[(5) - (7)].sequenceType)), (yyloc), parseInfo));
@@ -3935,24 +4070,27 @@ yyreduce:
break;
case 21:
-/* Line 1269 of yacc.c. */
-#line 1606 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1666 "querytransformparser.ypp"
{
parseInfo->isParsingPattern = true;
}
break;
case 22:
-/* Line 1269 of yacc.c. */
-#line 1610 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1670 "querytransformparser.ypp"
{
parseInfo->isParsingPattern = false;
}
break;
case 23:
-/* Line 1269 of yacc.c. */
-#line 1619 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1679 "querytransformparser.ypp"
{
/* In this grammar branch, we're guaranteed to be a template rule, but
* may also be a named template. */
@@ -4008,16 +4146,18 @@ yyreduce:
break;
case 24:
-/* Line 1269 of yacc.c. */
-#line 1673 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1733 "querytransformparser.ypp"
{
(yyval.enums.Double) = std::numeric_limits<xsDouble>::quiet_NaN();
}
break;
case 25:
-/* Line 1269 of yacc.c. */
-#line 1678 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1738 "querytransformparser.ypp"
{
const AtomicValue::Ptr val(Decimal::fromLexical((yyvsp[(2) - (2)].sval)));
if(val->hasError())
@@ -4035,56 +4175,63 @@ yyreduce:
break;
case 26:
-/* Line 1269 of yacc.c. */
-#line 1694 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1754 "querytransformparser.ypp"
{
(yyval.qName) = QXmlName();
}
break;
case 28:
-/* Line 1269 of yacc.c. */
-#line 1700 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1760 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(2) - (2)].qName);
}
break;
case 30:
-/* Line 1269 of yacc.c. */
-#line 1706 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1766 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 32:
-/* Line 1269 of yacc.c. */
-#line 1711 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1771 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 33:
-/* Line 1269 of yacc.c. */
-#line 1715 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1775 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 34:
-/* Line 1269 of yacc.c. */
-#line 1719 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1779 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 39:
-/* Line 1269 of yacc.c. */
-#line 1730 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1790 "querytransformparser.ypp"
{
if(!(yyvsp[(6) - (7)].enums.Bool))
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
@@ -4098,7 +4245,7 @@ yyreduce:
else if ((yyvsp[(5) - (7)].sval) == CommonNamespaces::XML || (yyvsp[(3) - (7)].sval) == QLatin1String("xml"))
{
parseInfo->staticContext->error(QtXmlPatterns::tr(
- "The prefix %1 cannot be bound. By default, it is already bound "
+ "The prefix %1 can not be bound. By default, it is already bound "
"to the namespace %2.")
.arg(formatKeyword("xml"))
.arg(formatURI(CommonNamespaces::XML)),
@@ -4132,8 +4279,9 @@ yyreduce:
break;
case 40:
-/* Line 1269 of yacc.c. */
-#line 1776 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1836 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::BoundarySpaceDecl))
{
@@ -4149,24 +4297,27 @@ yyreduce:
break;
case 41:
-/* Line 1269 of yacc.c. */
-#line 1790 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1850 "querytransformparser.ypp"
{
(yyval.enums.boundarySpacePolicy) = StaticContext::BSPStrip;
}
break;
case 42:
-/* Line 1269 of yacc.c. */
-#line 1795 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1855 "querytransformparser.ypp"
{
(yyval.enums.boundarySpacePolicy) = StaticContext::BSPPreserve;
}
break;
case 45:
-/* Line 1269 of yacc.c. */
-#line 1804 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1864 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultElementNamespace))
{
@@ -4182,8 +4333,9 @@ yyreduce:
break;
case 46:
-/* Line 1269 of yacc.c. */
-#line 1819 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1879 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultFunctionNamespace))
{
@@ -4199,8 +4351,9 @@ yyreduce:
break;
case 47:
-/* Line 1269 of yacc.c. */
-#line 1833 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1893 "querytransformparser.ypp"
{
if((yyvsp[(3) - (5)].qName).prefix() == StandardPrefixes::empty)
{
@@ -4212,8 +4365,9 @@ yyreduce:
break;
case 48:
-/* Line 1269 of yacc.c. */
-#line 1843 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1903 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if(parseInfo->hasDeclaration(ParserContext::OrderingModeDecl))
@@ -4230,24 +4384,27 @@ yyreduce:
break;
case 49:
-/* Line 1269 of yacc.c. */
-#line 1858 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1918 "querytransformparser.ypp"
{
(yyval.enums.orderingMode) = StaticContext::Ordered;
}
break;
case 50:
-/* Line 1269 of yacc.c. */
-#line 1862 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1922 "querytransformparser.ypp"
{
(yyval.enums.orderingMode) = StaticContext::Unordered;
}
break;
case 51:
-/* Line 1269 of yacc.c. */
-#line 1867 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1927 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::EmptyOrderDecl))
{
@@ -4263,24 +4420,27 @@ yyreduce:
break;
case 52:
-/* Line 1269 of yacc.c. */
-#line 1881 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1941 "querytransformparser.ypp"
{
(yyval.enums.orderingEmptySequence) = StaticContext::Least;
}
break;
case 53:
-/* Line 1269 of yacc.c. */
-#line 1885 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1945 "querytransformparser.ypp"
{
(yyval.enums.orderingEmptySequence) = StaticContext::Greatest;
}
break;
case 54:
-/* Line 1269 of yacc.c. */
-#line 1891 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1951 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::CopyNamespacesDecl))
{
@@ -4295,40 +4455,45 @@ yyreduce:
break;
case 55:
-/* Line 1269 of yacc.c. */
-#line 1904 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1964 "querytransformparser.ypp"
{
parseInfo->preserveNamespacesMode = true;
}
break;
case 56:
-/* Line 1269 of yacc.c. */
-#line 1909 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1969 "querytransformparser.ypp"
{
parseInfo->preserveNamespacesMode = false;
}
break;
case 57:
-/* Line 1269 of yacc.c. */
-#line 1914 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1974 "querytransformparser.ypp"
{
parseInfo->inheritNamespacesMode = true;
}
break;
case 58:
-/* Line 1269 of yacc.c. */
-#line 1919 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1979 "querytransformparser.ypp"
{
parseInfo->inheritNamespacesMode = false;
}
break;
case 59:
-/* Line 1269 of yacc.c. */
-#line 1924 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 1984 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::DefaultCollationDecl))
{
@@ -4346,8 +4511,9 @@ yyreduce:
break;
case 60:
-/* Line 1269 of yacc.c. */
-#line 1940 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2000 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc), (yyvsp[(3) - (5)].enums.Bool));
if(parseInfo->hasDeclaration(ParserContext::BaseURIDecl))
@@ -4372,8 +4538,9 @@ yyreduce:
break;
case 61:
-/* Line 1269 of yacc.c. */
-#line 1963 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2023 "querytransformparser.ypp"
{
parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Import feature is not supported, "
"and therefore %1 declarations cannot occur.")
@@ -4383,8 +4550,9 @@ yyreduce:
break;
case 65:
-/* Line 1269 of yacc.c. */
-#line 1975 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2035 "querytransformparser.ypp"
{
if((yyvsp[(4) - (6)].sval).isEmpty())
{
@@ -4403,8 +4571,9 @@ yyreduce:
break;
case 72:
-/* Line 1269 of yacc.c. */
-#line 2002 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2062 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(3) - (9)].enums.Bool));
if(variableByName((yyvsp[(5) - (9)].qName), parseInfo))
@@ -4460,40 +4629,45 @@ yyreduce:
break;
case 73:
-/* Line 1269 of yacc.c. */
-#line 2056 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2116 "querytransformparser.ypp"
{
(yyval.expr).reset();
}
break;
case 74:
-/* Line 1269 of yacc.c. */
-#line 2060 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2120 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
break;
case 75:
-/* Line 1269 of yacc.c. */
-#line 2065 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2125 "querytransformparser.ypp"
{
(yyval.expr).reset();
}
break;
case 76:
-/* Line 1269 of yacc.c. */
-#line 2069 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2129 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
break;
case 77:
-/* Line 1269 of yacc.c. */
-#line 2074 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2134 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::ConstructionDecl))
{
@@ -4509,32 +4683,36 @@ yyreduce:
break;
case 78:
-/* Line 1269 of yacc.c. */
-#line 2088 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2148 "querytransformparser.ypp"
{
(yyval.enums.constructionMode) = StaticContext::CMStrip;
}
break;
case 79:
-/* Line 1269 of yacc.c. */
-#line 2092 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2152 "querytransformparser.ypp"
{
(yyval.enums.constructionMode) = StaticContext::CMPreserve;
}
break;
case 80:
-/* Line 1269 of yacc.c. */
-#line 2097 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2157 "querytransformparser.ypp"
{
(yyval.enums.slot) = parseInfo->currentExpressionSlot() - (yyvsp[(6) - (7)].functionArguments).count();
}
break;
case 81:
-/* Line 1269 of yacc.c. */
-#line 2101 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2161 "querytransformparser.ypp"
{
if(!(yyvsp[(3) - (11)].enums.Bool))
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(3) - (11)].enums.Bool));
@@ -4640,16 +4818,18 @@ yyreduce:
break;
case 82:
-/* Line 1269 of yacc.c. */
-#line 2205 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2265 "querytransformparser.ypp"
{
(yyval.functionArguments) = FunctionArgument::List();
}
break;
case 83:
-/* Line 1269 of yacc.c. */
-#line 2209 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2269 "querytransformparser.ypp"
{
FunctionArgument::List l;
l.append((yyvsp[(1) - (1)].functionArgument));
@@ -4658,8 +4838,9 @@ yyreduce:
break;
case 84:
-/* Line 1269 of yacc.c. */
-#line 2215 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2275 "querytransformparser.ypp"
{
FunctionArgument::List::const_iterator it((yyvsp[(1) - (3)].functionArguments).constBegin());
const FunctionArgument::List::const_iterator end((yyvsp[(1) - (3)].functionArguments).constEnd());
@@ -4682,8 +4863,9 @@ yyreduce:
break;
case 85:
-/* Line 1269 of yacc.c. */
-#line 2236 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2296 "querytransformparser.ypp"
{
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)));
@@ -4691,32 +4873,36 @@ yyreduce:
break;
case 86:
-/* Line 1269 of yacc.c. */
-#line 2242 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2302 "querytransformparser.ypp"
{
(yyval.expr).reset();
}
break;
case 88:
-/* Line 1269 of yacc.c. */
-#line 2248 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2308 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (3)].expr);
}
break;
case 91:
-/* Line 1269 of yacc.c. */
-#line 2264 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2324 "querytransformparser.ypp"
{
(yyval.expr) = create(new CombineNodes((yyvsp[(1) - (3)].expr), CombineNodes::Union, (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 93:
-/* Line 1269 of yacc.c. */
-#line 2270 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2330 "querytransformparser.ypp"
{
/* 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,
@@ -4728,8 +4914,9 @@ yyreduce:
break;
case 94:
-/* Line 1269 of yacc.c. */
-#line 2279 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2339 "querytransformparser.ypp"
{
/* /axis::node-test
* =>
@@ -4802,8 +4989,9 @@ yyreduce:
break;
case 95:
-/* Line 1269 of yacc.c. */
-#line 2349 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2409 "querytransformparser.ypp"
{
/* //axis::node-test
* =>
@@ -4817,24 +5005,27 @@ yyreduce:
break;
case 97:
-/* Line 1269 of yacc.c. */
-#line 2361 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2421 "querytransformparser.ypp"
{
createIdPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisParent, (yylsp[(2) - (3)]), parseInfo);
}
break;
case 98:
-/* Line 1269 of yacc.c. */
-#line 2365 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2425 "querytransformparser.ypp"
{
createIdPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[(2) - (3)]), parseInfo);
}
break;
case 99:
-/* Line 1269 of yacc.c. */
-#line 2370 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2430 "querytransformparser.ypp"
{
const Expression::List ands((yyvsp[(1) - (1)].expr)->operands());
const FunctionSignature::Ptr signature((yyvsp[(1) - (1)].expr)->as<FunctionCall>()->signature());
@@ -4905,24 +5096,27 @@ yyreduce:
break;
case 101:
-/* Line 1269 of yacc.c. */
-#line 2440 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2500 "querytransformparser.ypp"
{
(yyval.expr) = createPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisParent, (yylsp[(2) - (3)]), parseInfo);
}
break;
case 102:
-/* Line 1269 of yacc.c. */
-#line 2444 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2504 "querytransformparser.ypp"
{
(yyval.expr) = createPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[(2) - (3)]), parseInfo);
}
break;
case 103:
-/* Line 1269 of yacc.c. */
-#line 2449 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2509 "querytransformparser.ypp"
{
const Expression::Ptr expr(findAxisStep((yyvsp[(1) - (1)].expr)));
@@ -4968,16 +5162,18 @@ yyreduce:
break;
case 105:
-/* Line 1269 of yacc.c. */
-#line 2494 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2554 "querytransformparser.ypp"
{
(yyval.expr) = create(new ExpressionSequence((yyvsp[(1) - (1)].expressionList)), (yyloc), parseInfo);
}
break;
case 106:
-/* Line 1269 of yacc.c. */
-#line 2499 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2559 "querytransformparser.ypp"
{
Expression::List l;
l.append((yyvsp[(1) - (3)].expr));
@@ -4987,8 +5183,9 @@ yyreduce:
break;
case 107:
-/* Line 1269 of yacc.c. */
-#line 2506 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2566 "querytransformparser.ypp"
{
(yyvsp[(1) - (3)].expressionList).append((yyvsp[(3) - (3)].expr));
(yyval.expressionList) = (yyvsp[(1) - (3)].expressionList);
@@ -4996,16 +5193,18 @@ yyreduce:
break;
case 113:
-/* Line 1269 of yacc.c. */
-#line 2517 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2577 "querytransformparser.ypp"
{
(yyval.expr) = createDirAttributeValue((yyvsp[(3) - (4)].expressionList), parseInfo, (yyloc));
}
break;
case 114:
-/* Line 1269 of yacc.c. */
-#line 2522 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2582 "querytransformparser.ypp"
{
QVector<QXmlName> result;
result.append(QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default));
@@ -5014,32 +5213,36 @@ yyreduce:
break;
case 115:
-/* Line 1269 of yacc.c. */
-#line 2528 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2588 "querytransformparser.ypp"
{
(yyval.qNameVector) = (yyvsp[(2) - (2)].qNameVector);
}
break;
case 116:
-/* Line 1269 of yacc.c. */
-#line 2533 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2593 "querytransformparser.ypp"
{
(yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default);
}
break;
case 117:
-/* Line 1269 of yacc.c. */
-#line 2537 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2597 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(2) - (2)].qName);
}
break;
case 118:
-/* Line 1269 of yacc.c. */
-#line 2542 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2602 "querytransformparser.ypp"
{
QVector<QXmlName> result;
result.append((yyvsp[(1) - (1)].qName));
@@ -5048,8 +5251,9 @@ yyreduce:
break;
case 119:
-/* Line 1269 of yacc.c. */
-#line 2548 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2608 "querytransformparser.ypp"
{
(yyvsp[(1) - (3)].qNameVector).append((yyvsp[(3) - (3)].qName));
(yyval.qNameVector) = (yyvsp[(1) - (3)].qNameVector);
@@ -5057,16 +5261,18 @@ yyreduce:
break;
case 120:
-/* Line 1269 of yacc.c. */
-#line 2554 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2614 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(1) - (1)].qName);
}
break;
case 121:
-/* Line 1269 of yacc.c. */
-#line 2558 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2618 "querytransformparser.ypp"
{
if((yyvsp[(1) - (1)].sval) == QLatin1String("#current"))
(yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::current);
@@ -5092,8 +5298,9 @@ yyreduce:
break;
case 124:
-/* Line 1269 of yacc.c. */
-#line 2587 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2647 "querytransformparser.ypp"
{
/* 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);
@@ -5101,8 +5308,9 @@ yyreduce:
break;
case 125:
-/* Line 1269 of yacc.c. */
-#line 2591 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2651 "querytransformparser.ypp"
{
/* It is ok this appears after PositionalVar, because currentRangeSlot()
* uses a different "channel" than currentPositionSlot(), so they can't trash
@@ -5112,8 +5320,9 @@ yyreduce:
break;
case 126:
-/* Line 1269 of yacc.c. */
-#line 2598 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2658 "querytransformparser.ypp"
{
Q_ASSERT((yyvsp[(7) - (10)].expr));
Q_ASSERT((yyvsp[(10) - (10)].expr));
@@ -5148,16 +5357,18 @@ yyreduce:
break;
case 127:
-/* Line 1269 of yacc.c. */
-#line 2632 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2692 "querytransformparser.ypp"
{
pushVariable((yyvsp[(3) - (7)].qName), quantificationType((yyvsp[(4) - (7)].sequenceType)), (yyvsp[(7) - (7)].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo);
}
break;
case 128:
-/* Line 1269 of yacc.c. */
-#line 2635 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2695 "querytransformparser.ypp"
{
/* It is ok this appears after PositionalVar, because currentRangeSlot()
* uses a different "channel" than currentPositionSlot(), so they can't trash
@@ -5167,8 +5378,9 @@ yyreduce:
break;
case 129:
-/* Line 1269 of yacc.c. */
-#line 2642 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2702 "querytransformparser.ypp"
{
(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);
@@ -5180,16 +5392,18 @@ yyreduce:
break;
case 133:
-/* Line 1269 of yacc.c. */
-#line 2656 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2716 "querytransformparser.ypp"
{
(yyval.enums.slot) = -1;
}
break;
case 134:
-/* Line 1269 of yacc.c. */
-#line 2661 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2721 "querytransformparser.ypp"
{
pushVariable((yyvsp[(3) - (3)].qName), CommonSequenceTypes::ExactlyOneInteger, Expression::Ptr(),
VariableDeclaration::PositionalVariable, (yyloc), parseInfo);
@@ -5198,16 +5412,18 @@ yyreduce:
break;
case 135:
-/* Line 1269 of yacc.c. */
-#line 2668 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2728 "querytransformparser.ypp"
{
(yyval.expr) = pushVariable((yyvsp[(4) - (7)].qName), quantificationType((yyvsp[(5) - (7)].sequenceType)), (yyvsp[(7) - (7)].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo);
}
break;
case 136:
-/* Line 1269 of yacc.c. */
-#line 2672 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2732 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (9)].enums.Bool));
@@ -5218,14 +5434,16 @@ yyreduce:
break;
case 137:
-/* Line 1269 of yacc.c. */
-#line 2681 "querytransformparser.ypp"
+
+/* 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);}
break;
case 138:
-/* Line 1269 of yacc.c. */
-#line 2683 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2743 "querytransformparser.ypp"
{
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);
@@ -5234,8 +5452,9 @@ yyreduce:
break;
case 142:
-/* Line 1269 of yacc.c. */
-#line 2694 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2754 "querytransformparser.ypp"
{
if((yyvsp[(1) - (3)].orderSpecs).isEmpty())
(yyval.expr) = (yyvsp[(3) - (3)].expr);
@@ -5245,8 +5464,9 @@ yyreduce:
break;
case 143:
-/* Line 1269 of yacc.c. */
-#line 2702 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2762 "querytransformparser.ypp"
{
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);
@@ -5258,24 +5478,27 @@ yyreduce:
break;
case 144:
-/* Line 1269 of yacc.c. */
-#line 2712 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2772 "querytransformparser.ypp"
{
(yyval.orderSpecs) = OrderSpecTransfer::List();
}
break;
case 146:
-/* Line 1269 of yacc.c. */
-#line 2718 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2778 "querytransformparser.ypp"
{
(yyval.orderSpecs) = (yyvsp[(2) - (2)].orderSpecs);
}
break;
case 147:
-/* Line 1269 of yacc.c. */
-#line 2723 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2783 "querytransformparser.ypp"
{
OrderSpecTransfer::List list;
list += (yyvsp[(1) - (3)].orderSpecs);
@@ -5285,8 +5508,9 @@ yyreduce:
break;
case 148:
-/* Line 1269 of yacc.c. */
-#line 2730 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2790 "querytransformparser.ypp"
{
OrderSpecTransfer::List list;
list.append((yyvsp[(1) - (1)].orderSpec));
@@ -5295,16 +5519,18 @@ yyreduce:
break;
case 149:
-/* Line 1269 of yacc.c. */
-#line 2737 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2797 "querytransformparser.ypp"
{
(yyval.orderSpec) = OrderSpecTransfer((yyvsp[(1) - (4)].expr), OrderBy::OrderSpec((yyvsp[(2) - (4)].enums.sortDirection), (yyvsp[(3) - (4)].enums.orderingEmptySequence)));
}
break;
case 150:
-/* Line 1269 of yacc.c. */
-#line 2742 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2802 "querytransformparser.ypp"
{
/* Where does the specification state the default value is ascending?
*
@@ -5327,32 +5553,36 @@ yyreduce:
break;
case 151:
-/* Line 1269 of yacc.c. */
-#line 2763 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2823 "querytransformparser.ypp"
{
(yyval.enums.sortDirection) = OrderBy::OrderSpec::Ascending;
}
break;
case 152:
-/* Line 1269 of yacc.c. */
-#line 2768 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2828 "querytransformparser.ypp"
{
(yyval.enums.sortDirection) = OrderBy::OrderSpec::Descending;
}
break;
case 153:
-/* Line 1269 of yacc.c. */
-#line 2773 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2833 "querytransformparser.ypp"
{
(yyval.enums.orderingEmptySequence) = parseInfo->staticContext->orderingEmptySequence();
}
break;
case 156:
-/* Line 1269 of yacc.c. */
-#line 2780 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2840 "querytransformparser.ypp"
{
if(parseInfo->isXSLT())
resolveAndCheckCollation<ReportContext::XTDE1035>((yyvsp[(2) - (2)].sval), parseInfo, (yyloc));
@@ -5362,8 +5592,9 @@ yyreduce:
break;
case 157:
-/* Line 1269 of yacc.c. */
-#line 2787 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2847 "querytransformparser.ypp"
{
/* We do nothing. We don't use collations, and we have this non-terminal
* in order to accept expressions. */
@@ -5371,24 +5602,27 @@ yyreduce:
break;
case 158:
-/* Line 1269 of yacc.c. */
-#line 2793 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2853 "querytransformparser.ypp"
{
parseInfo->orderStability.push(OrderBy::StableOrder);
}
break;
case 159:
-/* Line 1269 of yacc.c. */
-#line 2797 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2857 "querytransformparser.ypp"
{
parseInfo->orderStability.push(OrderBy::UnstableOrder);
}
break;
case 162:
-/* Line 1269 of yacc.c. */
-#line 2805 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2865 "querytransformparser.ypp"
{
pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
@@ -5396,14 +5630,16 @@ yyreduce:
break;
case 163:
-/* Line 1269 of yacc.c. */
-#line 2809 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2869 "querytransformparser.ypp"
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
break;
case 164:
-/* Line 1269 of yacc.c. */
-#line 2811 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2871 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot),
@@ -5413,8 +5649,9 @@ yyreduce:
break;
case 165:
-/* Line 1269 of yacc.c. */
-#line 2819 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2879 "querytransformparser.ypp"
{
(yyval.expr) = pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
@@ -5422,14 +5659,16 @@ yyreduce:
break;
case 166:
-/* Line 1269 of yacc.c. */
-#line 2823 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2883 "querytransformparser.ypp"
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
break;
case 167:
-/* Line 1269 of yacc.c. */
-#line 2825 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2885 "querytransformparser.ypp"
{
(yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot),
QuantifiedExpression::Some, (yyvsp[(7) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo);
@@ -5438,8 +5677,9 @@ yyreduce:
break;
case 169:
-/* Line 1269 of yacc.c. */
-#line 2834 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2894 "querytransformparser.ypp"
{
pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
@@ -5447,14 +5687,16 @@ yyreduce:
break;
case 170:
-/* Line 1269 of yacc.c. */
-#line 2838 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2898 "querytransformparser.ypp"
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
break;
case 171:
-/* Line 1269 of yacc.c. */
-#line 2840 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2900 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot),
@@ -5464,8 +5706,9 @@ yyreduce:
break;
case 172:
-/* Line 1269 of yacc.c. */
-#line 2848 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2908 "querytransformparser.ypp"
{
(yyval.expr) = pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
@@ -5473,14 +5716,16 @@ yyreduce:
break;
case 173:
-/* Line 1269 of yacc.c. */
-#line 2852 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2912 "querytransformparser.ypp"
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
break;
case 174:
-/* Line 1269 of yacc.c. */
-#line 2854 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2914 "querytransformparser.ypp"
{
(yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot),
QuantifiedExpression::Every, (yyvsp[(7) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo);
@@ -5489,24 +5734,27 @@ yyreduce:
break;
case 176:
-/* Line 1269 of yacc.c. */
-#line 2863 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2923 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
break;
case 177:
-/* Line 1269 of yacc.c. */
-#line 2890 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2950 "querytransformparser.ypp"
{
parseInfo->typeswitchSource.push((yyvsp[(3) - (4)].expr));
}
break;
case 178:
-/* Line 1269 of yacc.c. */
-#line 2894 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2954 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
parseInfo->typeswitchSource.pop();
@@ -5515,8 +5763,9 @@ yyreduce:
break;
case 179:
-/* Line 1269 of yacc.c. */
-#line 2901 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2961 "querytransformparser.ypp"
{
if(!(yyvsp[(2) - (3)].qName).isNull())
{
@@ -5527,8 +5776,9 @@ yyreduce:
break;
case 180:
-/* Line 1269 of yacc.c. */
-#line 2909 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2969 "querytransformparser.ypp"
{
/* The variable shouldn't be in-scope for other case branches. */
if(!(yyvsp[(2) - (6)].qName).isNull())
@@ -5537,8 +5787,9 @@ yyreduce:
break;
case 181:
-/* Line 1269 of yacc.c. */
-#line 2915 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2975 "querytransformparser.ypp"
{
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);
@@ -5546,32 +5797,36 @@ yyreduce:
break;
case 184:
-/* Line 1269 of yacc.c. */
-#line 2924 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2984 "querytransformparser.ypp"
{
(yyval.qName) = QXmlName();
}
break;
case 185:
-/* Line 1269 of yacc.c. */
-#line 2929 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2989 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(2) - (3)].qName);
}
break;
case 186:
-/* Line 1269 of yacc.c. */
-#line 2934 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2994 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(3) - (3)].expr);
}
break;
case 187:
-/* Line 1269 of yacc.c. */
-#line 2938 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 2998 "querytransformparser.ypp"
{
if(!(yyvsp[(3) - (3)].qName).isNull())
{
@@ -5583,8 +5838,9 @@ yyreduce:
break;
case 188:
-/* Line 1269 of yacc.c. */
-#line 2947 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3007 "querytransformparser.ypp"
{
if(!(yyvsp[(3) - (6)].qName).isNull())
parseInfo->finalizePushedVariable();
@@ -5593,8 +5849,9 @@ yyreduce:
break;
case 189:
-/* Line 1269 of yacc.c. */
-#line 2954 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3014 "querytransformparser.ypp"
{
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);
@@ -5602,8 +5859,9 @@ yyreduce:
break;
case 191:
-/* Line 1269 of yacc.c. */
-#line 2961 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3021 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new OrExpression((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
@@ -5611,8 +5869,9 @@ yyreduce:
break;
case 193:
-/* Line 1269 of yacc.c. */
-#line 2968 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3028 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new AndExpression((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
@@ -5620,8 +5879,9 @@ yyreduce:
break;
case 199:
-/* Line 1269 of yacc.c. */
-#line 2980 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3040 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new RangeExpression((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
@@ -5629,8 +5889,9 @@ yyreduce:
break;
case 201:
-/* Line 1269 of yacc.c. */
-#line 2987 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3047 "querytransformparser.ypp"
{
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);
@@ -5638,20 +5899,23 @@ yyreduce:
break;
case 202:
-/* Line 1269 of yacc.c. */
-#line 2992 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3052 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Add;}
break;
case 203:
-/* Line 1269 of yacc.c. */
-#line 2993 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3053 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Substract;}
break;
case 205:
-/* Line 1269 of yacc.c. */
-#line 2997 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3057 "querytransformparser.ypp"
{
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);
@@ -5659,32 +5923,37 @@ yyreduce:
break;
case 206:
-/* Line 1269 of yacc.c. */
-#line 3002 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3062 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Multiply;}
break;
case 207:
-/* Line 1269 of yacc.c. */
-#line 3003 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3063 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Div;}
break;
case 208:
-/* Line 1269 of yacc.c. */
-#line 3004 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3064 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::IDiv;}
break;
case 209:
-/* Line 1269 of yacc.c. */
-#line 3005 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3065 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Mod;}
break;
case 211:
-/* Line 1269 of yacc.c. */
-#line 3009 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3069 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10
| QXmlQuery::XPath20
@@ -5696,8 +5965,9 @@ yyreduce:
break;
case 213:
-/* Line 1269 of yacc.c. */
-#line 3020 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3080 "querytransformparser.ypp"
{
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);
@@ -5705,24 +5975,27 @@ yyreduce:
break;
case 216:
-/* Line 1269 of yacc.c. */
-#line 3029 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3089 "querytransformparser.ypp"
{
(yyval.enums.combinedNodeOp) = CombineNodes::Intersect;
}
break;
case 217:
-/* Line 1269 of yacc.c. */
-#line 3033 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3093 "querytransformparser.ypp"
{
(yyval.enums.combinedNodeOp) = CombineNodes::Except;
}
break;
case 219:
-/* Line 1269 of yacc.c. */
-#line 3039 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3099 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new InstanceOf((yyvsp[(1) - (4)].expr),
@@ -5731,8 +6004,9 @@ yyreduce:
break;
case 221:
-/* Line 1269 of yacc.c. */
-#line 3047 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3107 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new TreatAs((yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].sequenceType)), (yyloc), parseInfo);
@@ -5740,8 +6014,9 @@ yyreduce:
break;
case 223:
-/* Line 1269 of yacc.c. */
-#line 3054 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3114 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new CastableAs((yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].sequenceType)), (yyloc), parseInfo);
@@ -5749,8 +6024,9 @@ yyreduce:
break;
case 225:
-/* Line 1269 of yacc.c. */
-#line 3061 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3121 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new CastAs((yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].sequenceType)), (yyloc), parseInfo);
@@ -5758,8 +6034,9 @@ yyreduce:
break;
case 227:
-/* Line 1269 of yacc.c. */
-#line 3068 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3128 "querytransformparser.ypp"
{
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);
@@ -5767,24 +6044,27 @@ yyreduce:
break;
case 228:
-/* Line 1269 of yacc.c. */
-#line 3074 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3134 "querytransformparser.ypp"
{
(yyval.enums.mathOperator) = AtomicMathematician::Add;
}
break;
case 229:
-/* Line 1269 of yacc.c. */
-#line 3078 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3138 "querytransformparser.ypp"
{
(yyval.enums.mathOperator) = AtomicMathematician::Substract;
}
break;
case 233:
-/* Line 1269 of yacc.c. */
-#line 3087 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3147 "querytransformparser.ypp"
{
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);
@@ -5792,114 +6072,132 @@ yyreduce:
break;
case 234:
-/* Line 1269 of yacc.c. */
-#line 3092 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3152 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;}
break;
case 235:
-/* Line 1269 of yacc.c. */
-#line 3093 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3153 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;}
break;
case 236:
-/* Line 1269 of yacc.c. */
-#line 3094 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3154 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;}
break;
case 237:
-/* Line 1269 of yacc.c. */
-#line 3095 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3155 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;}
break;
case 238:
-/* Line 1269 of yacc.c. */
-#line 3096 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3156 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;}
break;
case 239:
-/* Line 1269 of yacc.c. */
-#line 3097 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3157 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;}
break;
case 240:
-/* Line 1269 of yacc.c. */
-#line 3100 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3160 "querytransformparser.ypp"
{
(yyval.expr) = create(new ValueComparison((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.valueOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 241:
-/* Line 1269 of yacc.c. */
-#line 3104 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3164 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;}
break;
case 242:
-/* Line 1269 of yacc.c. */
-#line 3105 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3165 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;}
break;
case 243:
-/* Line 1269 of yacc.c. */
-#line 3106 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3166 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;}
break;
case 244:
-/* Line 1269 of yacc.c. */
-#line 3107 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3167 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;}
break;
case 245:
-/* Line 1269 of yacc.c. */
-#line 3108 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3168 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;}
break;
case 246:
-/* Line 1269 of yacc.c. */
-#line 3109 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3169 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;}
break;
case 247:
-/* Line 1269 of yacc.c. */
-#line 3112 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3172 "querytransformparser.ypp"
{
(yyval.expr) = create(new NodeComparison((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.nodeOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 248:
-/* Line 1269 of yacc.c. */
-#line 3116 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3176 "querytransformparser.ypp"
{(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Is;}
break;
case 249:
-/* Line 1269 of yacc.c. */
-#line 3117 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3177 "querytransformparser.ypp"
{(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Precedes;}
break;
case 250:
-/* Line 1269 of yacc.c. */
-#line 3118 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3178 "querytransformparser.ypp"
{(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Follows;}
break;
case 251:
-/* Line 1269 of yacc.c. */
-#line 3121 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3181 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Validation Feature is not supported. "
@@ -5913,26 +6211,30 @@ yyreduce:
break;
case 252:
-/* Line 1269 of yacc.c. */
-#line 3134 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3194 "querytransformparser.ypp"
{(yyval.enums.validationMode) = Validate::Strict;}
break;
case 253:
-/* Line 1269 of yacc.c. */
-#line 3135 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3195 "querytransformparser.ypp"
{(yyval.enums.validationMode) = Validate::Strict;}
break;
case 254:
-/* Line 1269 of yacc.c. */
-#line 3136 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3196 "querytransformparser.ypp"
{(yyval.enums.validationMode) = Validate::Lax;}
break;
case 255:
-/* Line 1269 of yacc.c. */
-#line 3139 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3199 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
/* We don't support any pragmas, so we only do the
@@ -5951,32 +6253,36 @@ yyreduce:
break;
case 256:
-/* Line 1269 of yacc.c. */
-#line 3156 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3216 "querytransformparser.ypp"
{
(yyval.expr).reset();
}
break;
case 257:
-/* Line 1269 of yacc.c. */
-#line 3160 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3220 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (3)].expr);
}
break;
case 260:
-/* Line 1269 of yacc.c. */
-#line 3168 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3228 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 263:
-/* Line 1269 of yacc.c. */
-#line 3176 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3236 "querytransformparser.ypp"
{
/* 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);
@@ -5984,16 +6290,18 @@ yyreduce:
break;
case 264:
-/* Line 1269 of yacc.c. */
-#line 3182 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3242 "querytransformparser.ypp"
{
(yyval.expr) = createSlashSlashPath(createRootExpression(parseInfo, (yyloc)), (yyvsp[(2) - (2)].expr), (yyloc), parseInfo);
}
break;
case 265:
-/* Line 1269 of yacc.c. */
-#line 3186 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3246 "querytransformparser.ypp"
{
/* This is "/". That is, fn:root(self::node()) treat as document-node(). */
(yyval.expr) = createRootExpression(parseInfo, (yyloc));
@@ -6001,16 +6309,18 @@ yyreduce:
break;
case 268:
-/* Line 1269 of yacc.c. */
-#line 3196 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3256 "querytransformparser.ypp"
{
(yyval.expr) = create(new Path((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), (yyvsp[(2) - (3)].enums.pathKind)), (yyloc), parseInfo);
}
break;
case 269:
-/* Line 1269 of yacc.c. */
-#line 3200 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3260 "querytransformparser.ypp"
{
const Expression::Ptr orderBy(createReturnOrderBy((yyvsp[(4) - (7)].orderSpecs), (yyvsp[(6) - (7)].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo));
@@ -6022,32 +6332,36 @@ yyreduce:
break;
case 270:
-/* Line 1269 of yacc.c. */
-#line 3209 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3269 "querytransformparser.ypp"
{
(yyval.expr) = createSlashSlashPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), (yyloc), parseInfo);
}
break;
case 271:
-/* Line 1269 of yacc.c. */
-#line 3214 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3274 "querytransformparser.ypp"
{
(yyval.expr) = NodeSortExpression::wrapAround((yyvsp[(1) - (1)].expr), parseInfo->staticContext);
}
break;
case 273:
-/* Line 1269 of yacc.c. */
-#line 3219 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3279 "querytransformparser.ypp"
{
(yyval.expr) = create(new CurrentItemStore((yyvsp[(2) - (2)].expr)), (yyloc), parseInfo);
}
break;
case 274:
-/* Line 1269 of yacc.c. */
-#line 3223 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3283 "querytransformparser.ypp"
{
const xsDouble version = (yyvsp[(1) - (1)].sval).toDouble();
@@ -6058,8 +6372,9 @@ yyreduce:
break;
case 275:
-/* Line 1269 of yacc.c. */
-#line 3231 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3291 "querytransformparser.ypp"
{
if((yyvsp[(2) - (3)].enums.Double) < 2)
(yyval.expr) = createCompatStore((yyvsp[(3) - (3)].expr), (yyloc), parseInfo);
@@ -6069,8 +6384,9 @@ yyreduce:
break;
case 276:
-/* Line 1269 of yacc.c. */
-#line 3238 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3298 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XSLT20, parseInfo, (yyloc));
Q_ASSERT(!(yyvsp[(2) - (5)].sval).isEmpty());
@@ -6079,8 +6395,9 @@ yyreduce:
break;
case 277:
-/* Line 1269 of yacc.c. */
-#line 3245 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3305 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc));
parseInfo->resolvers.push(parseInfo->staticContext->namespaceBindings());
@@ -6093,8 +6410,9 @@ yyreduce:
break;
case 278:
-/* Line 1269 of yacc.c. */
-#line 3256 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3316 "querytransformparser.ypp"
{
parseInfo->staticContext->setNamespaceBindings(parseInfo->resolvers.pop());
(yyval.expr) = (yyvsp[(8) - (9)].expr);
@@ -6102,8 +6420,9 @@ yyreduce:
break;
case 279:
-/* Line 1269 of yacc.c. */
-#line 3261 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3321 "querytransformparser.ypp"
{
(yyval.expr) = create(new CallTemplate((yyvsp[(2) - (5)].qName), parseInfo->templateWithParams), (yyloc), parseInfo);
parseInfo->templateWithParametersHandled();
@@ -6112,59 +6431,67 @@ yyreduce:
break;
case 280:
-/* Line 1269 of yacc.c. */
-#line 3268 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3328 "querytransformparser.ypp"
{
parseInfo->startParsingWithParam();
}
break;
case 281:
-/* Line 1269 of yacc.c. */
-#line 3272 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3332 "querytransformparser.ypp"
{
parseInfo->endParsingWithParam();
}
break;
case 282:
-/* Line 1269 of yacc.c. */
-#line 3277 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3337 "querytransformparser.ypp"
{
}
break;
case 283:
-/* Line 1269 of yacc.c. */
-#line 3280 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3340 "querytransformparser.ypp"
{
}
break;
case 284:
-/* Line 1269 of yacc.c. */
-#line 3283 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3343 "querytransformparser.ypp"
{
}
break;
case 285:
-/* Line 1269 of yacc.c. */
-#line 3287 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3347 "querytransformparser.ypp"
{
}
break;
case 286:
-/* Line 1269 of yacc.c. */
-#line 3290 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3350 "querytransformparser.ypp"
{
}
break;
case 287:
-/* Line 1269 of yacc.c. */
-#line 3294 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3354 "querytransformparser.ypp"
{
/* Note, this grammar rule is invoked for @c xsl:param @em and @c
* xsl:with-param. */
@@ -6231,72 +6558,81 @@ yyreduce:
break;
case 288:
-/* Line 1269 of yacc.c. */
-#line 3359 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3419 "querytransformparser.ypp"
{
(yyval.enums.Bool) = false;
}
break;
case 289:
-/* Line 1269 of yacc.c. */
-#line 3363 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3423 "querytransformparser.ypp"
{
(yyval.enums.Bool) = true;
}
break;
case 290:
-/* Line 1269 of yacc.c. */
-#line 3368 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3428 "querytransformparser.ypp"
{
(yyval.expr) = Expression::Ptr();
}
break;
case 291:
-/* Line 1269 of yacc.c. */
-#line 3372 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3432 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
break;
case 292:
-/* Line 1269 of yacc.c. */
-#line 3381 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3441 "querytransformparser.ypp"
{
(yyval.enums.pathKind) = Path::RegularPath;
}
break;
case 293:
-/* Line 1269 of yacc.c. */
-#line 3385 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3445 "querytransformparser.ypp"
{
(yyval.enums.pathKind) = Path::XSLTForEach;
}
break;
case 294:
-/* Line 1269 of yacc.c. */
-#line 3389 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3449 "querytransformparser.ypp"
{
(yyval.enums.pathKind) = Path::ForApplyTemplate;
}
break;
case 296:
-/* Line 1269 of yacc.c. */
-#line 3395 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3455 "querytransformparser.ypp"
{
(yyval.expr) = create(GenericPredicate::create((yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr), parseInfo->staticContext, fromYYLTYPE((yyloc), parseInfo)), (yyloc), parseInfo);
}
break;
case 299:
-/* Line 1269 of yacc.c. */
-#line 3403 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3463 "querytransformparser.ypp"
{
if((yyvsp[(1) - (1)].enums.axis) == QXmlNodeModelIndex::AxisAttribute)
parseInfo->nodeTestSource = BuiltinTypes::attribute;
@@ -6304,8 +6640,9 @@ yyreduce:
break;
case 300:
-/* Line 1269 of yacc.c. */
-#line 3408 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3468 "querytransformparser.ypp"
{
if((yyvsp[(3) - (3)].itemType))
{
@@ -6333,8 +6670,9 @@ yyreduce:
break;
case 304:
-/* Line 1269 of yacc.c. */
-#line 3438 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3498 "querytransformparser.ypp"
{
if((yyvsp[(1) - (2)].enums.axis) == QXmlNodeModelIndex::AxisNamespace)
{
@@ -6380,88 +6718,102 @@ yyreduce:
break;
case 305:
-/* Line 1269 of yacc.c. */
-#line 3481 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3541 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestorOrSelf ;}
break;
case 306:
-/* Line 1269 of yacc.c. */
-#line 3482 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3542 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestor ;}
break;
case 307:
-/* Line 1269 of yacc.c. */
-#line 3483 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3543 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisAttribute ;}
break;
case 308:
-/* Line 1269 of yacc.c. */
-#line 3484 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3544 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisChild ;}
break;
case 309:
-/* Line 1269 of yacc.c. */
-#line 3485 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3545 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendantOrSelf;}
break;
case 310:
-/* Line 1269 of yacc.c. */
-#line 3486 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3546 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendant ;}
break;
case 311:
-/* Line 1269 of yacc.c. */
-#line 3487 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3547 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowing ;}
break;
case 312:
-/* Line 1269 of yacc.c. */
-#line 3488 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3548 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisPreceding ;}
break;
case 313:
-/* Line 1269 of yacc.c. */
-#line 3489 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3549 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowingSibling;}
break;
case 314:
-/* Line 1269 of yacc.c. */
-#line 3490 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3550 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisPrecedingSibling;}
break;
case 315:
-/* Line 1269 of yacc.c. */
-#line 3491 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3551 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisParent ;}
break;
case 316:
-/* Line 1269 of yacc.c. */
-#line 3492 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3552 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisSelf ;}
break;
case 317:
-/* Line 1269 of yacc.c. */
-#line 3495 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3555 "querytransformparser.ypp"
{
parseInfo->nodeTestSource = BuiltinTypes::attribute;
}
break;
case 318:
-/* Line 1269 of yacc.c. */
-#line 3499 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3559 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20 | QXmlQuery::XmlSchema11IdentityConstraintField), parseInfo, (yyloc));
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[(3) - (3)].itemType)), (yyloc), parseInfo);
@@ -6471,8 +6823,9 @@ yyreduce:
break;
case 319:
-/* Line 1269 of yacc.c. */
-#line 3506 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3566 "querytransformparser.ypp"
{
ItemType::Ptr nodeTest;
@@ -6486,48 +6839,54 @@ yyreduce:
break;
case 320:
-/* Line 1269 of yacc.c. */
-#line 3517 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3577 "querytransformparser.ypp"
{
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[(1) - (1)].itemType)), (yyloc), parseInfo);
}
break;
case 322:
-/* Line 1269 of yacc.c. */
-#line 3524 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3584 "querytransformparser.ypp"
{
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::node), (yyloc), parseInfo);
}
break;
case 324:
-/* Line 1269 of yacc.c. */
-#line 3530 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3590 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
}
break;
case 325:
-/* Line 1269 of yacc.c. */
-#line 3535 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3595 "querytransformparser.ypp"
{
(yyval.itemType) = QNameTest::create(parseInfo->nodeTestSource, (yyvsp[(1) - (1)].qName));
}
break;
case 327:
-/* Line 1269 of yacc.c. */
-#line 3541 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3601 "querytransformparser.ypp"
{
(yyval.itemType) = parseInfo->nodeTestSource;
}
break;
case 328:
-/* Line 1269 of yacc.c. */
-#line 3545 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3605 "querytransformparser.ypp"
{
const NamePool::Ptr np(parseInfo->staticContext->namePool());
const ReflectYYLTYPE ryy((yyloc), parseInfo);
@@ -6539,8 +6898,9 @@ yyreduce:
break;
case 329:
-/* Line 1269 of yacc.c. */
-#line 3554 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3614 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
const QXmlName::LocalNameCode c = parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[(1) - (1)].sval));
@@ -6549,8 +6909,9 @@ yyreduce:
break;
case 331:
-/* Line 1269 of yacc.c. */
-#line 3562 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3622 "querytransformparser.ypp"
{
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);
@@ -6558,8 +6919,9 @@ yyreduce:
break;
case 339:
-/* Line 1269 of yacc.c. */
-#line 3575 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3635 "querytransformparser.ypp"
{
(yyval.expr) = create(new ApplyTemplate(parseInfo->modeFor((yyvsp[(2) - (5)].qName)),
parseInfo->templateWithParams,
@@ -6571,16 +6933,18 @@ yyreduce:
break;
case 341:
-/* Line 1269 of yacc.c. */
-#line 3586 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3646 "querytransformparser.ypp"
{
(yyval.expr) = create(new Literal(AtomicString::fromValue((yyvsp[(1) - (1)].sval))), (yyloc), parseInfo);
}
break;
case 342:
-/* Line 1269 of yacc.c. */
-#line 3591 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3651 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = createNumericLiteral<Double>((yyvsp[(1) - (1)].sval), (yyloc), parseInfo);
@@ -6588,8 +6952,9 @@ yyreduce:
break;
case 343:
-/* Line 1269 of yacc.c. */
-#line 3596 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3656 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = createNumericLiteral<Numeric>((yyvsp[(1) - (1)].sval), (yyloc), parseInfo);
@@ -6597,8 +6962,9 @@ yyreduce:
break;
case 344:
-/* Line 1269 of yacc.c. */
-#line 3602 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3662 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = resolveVariable((yyvsp[(2) - (2)].qName), (yyloc), parseInfo, false);
@@ -6606,8 +6972,9 @@ yyreduce:
break;
case 345:
-/* Line 1269 of yacc.c. */
-#line 3608 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3668 "querytransformparser.ypp"
{
/* See: http://www.w3.org/TR/xpath20/#id-variables */
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(QString(), (yyvsp[(1) - (1)].sval));
@@ -6615,16 +6982,18 @@ yyreduce:
break;
case 346:
-/* Line 1269 of yacc.c. */
-#line 3613 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3673 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(1) - (1)].qName);
}
break;
case 347:
-/* Line 1269 of yacc.c. */
-#line 3618 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3678 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = (yyvsp[(2) - (3)].expr);
@@ -6632,8 +7001,9 @@ yyreduce:
break;
case 348:
-/* Line 1269 of yacc.c. */
-#line 3623 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3683 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new EmptySequence, (yyloc), parseInfo);
@@ -6641,24 +7011,27 @@ yyreduce:
break;
case 349:
-/* Line 1269 of yacc.c. */
-#line 3629 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3689 "querytransformparser.ypp"
{
(yyval.expr) = create(new ContextItem(), (yyloc), parseInfo);
}
break;
case 350:
-/* Line 1269 of yacc.c. */
-#line 3634 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3694 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
break;
case 351:
-/* Line 1269 of yacc.c. */
-#line 3639 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3699 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
if(XPathHelper::isReservedNamespace((yyvsp[(1) - (4)].qName).namespaceURI()) || (yyvsp[(1) - (4)].qName).namespaceURI() == StandardNamespaces::InternalXSLT)
@@ -6689,16 +7062,18 @@ yyreduce:
break;
case 352:
-/* Line 1269 of yacc.c. */
-#line 3668 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3728 "querytransformparser.ypp"
{
(yyval.expressionList) = Expression::List();
}
break;
case 353:
-/* Line 1269 of yacc.c. */
-#line 3673 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3733 "querytransformparser.ypp"
{
Expression::List list;
list.append((yyvsp[(1) - (1)].expr));
@@ -6707,16 +7082,18 @@ yyreduce:
break;
case 355:
-/* Line 1269 of yacc.c. */
-#line 3682 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3742 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 360:
-/* Line 1269 of yacc.c. */
-#line 3726 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3786 "querytransformparser.ypp"
{
(yyval.enums.tokenizerPosition) = parseInfo->tokenizer->commenceScanOnly();
parseInfo->scanOnlyStack.push(true);
@@ -6724,8 +7101,9 @@ yyreduce:
break;
case 361:
-/* Line 1269 of yacc.c. */
-#line 3735 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3795 "querytransformparser.ypp"
{
++parseInfo->elementConstructorDepth;
Expression::List constructors;
@@ -6872,8 +7250,9 @@ yyreduce:
break;
case 362:
-/* Line 1269 of yacc.c. */
-#line 3881 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 3941 "querytransformparser.ypp"
{
/* We add the content constructor after the attribute constructors. This might result
* in nested ExpressionSequences, but it will be optimized away later on. */
@@ -6971,16 +7350,18 @@ yyreduce:
break;
case 363:
-/* Line 1269 of yacc.c. */
-#line 3977 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4037 "querytransformparser.ypp"
{
(yyval.expr) = create(new EmptySequence(), (yyloc), parseInfo);
}
break;
case 364:
-/* Line 1269 of yacc.c. */
-#line 3981 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4041 "querytransformparser.ypp"
{
if(!(yyvsp[(4) - (5)].qName).isLexicallyEqual(parseInfo->tagStack.top()))
{
@@ -7001,16 +7382,18 @@ yyreduce:
break;
case 365:
-/* Line 1269 of yacc.c. */
-#line 4000 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4060 "querytransformparser.ypp"
{
(yyval.attributeHolders) = AttributeHolderVector();
}
break;
case 366:
-/* Line 1269 of yacc.c. */
-#line 4004 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4064 "querytransformparser.ypp"
{
(yyvsp[(1) - (2)].attributeHolders).append((yyvsp[(2) - (2)].attributeHolder));
(yyval.attributeHolders) = (yyvsp[(1) - (2)].attributeHolders);
@@ -7018,40 +7401,45 @@ yyreduce:
break;
case 367:
-/* Line 1269 of yacc.c. */
-#line 4010 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4070 "querytransformparser.ypp"
{
(yyval.attributeHolder) = qMakePair((yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].expr));
}
break;
case 368:
-/* Line 1269 of yacc.c. */
-#line 4015 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4075 "querytransformparser.ypp"
{
(yyval.expr) = createDirAttributeValue((yyvsp[(2) - (3)].expressionList), parseInfo, (yyloc));
}
break;
case 369:
-/* Line 1269 of yacc.c. */
-#line 4020 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4080 "querytransformparser.ypp"
{
(yyval.expr) = createDirAttributeValue((yyvsp[(2) - (3)].expressionList), parseInfo, (yyloc));
}
break;
case 370:
-/* Line 1269 of yacc.c. */
-#line 4025 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4085 "querytransformparser.ypp"
{
(yyval.expressionList) = Expression::List();
}
break;
case 371:
-/* Line 1269 of yacc.c. */
-#line 4029 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4089 "querytransformparser.ypp"
{
Expression::Ptr content((yyvsp[(1) - (2)].expr));
@@ -7064,8 +7452,9 @@ yyreduce:
break;
case 372:
-/* Line 1269 of yacc.c. */
-#line 4039 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4099 "querytransformparser.ypp"
{
(yyvsp[(2) - (2)].expressionList).prepend(create(new Literal(AtomicString::fromValue((yyvsp[(1) - (2)].sval))), (yyloc), parseInfo));
(yyval.expressionList) = (yyvsp[(2) - (2)].expressionList);
@@ -7073,8 +7462,9 @@ yyreduce:
break;
case 373:
-/* Line 1269 of yacc.c. */
-#line 4045 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4105 "querytransformparser.ypp"
{
(yyval.expressionList) = Expression::List();
parseInfo->isPreviousEnclosedExpr = false;
@@ -7082,8 +7472,9 @@ yyreduce:
break;
case 374:
-/* Line 1269 of yacc.c. */
-#line 4050 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4110 "querytransformparser.ypp"
{
(yyvsp[(1) - (2)].expressionList).append((yyvsp[(2) - (2)].expr));
(yyval.expressionList) = (yyvsp[(1) - (2)].expressionList);
@@ -7092,8 +7483,9 @@ yyreduce:
break;
case 375:
-/* Line 1269 of yacc.c. */
-#line 4056 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4116 "querytransformparser.ypp"
{
if(parseInfo->staticContext->boundarySpacePolicy() == StaticContext::BSPStrip &&
XPathHelper::isWhitespaceOnly((yyvsp[(2) - (2)].sval)))
@@ -7110,8 +7502,9 @@ yyreduce:
break;
case 376:
-/* Line 1269 of yacc.c. */
-#line 4070 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4130 "querytransformparser.ypp"
{
(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);
@@ -7120,8 +7513,9 @@ yyreduce:
break;
case 377:
-/* Line 1269 of yacc.c. */
-#line 4076 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4136 "querytransformparser.ypp"
{
/* 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.
@@ -7140,16 +7534,18 @@ yyreduce:
break;
case 378:
-/* Line 1269 of yacc.c. */
-#line 4093 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4153 "querytransformparser.ypp"
{
(yyval.expr) = create(new CommentConstructor(create(new Literal(AtomicString::fromValue((yyvsp[(2) - (2)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo);
}
break;
case 379:
-/* Line 1269 of yacc.c. */
-#line 4098 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4158 "querytransformparser.ypp"
{
const ReflectYYLTYPE ryy((yyloc), parseInfo);
NCNameConstructor::validateTargetName<StaticContext::Ptr,
@@ -7164,8 +7560,9 @@ yyreduce:
break;
case 387:
-/* Line 1269 of yacc.c. */
-#line 4119 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4179 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (3)].enums.Bool));
@@ -7174,8 +7571,9 @@ yyreduce:
break;
case 388:
-/* Line 1269 of yacc.c. */
-#line 4126 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4186 "querytransformparser.ypp"
{
/* This value is incremented before the action below is executed. */
++parseInfo->elementConstructorDepth;
@@ -7183,8 +7581,9 @@ yyreduce:
break;
case 389:
-/* Line 1269 of yacc.c. */
-#line 4131 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4191 "querytransformparser.ypp"
{
Q_ASSERT(5);
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (5)].enums.Bool));
@@ -7220,24 +7619,27 @@ yyreduce:
break;
case 390:
-/* Line 1269 of yacc.c. */
-#line 4165 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4225 "querytransformparser.ypp"
{
(yyval.enums.Bool) = false;
}
break;
case 391:
-/* Line 1269 of yacc.c. */
-#line 4169 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4229 "querytransformparser.ypp"
{
(yyval.enums.Bool) = true;
}
break;
case 392:
-/* Line 1269 of yacc.c. */
-#line 4177 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4237 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (4)].enums.Bool));
@@ -7251,16 +7653,18 @@ yyreduce:
break;
case 393:
-/* Line 1269 of yacc.c. */
-#line 4189 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4249 "querytransformparser.ypp"
{
(yyval.expr) = create(new TextNodeConstructor(createSimpleContent((yyvsp[(3) - (3)].expr), (yyloc), parseInfo)), (yyloc), parseInfo);
}
break;
case 394:
-/* Line 1269 of yacc.c. */
-#line 4194 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4254 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (3)].enums.Bool));
@@ -7269,8 +7673,9 @@ yyreduce:
break;
case 395:
-/* Line 1269 of yacc.c. */
-#line 4201 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4261 "querytransformparser.ypp"
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (3)].expr));
@@ -7284,40 +7689,45 @@ yyreduce:
break;
case 396:
-/* Line 1269 of yacc.c. */
-#line 4212 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4272 "querytransformparser.ypp"
{
parseInfo->nodeTestSource = BuiltinTypes::attribute;
}
break;
case 397:
-/* Line 1269 of yacc.c. */
-#line 4216 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4276 "querytransformparser.ypp"
{
parseInfo->restoreNodeTestSource();
}
break;
case 398:
-/* Line 1269 of yacc.c. */
-#line 4219 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4279 "querytransformparser.ypp"
{
(yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[(2) - (3)].qName)))), (yyloc), parseInfo);
}
break;
case 400:
-/* Line 1269 of yacc.c. */
-#line 4225 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4285 "querytransformparser.ypp"
{
(yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[(1) - (1)].qName)))), (yyloc), parseInfo);
}
break;
case 402:
-/* Line 1269 of yacc.c. */
-#line 4231 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4291 "querytransformparser.ypp"
{
if(BuiltinTypes::xsQName->xdtTypeMatches((yyvsp[(1) - (1)].expr)->staticType()->itemType()))
(yyval.expr) = (yyvsp[(1) - (1)].expr);
@@ -7331,112 +7741,127 @@ yyreduce:
break;
case 403:
-/* Line 1269 of yacc.c. */
-#line 4246 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4306 "querytransformparser.ypp"
{
(yyval.expr) = create(new NCNameConstructor(create(new Literal(AtomicString::fromValue((yyvsp[(1) - (1)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo);
}
break;
case 404:
-/* Line 1269 of yacc.c. */
-#line 4250 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4310 "querytransformparser.ypp"
{
(yyval.expr) = create(new NCNameConstructor((yyvsp[(1) - (1)].expr)), (yyloc), parseInfo);
}
break;
case 405:
-/* Line 1269 of yacc.c. */
-#line 4259 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4319 "querytransformparser.ypp"
{
(yyval.expr) = create(new ComputedNamespaceConstructor((yyvsp[(2) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 406:
-/* Line 1269 of yacc.c. */
-#line 4264 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4324 "querytransformparser.ypp"
{
(yyval.sequenceType) = makeGenericSequenceType((yyvsp[(1) - (1)].itemType), Cardinality::exactlyOne());
}
break;
case 407:
-/* Line 1269 of yacc.c. */
-#line 4268 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4328 "querytransformparser.ypp"
{
(yyval.sequenceType) = makeGenericSequenceType((yyvsp[(1) - (2)].itemType), Cardinality::zeroOrOne());
}
break;
case 408:
-/* Line 1269 of yacc.c. */
-#line 4273 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4333 "querytransformparser.ypp"
{
(yyval.sequenceType) = CommonSequenceTypes::ZeroOrMoreItems;
}
break;
case 409:
-/* Line 1269 of yacc.c. */
-#line 4277 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4337 "querytransformparser.ypp"
{
(yyval.sequenceType) = (yyvsp[(2) - (2)].sequenceType);
}
break;
case 410:
-/* Line 1269 of yacc.c. */
-#line 4282 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4342 "querytransformparser.ypp"
{
(yyval.sequenceType) = makeGenericSequenceType((yyvsp[(1) - (2)].itemType), (yyvsp[(2) - (2)].cardinality));
}
break;
case 411:
-/* Line 1269 of yacc.c. */
-#line 4287 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4347 "querytransformparser.ypp"
{
(yyval.sequenceType) = CommonSequenceTypes::Empty;
}
break;
case 412:
-/* Line 1269 of yacc.c. */
-#line 4291 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4351 "querytransformparser.ypp"
{(yyval.cardinality) = Cardinality::exactlyOne();}
break;
case 413:
-/* Line 1269 of yacc.c. */
-#line 4292 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4352 "querytransformparser.ypp"
{(yyval.cardinality) = Cardinality::oneOrMore();}
break;
case 414:
-/* Line 1269 of yacc.c. */
-#line 4293 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4353 "querytransformparser.ypp"
{(yyval.cardinality) = Cardinality::zeroOrMore();}
break;
case 415:
-/* Line 1269 of yacc.c. */
-#line 4294 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4354 "querytransformparser.ypp"
{(yyval.cardinality) = Cardinality::zeroOrOne();}
break;
case 419:
-/* Line 1269 of yacc.c. */
-#line 4300 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4360 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::item;
}
break;
case 420:
-/* Line 1269 of yacc.c. */
-#line 4305 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4365 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(1) - (1)].qName)));
@@ -7471,24 +7896,27 @@ yyreduce:
break;
case 428:
-/* Line 1269 of yacc.c. */
-#line 4349 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4409 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::node;
}
break;
case 429:
-/* Line 1269 of yacc.c. */
-#line 4354 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4414 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::document;
}
break;
case 430:
-/* Line 1269 of yacc.c. */
-#line 4359 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4419 "querytransformparser.ypp"
{
// TODO support for document element testing
(yyval.itemType) = BuiltinTypes::document;
@@ -7496,40 +7924,45 @@ yyreduce:
break;
case 433:
-/* Line 1269 of yacc.c. */
-#line 4368 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4428 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::text;
}
break;
case 434:
-/* Line 1269 of yacc.c. */
-#line 4373 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4433 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::comment;
}
break;
case 435:
-/* Line 1269 of yacc.c. */
-#line 4378 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4438 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::pi;
}
break;
case 436:
-/* Line 1269 of yacc.c. */
-#line 4383 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4443 "querytransformparser.ypp"
{
(yyval.itemType) = LocalNameTest::create(BuiltinTypes::pi, parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[(3) - (4)].sval)));
}
break;
case 437:
-/* Line 1269 of yacc.c. */
-#line 4388 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4448 "querytransformparser.ypp"
{
if(QXmlUtils::isNCName((yyvsp[(3) - (4)].sval)))
{
@@ -7547,32 +7980,36 @@ yyreduce:
break;
case 440:
-/* Line 1269 of yacc.c. */
-#line 4407 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4467 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::attribute;
}
break;
case 441:
-/* Line 1269 of yacc.c. */
-#line 4412 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4472 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::attribute;
}
break;
case 442:
-/* Line 1269 of yacc.c. */
-#line 4417 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4477 "querytransformparser.ypp"
{
(yyval.itemType) = QNameTest::create(BuiltinTypes::attribute, (yyvsp[(3) - (4)].qName));
}
break;
case 443:
-/* Line 1269 of yacc.c. */
-#line 4421 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4481 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (6)].qName)));
@@ -7587,8 +8024,9 @@ yyreduce:
break;
case 444:
-/* Line 1269 of yacc.c. */
-#line 4433 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4493 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (6)].qName)));
@@ -7603,8 +8041,9 @@ yyreduce:
break;
case 445:
-/* Line 1269 of yacc.c. */
-#line 4446 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4506 "querytransformparser.ypp"
{
parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute "
"declarations. Note that the schema import "
@@ -7616,32 +8055,36 @@ yyreduce:
break;
case 446:
-/* Line 1269 of yacc.c. */
-#line 4456 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4516 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::element;
}
break;
case 447:
-/* Line 1269 of yacc.c. */
-#line 4461 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4521 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::element;
}
break;
case 448:
-/* Line 1269 of yacc.c. */
-#line 4466 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4526 "querytransformparser.ypp"
{
(yyval.itemType) = QNameTest::create(BuiltinTypes::element, (yyvsp[(3) - (4)].qName));
}
break;
case 449:
-/* Line 1269 of yacc.c. */
-#line 4471 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4531 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (7)].qName)));
@@ -7657,8 +8100,9 @@ yyreduce:
break;
case 450:
-/* Line 1269 of yacc.c. */
-#line 4485 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4545 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (7)].qName)));
@@ -7674,8 +8118,9 @@ yyreduce:
break;
case 453:
-/* Line 1269 of yacc.c. */
-#line 4502 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4562 "querytransformparser.ypp"
{
parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute "
"declarations. Note that the schema import "
@@ -7687,16 +8132,18 @@ yyreduce:
break;
case 455:
-/* Line 1269 of yacc.c. */
-#line 4514 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4574 "querytransformparser.ypp"
{
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[(1) - (1)].sval));
}
break;
case 457:
-/* Line 1269 of yacc.c. */
-#line 4526 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4586 "querytransformparser.ypp"
{
if(parseInfo->nodeTestSource == BuiltinTypes::element)
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->namespaceBindings()->lookupNamespaceURI(StandardPrefixes::empty), (yyvsp[(1) - (1)].sval));
@@ -7706,24 +8153,27 @@ yyreduce:
break;
case 462:
-/* Line 1269 of yacc.c. */
-#line 4540 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4600 "querytransformparser.ypp"
{
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->defaultFunctionNamespace(), (yyvsp[(1) - (1)].sval));
}
break;
case 463:
-/* Line 1269 of yacc.c. */
-#line 4544 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4604 "querytransformparser.ypp"
{
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::InternalXSLT, (yyvsp[(2) - (2)].sval));
}
break;
case 466:
-/* Line 1269 of yacc.c. */
-#line 4552 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4612 "querytransformparser.ypp"
{
parseInfo->staticContext->error(QtXmlPatterns::tr("The name of an extension expression must be in "
"a namespace."),
@@ -7732,24 +8182,27 @@ yyreduce:
break;
case 469:
-/* Line 1269 of yacc.c. */
-#line 4562 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4622 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
}
break;
case 470:
-/* Line 1269 of yacc.c. */
-#line 4566 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4626 "querytransformparser.ypp"
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
}
break;
case 471:
-/* Line 1269 of yacc.c. */
-#line 4571 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4631 "querytransformparser.ypp"
{
const ReflectYYLTYPE ryy((yyloc), parseInfo);
@@ -7764,18 +8217,31 @@ yyreduce:
break;
case 472:
-/* Line 1269 of yacc.c. */
-#line 4583 "querytransformparser.ypp"
+
+/* Line 1806 of yacc.c */
+#line 4643 "querytransformparser.ypp"
{
(yyval.qName) = parseInfo->staticContext->namePool()->fromClarkName((yyvsp[(1) - (1)].sval));
}
break;
-/* Line 1269 of yacc.c. */
-#line 7763 "qquerytransformparser.cpp"
+
+/* Line 1806 of yacc.c */
+#line 8181 "qquerytransformparser.cpp"
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -7804,6 +8270,10 @@ yyreduce:
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -7811,41 +8281,40 @@ yyerrlab:
#if ! YYERROR_VERBOSE
yyerror (&yylloc, parseInfo, YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (&yylloc, parseInfo, yymsg);
- }
- else
- {
- yyerror (&yylloc, parseInfo, YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (&yylloc, parseInfo, yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
- yyerror_range[0] = yylloc;
+ yyerror_range[1] = yylloc;
if (yyerrstatus == 3)
{
@@ -7882,7 +8351,7 @@ yyerrorlab:
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
- yyerror_range[0] = yylsp[1-yylen];
+ yyerror_range[1] = yylsp[1-yylen];
/* Do not reclaim the symbols of the rule which action triggered
this YYERROR. */
YYPOPSTACK (yylen);
@@ -7901,7 +8370,7 @@ yyerrlab1:
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -7916,7 +8385,7 @@ yyerrlab1:
if (yyssp == yyss)
YYABORT;
- yyerror_range[0] = *yylsp;
+ yyerror_range[1] = *yylsp;
yydestruct ("Error: popping",
yystos[yystate], yyvsp, yylsp, parseInfo);
YYPOPSTACK (1);
@@ -7926,10 +8395,10 @@ yyerrlab1:
*++yyvsp = yylval;
- yyerror_range[1] = yylloc;
+ yyerror_range[2] = yylloc;
/* Using YYLLOC is tempting, but would change the location of
the lookahead. YYLOC is available though. */
- YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
+ YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
*++yylsp = yyloc;
/* Shift the error token. */
@@ -7953,7 +8422,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -7965,8 +8434,13 @@ yyexhaustedlab:
yyreturn:
if (yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval, &yylloc, parseInfo);
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval, &yylloc, parseInfo);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
@@ -7990,8 +8464,9 @@ yyreturn:
}
-/* Line 1486 of yacc.c. */
-#line 4587 "querytransformparser.ypp"
+
+/* Line 2067 of yacc.c */
+#line 4647 "querytransformparser.ypp"
QString Tokenizer::tokenToString(const Token &token)
diff --git a/src/xmlpatterns/parser/qquerytransformparser_p.h b/src/xmlpatterns/parser/qquerytransformparser_p.h
index a8c3af54..87117c98 100644
--- a/src/xmlpatterns/parser/qquerytransformparser_p.h
+++ b/src/xmlpatterns/parser/qquerytransformparser_p.h
@@ -49,27 +49,24 @@
//
// We mean it.
-/* A Bison parser, made by GNU Bison 2.3a. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+/* Bison interface for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2011 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 2, or (at your option)
- any later version.
-
+ 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, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -80,7 +77,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. */
@@ -116,25 +113,6 @@
# undef MAP
#endif
-/* These tokens are defined to nothing on Windows because they're
- * used in their documentation parser, for use in things like:
- *
- * int foo(IN char* name, OUT char* path);
- *
- * Hence this un-break fix. Note that this file was auto generated. */
-#ifdef IN
-# undef IN
-#endif
-#ifdef INSTANCE
-# undef INSTANCE
-#endif
-#ifdef STRICT
-# undef STRICT
-#endif
-#ifdef SELF
-# undef SELF
-#endif
-
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
diff --git a/src/xmlpatterns/parser/querytransformparser.ypp b/src/xmlpatterns/parser/querytransformparser.ypp
index 25d3bb6d..f115aa86 100644
--- a/src/xmlpatterns/parser/querytransformparser.ypp
+++ b/src/xmlpatterns/parser/querytransformparser.ypp
@@ -406,7 +406,7 @@ static void registerNamedTemplate(const QXmlName &name,
if(e)
{
- parseInfo->staticContext->error(QtXmlPatterns::tr("A template by name %1 "
+ parseInfo->staticContext->error(QtXmlPatterns::tr("A template with name %1 "
"has already been declared.")
.arg(formatKeyword(parseInfo->staticContext->namePool(),
name)),
@@ -1470,7 +1470,7 @@ VersionDecl: /* empty */
Encoding: /* empty */ /* [X] */
| ENCODING StringLiteral
{
- QRegExp encNameRegExp(QLatin1String("[A-Za-z][A-Za-z0-9._\\-]*"));
+ const QRegExp encNameRegExp(QLatin1String("[A-Za-z][A-Za-z0-9._\\-]*"));
if(!encNameRegExp.exactMatch($2))
{
@@ -2063,7 +2063,7 @@ VarDecl: DECLARE VARIABLE IsInternal DOLLAR VarName TypeDeclaration
allowedIn(QXmlQuery::XQuery10, parseInfo, @$, $3);
if(variableByName($5, parseInfo))
{
- parseInfo->staticContext->error(QtXmlPatterns::tr("A variable by name %1 has already "
+ parseInfo->staticContext->error(QtXmlPatterns::tr("A variable with name %1 has already "
"been declared.")
.arg(formatKeyword(parseInfo->staticContext->namePool()->toLexical($5))),
parseInfo->isXSLT() ? ReportContext::XTSE0630 : ReportContext::XQST0049,
@@ -2103,7 +2103,7 @@ VarDecl: DECLARE VARIABLE IsInternal DOLLAR VarName TypeDeclaration
else
{
parseInfo->staticContext->error(QtXmlPatterns::tr("No value is available for the external "
- "variable by name %1.")
+ "variable with name %1.")
.arg(formatKeyword(parseInfo->staticContext->namePool(), $5)),
parseInfo->isXSLT() ? ReportContext::XTDE0050 : ReportContext::XPDY0002,
fromYYLTYPE(@$, parseInfo));
@@ -2280,7 +2280,7 @@ ParamList: /* empty */
{
if((*it)->name() == $3->name())
{
- parseInfo->staticContext->error(QtXmlPatterns::tr("An argument by name %1 has already "
+ 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(), $3->name())),
@@ -3710,7 +3710,7 @@ FunctionCallExpr: FunctionName LPAREN FunctionArguments RPAREN
$$ = create(func, @$, parseInfo);
else
{
- parseInfo->staticContext->error(QtXmlPatterns::tr("No function by name %1 is available.")
+ parseInfo->staticContext->error(QtXmlPatterns::tr("No function with name %1 is available.")
.arg(formatKeyword(parseInfo->staticContext->namePool(), $1)),
ReportContext::XPST0017, fromYYLTYPE(@$, parseInfo));
}
@@ -3987,7 +3987,7 @@ DirElemConstructor: G_LT
&ryy, true);
if(declaredAttributes.contains(att))
{
- parseInfo->staticContext->error(QtXmlPatterns::tr("An attribute by name %1 has already appeared on this element.")
+ parseInfo->staticContext->error(QtXmlPatterns::tr("An attribute with name %1 has already appeared on this element.")
.arg(formatKeyword(parseInfo->staticContext->namePool(), att)),
ReportContext::XQST0040, fromYYLTYPE(@$, parseInfo));