diff options
62 files changed, 1442 insertions, 1429 deletions
diff --git a/.qmake.conf b/.qmake.conf index 16c30a1..96f7a81 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -2,4 +2,4 @@ load(qt_build_config) CONFIG += warning_clean DEFINES += QT_NO_FOREACH -MODULE_VERSION = 5.14.2 +MODULE_VERSION = 5.15.0 diff --git a/src/imports/xmllistmodel/plugins.qmltypes b/src/imports/xmllistmodel/plugins.qmltypes index d3cc520..a2072f2 100644 --- a/src/imports/xmllistmodel/plugins.qmltypes +++ b/src/imports/xmllistmodel/plugins.qmltypes @@ -4,7 +4,7 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtQuick.XmlListModel 2.14' +// 'qmlplugindump -nonrelocatable QtQuick.XmlListModel 2.15' Module { dependencies: ["QtQuick 2.0"] diff --git a/src/imports/xmllistmodel/qqmlxmllistmodel.cpp b/src/imports/xmllistmodel/qqmlxmllistmodel.cpp index ab15a3c..2b65b2b 100644 --- a/src/imports/xmllistmodel/qqmlxmllistmodel.cpp +++ b/src/imports/xmllistmodel/qqmlxmllistmodel.cpp @@ -745,7 +745,7 @@ QQuickXmlListModel::~QQuickXmlListModel() QQmlListProperty<QQuickXmlListModelRole> QQuickXmlListModel::roleObjects() { Q_D(QQuickXmlListModel); - QQmlListProperty<QQuickXmlListModelRole> list(this, d->roleObjects); + QQmlListProperty<QQuickXmlListModelRole> list(this, &d->roleObjects); list.append = &QQuickXmlListModelPrivate::append_role; list.clear = &QQuickXmlListModelPrivate::clear_role; return list; diff --git a/src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp b/src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp index e25a9b6..8abd99c 100644 --- a/src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp +++ b/src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp @@ -124,7 +124,7 @@ QNetworkReply *AccelTreeResourceLoader::load(const QUrl &uri, request.setAttribute(QNetworkRequest::SynchronousRequestAttribute, true); QNetworkReply *const reply = networkManager->get(request); if (ftpSchemeUsed) { - ftpNetworkLoop.connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(quit())); + ftpNetworkLoop.connect(reply, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), SLOT(quit())); ftpNetworkLoop.connect(reply, SIGNAL(finished()), SLOT(quit())); ftpNetworkLoop.exec(QEventLoop::ExcludeUserInputEvents); } diff --git a/src/xmlpatterns/api/qiodevicedelegate.cpp b/src/xmlpatterns/api/qiodevicedelegate.cpp index d4049a5..3bba767 100644 --- a/src/xmlpatterns/api/qiodevicedelegate.cpp +++ b/src/xmlpatterns/api/qiodevicedelegate.cpp @@ -80,7 +80,7 @@ QIODeviceDelegate::QIODeviceDelegate(QIODevice *const source) : m_source(source) void QIODeviceDelegate::networkTimeout() { setErrorString(QtXmlPatterns::tr("Network timeout.")); - error(QNetworkReply::TimeoutError); + errorOccurred(QNetworkReply::TimeoutError); } void QIODeviceDelegate::abort() diff --git a/src/xmlpatterns/data/qabstractdatetime.cpp b/src/xmlpatterns/data/qabstractdatetime.cpp index c608e20..87ac96a 100644 --- a/src/xmlpatterns/data/qabstractdatetime.cpp +++ b/src/xmlpatterns/data/qabstractdatetime.cpp @@ -145,7 +145,7 @@ QDateTime AbstractDateTime::create(AtomicValue::Ptr &errorMessage, /* Only deal with time if time is needed. */ if(captTable.hour == -1) { - QDateTime result(date); + QDateTime result = date.startOfDay(); setUtcOffset(result, zoResult, offset); return result; } diff --git a/src/xmlpatterns/data/qgday.cpp b/src/xmlpatterns/data/qgday.cpp index 9bf2a95..a031879 100644 --- a/src/xmlpatterns/data/qgday.cpp +++ b/src/xmlpatterns/data/qgday.cpp @@ -75,7 +75,8 @@ GDay::Ptr GDay::fromLexical(const QString &lexical) GDay::Ptr GDay::fromDateTime(const QDateTime &dt) { - QDateTime result(QDate(DefaultYear, DefaultMonth, dt.date().day())); + const QDate date(DefaultYear, DefaultMonth, dt.date().day()); + QDateTime result(date.startOfDay()); copyTimeSpec(dt, result); return GDay::Ptr(new GDay(result)); diff --git a/src/xmlpatterns/data/qgmonth.cpp b/src/xmlpatterns/data/qgmonth.cpp index 985258b..460fcb2 100644 --- a/src/xmlpatterns/data/qgmonth.cpp +++ b/src/xmlpatterns/data/qgmonth.cpp @@ -74,7 +74,8 @@ GMonth::Ptr GMonth::fromLexical(const QString &lexical) GMonth::Ptr GMonth::fromDateTime(const QDateTime &dt) { - QDateTime result(QDate(DefaultYear, dt.date().month(), DefaultDay)); + const QDate date(DefaultYear, dt.date().month(), DefaultDay); + QDateTime result(date.startOfDay()); copyTimeSpec(dt, result); return GMonth::Ptr(new GMonth(result)); diff --git a/src/xmlpatterns/data/qgmonthday.cpp b/src/xmlpatterns/data/qgmonthday.cpp index c2bba53..daee4d4 100644 --- a/src/xmlpatterns/data/qgmonthday.cpp +++ b/src/xmlpatterns/data/qgmonthday.cpp @@ -77,7 +77,7 @@ GMonthDay::Ptr GMonthDay::fromLexical(const QString &lexical) GMonthDay::Ptr GMonthDay::fromDateTime(const QDateTime &dt) { - QDateTime result(QDate(DefaultYear, dt.date().month(), dt.date().day())); + QDateTime result(QDate(DefaultYear, dt.date().month(), dt.date().day()).startOfDay()); copyTimeSpec(dt, result); return GMonthDay::Ptr(new GMonthDay(result)); diff --git a/src/xmlpatterns/data/qgyear.cpp b/src/xmlpatterns/data/qgyear.cpp index 1a6faff..28698f8 100644 --- a/src/xmlpatterns/data/qgyear.cpp +++ b/src/xmlpatterns/data/qgyear.cpp @@ -80,7 +80,8 @@ GYear::Ptr GYear::fromLexical(const QString &lexical) GYear::Ptr GYear::fromDateTime(const QDateTime &dt) { - QDateTime result(QDate(dt.date().year(), DefaultMonth, DefaultDay)); + const QDate date(dt.date().year(), DefaultMonth, DefaultDay); + QDateTime result(date.startOfDay()); copyTimeSpec(dt, result); return GYear::Ptr(new GYear(result)); diff --git a/src/xmlpatterns/data/qgyearmonth.cpp b/src/xmlpatterns/data/qgyearmonth.cpp index 6dad8bc..2058ee6 100644 --- a/src/xmlpatterns/data/qgyearmonth.cpp +++ b/src/xmlpatterns/data/qgyearmonth.cpp @@ -82,7 +82,8 @@ GYearMonth::Ptr GYearMonth::fromLexical(const QString &lexical) GYearMonth::Ptr GYearMonth::fromDateTime(const QDateTime &dt) { - QDateTime result(QDate(dt.date().year(), dt.date().month(), DefaultDay)); + const QDate date(dt.date().year(), dt.date().month(), DefaultDay); + QDateTime result(date.startOfDay()); copyTimeSpec(dt, result); return GYearMonth::Ptr(new GYearMonth(result)); diff --git a/src/xmlpatterns/doc/src/xml-patterns.qdoc b/src/xmlpatterns/doc/src/xml-patterns.qdoc index 956d0c6..0ee0d75 100644 --- a/src/xmlpatterns/doc/src/xml-patterns.qdoc +++ b/src/xmlpatterns/doc/src/xml-patterns.qdoc @@ -30,7 +30,6 @@ \title XQuery \previouspage Working with the DOM Tree - \contentspage XML Processing \keyword Patternist diff --git a/src/xmlpatterns/doc/src/xquery-introduction.qdoc b/src/xmlpatterns/doc/src/xquery-introduction.qdoc index 1c6d82b..3af790f 100644 --- a/src/xmlpatterns/doc/src/xquery-introduction.qdoc +++ b/src/xmlpatterns/doc/src/xquery-introduction.qdoc @@ -29,7 +29,6 @@ \page xquery-introduction.html \title A Short Path to XQuery -\pagekeywords XPath XQuery \startpage XQuery \keyword XQuery-introduction diff --git a/src/xmlpatterns/functions/qpatternmatchingfns.cpp b/src/xmlpatterns/functions/qpatternmatchingfns.cpp index 4ab4051..72b2b1e 100644 --- a/src/xmlpatterns/functions/qpatternmatchingfns.cpp +++ b/src/xmlpatterns/functions/qpatternmatchingfns.cpp @@ -218,7 +218,7 @@ Item::Iterator::Ptr TokenizeFN::evaluateSequence(const DynamicContext::Ptr &cont return CommonValues::emptyIterator; QRegExp regExp(pattern(context)); - const QStringList result(input.split(regExp, QString::KeepEmptyParts)); + const QStringList result(input.split(regExp, Qt::KeepEmptyParts)); return makeItemMappingIterator<Item>(ConstPtr(this), makeListIterator(result), diff --git a/src/xmlpatterns/parser/createTokenLookup.sh b/src/xmlpatterns/parser/createTokenLookup.sh index 0709de3..a6acf58 100755 --- a/src/xmlpatterns/parser/createTokenLookup.sh +++ b/src/xmlpatterns/parser/createTokenLookup.sh @@ -1,7 +1,7 @@ #!/bin/sh ############################################################################# ## -## Copyright (C) 2016 The Qt Company Ltd. +## Copyright (C) 2019 The Qt Company Ltd. ## Contact: https://www.qt.io/licensing/ ## ## This file is the build configuration utility of the Qt Toolkit. @@ -40,48 +40,10 @@ outFile="qtokenlookup.cpp" -license=`cat <<EOF -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -EOF` -echo "$license" > $outFile +head -n 38 TokenLookup.gperf > $outFile # Watch out, the --output option is not supported in the # gperf version that apt-get pulls in on Mac OS X. -gperf TokenLookup.gperf >> $outFile +gperf TokenLookup.gperf | sed \ + -e 's/size_t/unsigned int/g' \ + -e 's!/\*FALLTHROUGH\*/! Q_FALLTHROUGH();!' >> $outFile diff --git a/src/xmlpatterns/parser/qparsercontext.cpp b/src/xmlpatterns/parser/qparsercontext.cpp index c59a701..a70e2fa 100644 --- a/src/xmlpatterns/parser/qparsercontext.cpp +++ b/src/xmlpatterns/parser/qparsercontext.cpp @@ -96,7 +96,7 @@ void ParserContext::finalizePushedVariable(const int amount, void ParserContext::handleStackOverflow(const char *, short **yyss, size_t, TokenValue **yyvs, size_t, - YYLTYPE **yyls, size_t, + XPATHLTYPE **yyls, size_t, size_t *yystacksize) { bool isFirstTime = parserStack_yyvs.isEmpty(); diff --git a/src/xmlpatterns/parser/qparsercontext_p.h b/src/xmlpatterns/parser/qparsercontext_p.h index 22371f7..c6e359e 100644 --- a/src/xmlpatterns/parser/qparsercontext_p.h +++ b/src/xmlpatterns/parser/qparsercontext_p.h @@ -215,9 +215,10 @@ namespace QPatternist QVector<qint16> parserStack_yyss; QVector<TokenValue> parserStack_yyvs; - QVector<YYLTYPE> parserStack_yyls; + QVector<XPATHLTYPE> parserStack_yyls; - void handleStackOverflow(const char*, short **yyss, size_t, TokenValue **yyvs, size_t, YYLTYPE **yyls, size_t, size_t *yystacksize); + void handleStackOverflow(const char*, short **yyss, size_t, TokenValue **yyvs, size_t, + XPATHLTYPE **yyls, size_t, size_t *yystacksize); inline VariableSlotID currentPositionSlot() const { diff --git a/src/xmlpatterns/parser/qquerytransformparser.cpp b/src/xmlpatterns/parser/qquerytransformparser.cpp index d7d642c..76abfa8 100644 --- a/src/xmlpatterns/parser/qquerytransformparser.cpp +++ b/src/xmlpatterns/parser/qquerytransformparser.cpp @@ -47,11 +47,12 @@ // // We mean it. -/* A Bison parser, made by GNU Bison 3.0.2. */ +/* A Bison parser, made by GNU Bison 3.3.2. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 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 @@ -89,11 +90,14 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0.2" +#define YYBISON_VERSION "3.3.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -107,7 +111,9 @@ /* Pull parsers. */ #define YYPULL 1 - +/* Substitute the type names. */ +#define YYSTYPE XPATHSTYPE +#define YYLTYPE XPATHLTYPE /* Substitute the variable and function names. */ #define yyparse XPathparse #define yylex XPathlex @@ -116,8 +122,8 @@ #define yynerrs XPathnerrs -/* Copy the first part of user declarations. */ -#line 44 "querytransformparser.ypp" /* yacc.c:339 */ +/* First part of user prologue. */ +#line 50 "querytransformparser.ypp" /* yacc.c:337 */ /**************************************************************************** ** @@ -1173,13 +1179,16 @@ static Expression::Ptr createReturnOrderBy(const OrderSpecTransfer::List &orderS } -#line 1123 "qquerytransformparser.cpp" /* yacc.c:339 */ - +#line 1134 "qquerytransformparser.cpp" /* yacc.c:337 */ # ifndef YY_NULLPTR -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif # else -# define YY_NULLPTR 0 +# define YY_NULLPTR ((void*)0) # endif # endif @@ -1196,17 +1205,25 @@ static Expression::Ptr createReturnOrderBy(const OrderSpecTransfer::List &orderS #ifndef YY_XPATH_QQUERYTRANSFORMPARSER_P_H_INCLUDED # define YY_XPATH_QQUERYTRANSFORMPARSER_P_H_INCLUDED /* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG +#ifndef XPATHDEBUG +# if defined YYDEBUG +# if YYDEBUG +# define XPATHDEBUG 1 +# else +# define XPATHDEBUG 0 +# endif +# else /* ! defined YYDEBUG */ +# define XPATHDEBUG 0 +# endif /* ! defined YYDEBUG */ +#endif /* ! defined XPATHDEBUG */ +#if XPATHDEBUG extern int XPathdebug; #endif /* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype +#ifndef XPATHTOKENTYPE +# define XPATHTOKENTYPE + enum XPathtokentype { T_END_OF_FILE = 0, T_STRING_LITERAL = 258, @@ -1381,17 +1398,17 @@ extern int XPathdebug; /* Value type. */ /* Location type. */ -#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE YYLTYPE; -struct YYLTYPE +#if ! defined XPATHLTYPE && ! defined XPATHLTYPE_IS_DECLARED +typedef struct XPATHLTYPE XPATHLTYPE; +struct XPATHLTYPE { int first_line; int first_column; int last_line; int last_column; }; -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 +# define XPATHLTYPE_IS_DECLARED 1 +# define XPATHLTYPE_IS_TRIVIAL 1 #endif @@ -1400,9 +1417,7 @@ int XPathparse (QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInf #endif /* !YY_XPATH_QQUERYTRANSFORMPARSER_P_H_INCLUDED */ -/* Copy the second part of user declarations. */ -#line 1352 "qquerytransformparser.cpp" /* yacc.c:358 */ #ifdef short # undef short @@ -1423,13 +1438,13 @@ typedef signed char yytype_int8; #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else -typedef unsigned short int yytype_uint16; +typedef unsigned short yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else -typedef short int yytype_int16; +typedef short yytype_int16; #endif #ifndef YYSIZE_T @@ -1441,7 +1456,7 @@ typedef short int yytype_int16; # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned int +# define YYSIZE_T unsigned # endif #endif @@ -1477,11 +1492,6 @@ typedef short int yytype_int16; # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif -#if !defined _Noreturn \ - && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# define _Noreturn __declspec (noreturn) -#endif - /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -1489,7 +1499,7 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ @@ -1579,8 +1589,8 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ - && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined XPATHLTYPE_IS_TRIVIAL && XPATHLTYPE_IS_TRIVIAL \ + && defined XPATHSTYPE_IS_TRIVIAL && XPATHSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -1653,16 +1663,16 @@ union yyalloc /* YYNSTATES -- Number of states. */ #define YYNSTATES 812 -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 423 +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ + as returned by yylex. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1710,62 +1720,62 @@ static const yytype_uint8 yytranslate[] = 165, 166, 167, 168 }; -#if YYDEBUG +#if XPATHDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 1420, 1420, 1421, 1423, 1424, 1455, 1456, 1472, 1570, - 1572, 1578, 1580, 1587, 1593, 1599, 1606, 1609, 1613, 1617, - 1637, 1651, 1655, 1649, 1718, 1722, 1739, 1742, 1744, 1749, - 1750, 1754, 1755, 1759, 1763, 1767, 1769, 1770, 1772, 1774, - 1820, 1834, 1839, 1844, 1845, 1847, 1862, 1877, 1887, 1902, - 1906, 1911, 1925, 1929, 1934, 1948, 1953, 1958, 1963, 1968, - 1984, 2007, 2015, 2016, 2017, 2019, 2036, 2037, 2039, 2040, - 2042, 2043, 2045, 2100, 2104, 2110, 2113, 2118, 2132, 2136, - 2142, 2141, 2250, 2253, 2259, 2280, 2286, 2290, 2292, 2297, - 2307, 2308, 2313, 2314, 2323, 2393, 2404, 2405, 2409, 2414, - 2483, 2484, 2488, 2493, 2537, 2538, 2543, 2550, 2556, 2557, - 2558, 2559, 2560, 2561, 2567, 2572, 2578, 2581, 2586, 2592, - 2598, 2602, 2627, 2628, 2632, 2636, 2630, 2677, 2680, 2675, - 2696, 2697, 2698, 2701, 2705, 2713, 2712, 2726, 2725, 2734, - 2735, 2736, 2738, 2746, 2757, 2760, 2762, 2767, 2774, 2781, - 2787, 2807, 2812, 2818, 2821, 2823, 2824, 2831, 2837, 2841, - 2846, 2847, 2850, 2854, 2849, 2864, 2868, 2863, 2876, 2879, - 2883, 2878, 2893, 2897, 2892, 2905, 2907, 2935, 2934, 2946, - 2954, 2945, 2965, 2966, 2969, 2973, 2978, 2983, 2982, 2998, - 3004, 3005, 3011, 3012, 3018, 3019, 3020, 3021, 3023, 3024, - 3030, 3031, 3037, 3038, 3040, 3041, 3047, 3048, 3049, 3050, - 3052, 3053, 3063, 3064, 3070, 3071, 3073, 3077, 3082, 3083, - 3090, 3091, 3097, 3098, 3104, 3105, 3111, 3112, 3118, 3122, - 3127, 3128, 3129, 3131, 3137, 3138, 3139, 3140, 3141, 3142, - 3144, 3149, 3150, 3151, 3152, 3153, 3154, 3156, 3161, 3162, - 3163, 3165, 3179, 3180, 3181, 3183, 3200, 3204, 3209, 3210, - 3212, 3217, 3218, 3220, 3226, 3230, 3236, 3239, 3240, 3244, - 3253, 3258, 3262, 3263, 3268, 3267, 3282, 3290, 3289, 3305, - 3313, 3313, 3322, 3324, 3327, 3332, 3334, 3338, 3404, 3407, - 3413, 3416, 3425, 3429, 3433, 3438, 3439, 3444, 3445, 3448, - 3447, 3477, 3479, 3480, 3482, 3526, 3527, 3528, 3529, 3530, - 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3540, 3539, 3550, - 3561, 3566, 3568, 3573, 3574, 3579, 3583, 3585, 3589, 3598, - 3605, 3606, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, - 3629, 3630, 3635, 3640, 3646, 3652, 3657, 3662, 3667, 3673, - 3678, 3683, 3713, 3717, 3724, 3726, 3730, 3735, 3736, 3737, - 3771, 3780, 3769, 4021, 4025, 4045, 4048, 4054, 4059, 4064, - 4070, 4073, 4083, 4090, 4094, 4100, 4114, 4120, 4137, 4142, - 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4163, 4171, 4170, - 4210, 4213, 4218, 4233, 4238, 4245, 4257, 4261, 4257, 4267, - 4269, 4273, 4275, 4290, 4294, 4303, 4308, 4312, 4318, 4321, - 4326, 4331, 4336, 4337, 4338, 4339, 4341, 4342, 4343, 4344, - 4349, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4393, 4398, - 4403, 4409, 4410, 4412, 4417, 4422, 4427, 4432, 4448, 4449, - 4451, 4456, 4461, 4465, 4477, 4490, 4500, 4505, 4510, 4515, - 4529, 4543, 4544, 4546, 4556, 4558, 4563, 4570, 4577, 4579, - 4581, 4582, 4584, 4588, 4593, 4594, 4596, 4602, 4604, 4606, - 4610, 4615, 4627 + 0, 1431, 1431, 1432, 1434, 1435, 1466, 1467, 1483, 1581, + 1583, 1589, 1591, 1598, 1604, 1610, 1617, 1620, 1624, 1628, + 1648, 1662, 1666, 1660, 1729, 1733, 1750, 1753, 1755, 1760, + 1761, 1765, 1766, 1770, 1774, 1778, 1780, 1781, 1783, 1785, + 1831, 1845, 1850, 1855, 1856, 1858, 1873, 1888, 1898, 1913, + 1917, 1922, 1936, 1940, 1945, 1959, 1964, 1969, 1974, 1979, + 1995, 2018, 2026, 2027, 2028, 2030, 2047, 2048, 2050, 2051, + 2053, 2054, 2056, 2111, 2115, 2121, 2124, 2129, 2143, 2147, + 2153, 2152, 2261, 2264, 2270, 2291, 2297, 2301, 2303, 2308, + 2318, 2319, 2324, 2325, 2334, 2404, 2415, 2416, 2420, 2425, + 2494, 2495, 2499, 2504, 2548, 2549, 2554, 2561, 2567, 2568, + 2569, 2570, 2571, 2572, 2578, 2583, 2589, 2592, 2597, 2603, + 2609, 2613, 2638, 2639, 2643, 2647, 2641, 2688, 2691, 2686, + 2707, 2708, 2709, 2712, 2716, 2724, 2723, 2737, 2736, 2745, + 2746, 2747, 2749, 2757, 2768, 2771, 2773, 2778, 2785, 2792, + 2798, 2818, 2823, 2829, 2832, 2834, 2835, 2842, 2848, 2852, + 2857, 2858, 2861, 2865, 2860, 2875, 2879, 2874, 2887, 2890, + 2894, 2889, 2904, 2908, 2903, 2916, 2918, 2946, 2945, 2957, + 2965, 2956, 2976, 2977, 2980, 2984, 2989, 2994, 2993, 3009, + 3015, 3016, 3022, 3023, 3029, 3030, 3031, 3032, 3034, 3035, + 3041, 3042, 3048, 3049, 3051, 3052, 3058, 3059, 3060, 3061, + 3063, 3064, 3074, 3075, 3081, 3082, 3084, 3088, 3093, 3094, + 3101, 3102, 3108, 3109, 3115, 3116, 3122, 3123, 3129, 3133, + 3138, 3139, 3140, 3142, 3148, 3149, 3150, 3151, 3152, 3153, + 3155, 3160, 3161, 3162, 3163, 3164, 3165, 3167, 3172, 3173, + 3174, 3176, 3190, 3191, 3192, 3194, 3211, 3215, 3220, 3221, + 3223, 3228, 3229, 3231, 3237, 3241, 3247, 3250, 3251, 3255, + 3264, 3269, 3273, 3274, 3279, 3278, 3293, 3301, 3300, 3316, + 3324, 3324, 3333, 3335, 3338, 3343, 3345, 3349, 3415, 3418, + 3424, 3427, 3436, 3440, 3444, 3449, 3450, 3455, 3456, 3459, + 3458, 3488, 3490, 3491, 3493, 3537, 3538, 3539, 3540, 3541, + 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3551, 3550, 3561, + 3572, 3577, 3579, 3584, 3585, 3590, 3594, 3596, 3600, 3609, + 3616, 3617, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, + 3640, 3641, 3646, 3651, 3657, 3663, 3668, 3673, 3678, 3684, + 3689, 3694, 3724, 3728, 3735, 3737, 3741, 3746, 3747, 3748, + 3782, 3791, 3780, 4032, 4036, 4056, 4059, 4065, 4070, 4075, + 4081, 4084, 4094, 4101, 4105, 4111, 4125, 4131, 4148, 4153, + 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4174, 4182, 4181, + 4221, 4224, 4229, 4244, 4249, 4256, 4268, 4272, 4268, 4278, + 4280, 4284, 4286, 4301, 4305, 4314, 4319, 4323, 4329, 4332, + 4337, 4342, 4347, 4348, 4349, 4350, 4352, 4353, 4354, 4355, + 4360, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4404, 4409, + 4414, 4420, 4421, 4423, 4428, 4433, 4438, 4443, 4459, 4460, + 4462, 4467, 4472, 4476, 4488, 4501, 4511, 4516, 4521, 4526, + 4540, 4554, 4555, 4557, 4567, 4569, 4574, 4581, 4588, 4590, + 4592, 4593, 4595, 4599, 4604, 4605, 4607, 4613, 4615, 4617, + 4621, 4626, 4638 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 1 +#if XPATHDEBUG || YYERROR_VERBOSE || 1 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = @@ -2767,22 +2777,22 @@ static const yytype_uint8 yyr2[] = #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (&yylloc, parseInfo, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (0) +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (&yylloc, parseInfo, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) /* Error token number */ #define YYTERROR 1 @@ -2817,7 +2827,7 @@ while (0) /* Enable debugging if requested. */ -#if YYDEBUG +#if XPATHDEBUG # ifndef YYFPRINTF # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ @@ -2836,15 +2846,15 @@ do { \ we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# if defined XPATHLTYPE_IS_TRIVIAL && XPATHLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ YY_ATTRIBUTE_UNUSED -static unsigned +static int yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) { - unsigned res = 0; + int res = 0; int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; if (0 <= yylocp->first_line) { @@ -2887,41 +2897,41 @@ do { \ } while (0) -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT. | -`----------------------------------------*/ +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) +yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) { - FILE *yyo = yyoutput; - YYUSE (yyo); + FILE *yyoutput = yyo; + YYUSE (yyoutput); YYUSE (yylocationp); YYUSE (parseInfo); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); + YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif YYUSE (yytype); } -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) +yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) { - YYFPRINTF (yyoutput, "%s %s (", + YYFPRINTF (yyo, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - YY_LOCATION_PRINT (yyoutput, *yylocationp); - YYFPRINTF (yyoutput, ": "); - yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parseInfo); - YYFPRINTF (yyoutput, ")"); + YY_LOCATION_PRINT (yyo, *yylocationp); + YYFPRINTF (yyo, ": "); + yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, parseInfo); + YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. @@ -2955,7 +2965,7 @@ do { \ static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInfo) { - unsigned long int yylno = yyrline[yyrule]; + unsigned long yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", @@ -2966,7 +2976,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) + &yyvsp[(yyi + 1) - (yynrhs)] , &(yylsp[(yyi + 1) - (yynrhs)]) , parseInfo); YYFPRINTF (stderr, "\n"); } @@ -2981,12 +2991,12 @@ do { \ /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; -#else /* !YYDEBUG */ +#else /* !XPATHDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ +#endif /* !XPATHDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ @@ -3070,7 +3080,10 @@ yytnamerr (char *yyres, const char *yystr) case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; - Q_FALLTHROUGH(); + else + goto append; + + append: default: if (yyres) yyres[yyn] = *yyp; @@ -3088,7 +3101,7 @@ yytnamerr (char *yyres, const char *yystr) if (! yyres) return yystrlen (yystr); - return yystpcpy (yyres, yystr) - yyres; + return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); } # endif @@ -3166,10 +3179,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } } } @@ -3181,6 +3194,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, case N: \ yyformat = S; \ break + default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); @@ -3192,9 +3206,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } if (*yymsg_alloc < yysize) @@ -3269,7 +3284,7 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Location data for the lookahead symbol. */ static YYLTYPE yyloc_default -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# if defined XPATHLTYPE_IS_TRIVIAL && XPATHLTYPE_IS_TRIVIAL = { 1, 1, 1, 1 } # endif ; @@ -3346,23 +3361,31 @@ YYLTYPE yylloc = yyloc_default; yylsp[0] = yylloc; goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: - *yyssp = yystate; + +/*--------------------------------------------------------------------. +| yynewstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + *yyssp = (yytype_int16) yystate; if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + goto yyexhaustedlab; +#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); -#ifdef yyoverflow +# if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into @@ -3380,15 +3403,11 @@ YYLTYPE yylloc = yyloc_default; &yyvs1, yysize * sizeof (*yyvsp), &yyls1, yysize * sizeof (*yylsp), &yystacksize); - - yyls = yyls1; yyss = yyss1; yyvs = yyvs1; + yyls = yyls1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; @@ -3405,23 +3424,23 @@ YYLTYPE yylloc = yyloc_default; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -3430,11 +3449,11 @@ YYLTYPE yylloc = yyloc_default; goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ @@ -3507,7 +3526,7 @@ yydefault: /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ @@ -3523,13 +3542,14 @@ yyreduce: GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; - /* Default location. */ + /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); + yyerror_range[1] = yyloc; YY_REDUCE_PRINT (yyn); switch (yyn) { case 5: -#line 1425 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1436 "querytransformparser.ypp" /* yacc.c:1652 */ { /* Suppress more compiler warnings about unused defines. */ @@ -3559,11 +3579,11 @@ yyreduce: ReportContext::XQST0031, &ryy); } } -#line 3513 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3534 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 7: -#line 1457 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1468 "querytransformparser.ypp" /* yacc.c:1652 */ { const QRegExp encNameRegExp(QLatin1String("[A-Za-z][A-Za-z0-9._\\-]*")); @@ -3578,11 +3598,11 @@ yyreduce: ReportContext::XQST0087, fromYYLTYPE((yyloc), parseInfo)); } } -#line 3532 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3553 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 8: -#line 1473 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1484 "querytransformparser.ypp" /* yacc.c:1652 */ { /* In XSL-T, we can have dangling variable references, so resolve them * before we proceed with other steps, such as checking circularity. */ @@ -3679,87 +3699,87 @@ yyreduce: else parseInfo->queryBody = (yyvsp[0].expr); } -#line 3633 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3654 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 10: -#line 1573 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1584 "querytransformparser.ypp" /* yacc.c:1652 */ { // TODO add to namespace context parseInfo->moduleNamespace = parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[-3].sval)); } -#line 3642 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3663 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 12: -#line 1581 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1592 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); if(parseInfo->hasSecondPrologPart) parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, " "variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } -#line 3653 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3674 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 13: -#line 1588 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1599 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->hasSecondPrologPart) parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, " "variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } -#line 3663 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3684 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 14: -#line 1594 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1605 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->hasSecondPrologPart) parseInfo->staticContext->error(QtXmlPatterns::tr("Namespace declarations must occur before function, " "variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } -#line 3673 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3694 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 15: -#line 1600 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1611 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); if(parseInfo->hasSecondPrologPart) parseInfo->staticContext->error(QtXmlPatterns::tr("Module imports must occur before function, " "variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo)); } -#line 3684 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3705 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 17: -#line 1610 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1621 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->hasSecondPrologPart = true; } -#line 3692 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3713 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 18: -#line 1614 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1625 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->hasSecondPrologPart = true; } -#line 3700 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3721 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 19: -#line 1618 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1629 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); parseInfo->hasSecondPrologPart = true; } -#line 3709 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3730 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 20: -#line 1641 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1652 "querytransformparser.ypp" /* yacc.c:1652 */ { Template::Ptr temp(create(new Template(parseInfo->currentImportPrecedence, (yyvsp[-2].sequenceType)), (yyloc), parseInfo)); @@ -3768,27 +3788,27 @@ yyreduce: temp->templateParameters = parseInfo->templateParameters; parseInfo->templateParametersHandled(); } -#line 3722 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3743 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 21: -#line 1651 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1662 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->isParsingPattern = true; } -#line 3730 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3751 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 22: -#line 1655 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1666 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->isParsingPattern = false; } -#line 3738 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3759 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 23: -#line 1664 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1675 "querytransformparser.ypp" /* yacc.c:1652 */ { /* In this grammar branch, we're guaranteed to be a template rule, but * may also be a named template. */ @@ -3841,19 +3861,19 @@ yyreduce: mode->templatePatterns.append(ourPatterns.at(t)); } } -#line 3795 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3816 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 24: -#line 1718 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1729 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.Double) = std::numeric_limits<xsDouble>::quiet_NaN(); } -#line 3803 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3824 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 25: -#line 1723 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1734 "querytransformparser.ypp" /* yacc.c:1652 */ { const AtomicValue::Ptr val(Decimal::fromLexical((yyvsp[0].sval))); if(val->hasError()) @@ -3868,59 +3888,59 @@ yyreduce: else (yyval.enums.Double) = val->as<Numeric>()->toDouble(); } -#line 3822 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3843 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 26: -#line 1739 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1750 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = QXmlName(); } -#line 3830 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3851 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 28: -#line 1745 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1756 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = (yyvsp[0].qName); } -#line 3838 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3859 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 30: -#line 1751 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1762 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } -#line 3846 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3867 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 32: -#line 1756 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1767 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } -#line 3854 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3875 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 33: -#line 1760 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1771 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } -#line 3862 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3883 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 34: -#line 1764 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1775 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } -#line 3870 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3891 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 39: -#line 1775 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1786 "querytransformparser.ypp" /* yacc.c:1652 */ { if(!(yyvsp[-1].enums.Bool)) allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); @@ -3965,11 +3985,11 @@ yyreduce: } } } -#line 3919 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3940 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 40: -#line 1821 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1832 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->hasDeclaration(ParserContext::BoundarySpaceDecl)) { @@ -3982,27 +4002,27 @@ yyreduce: parseInfo->registerDeclaration(ParserContext::BoundarySpaceDecl); } } -#line 3936 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3957 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 41: -#line 1835 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1846 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.boundarySpacePolicy) = StaticContext::BSPStrip; } -#line 3944 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3965 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 42: -#line 1840 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1851 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.boundarySpacePolicy) = StaticContext::BSPPreserve; } -#line 3952 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3973 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 45: -#line 1849 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1860 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultElementNamespace)) { @@ -4015,11 +4035,11 @@ yyreduce: parseInfo->registerDeclaration(ParserContext::DeclareDefaultElementNamespace); } } -#line 3969 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 3990 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 46: -#line 1864 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1875 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultFunctionNamespace)) { @@ -4032,11 +4052,11 @@ yyreduce: parseInfo->registerDeclaration(ParserContext::DeclareDefaultFunctionNamespace); } } -#line 3986 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4007 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 47: -#line 1878 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1889 "querytransformparser.ypp" /* yacc.c:1652 */ { if((yyvsp[-2].qName).prefix() == StandardPrefixes::empty) { @@ -4045,11 +4065,11 @@ yyreduce: ReportContext::XPST0081, fromYYLTYPE((yyloc), parseInfo)); } } -#line 3999 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4020 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 48: -#line 1888 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1899 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); if(parseInfo->hasDeclaration(ParserContext::OrderingModeDecl)) @@ -4063,27 +4083,27 @@ yyreduce: parseInfo->staticContext->setOrderingMode((yyvsp[-1].enums.orderingMode)); } } -#line 4017 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4038 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 49: -#line 1903 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1914 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.orderingMode) = StaticContext::Ordered; } -#line 4025 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4046 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 50: -#line 1907 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1918 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.orderingMode) = StaticContext::Unordered; } -#line 4033 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4054 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 51: -#line 1912 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1923 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->hasDeclaration(ParserContext::EmptyOrderDecl)) { @@ -4096,27 +4116,27 @@ yyreduce: parseInfo->staticContext->setOrderingEmptySequence((yyvsp[-1].enums.orderingEmptySequence)); } } -#line 4050 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4071 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 52: -#line 1926 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1937 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.orderingEmptySequence) = StaticContext::Least; } -#line 4058 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4079 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 53: -#line 1930 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1941 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.orderingEmptySequence) = StaticContext::Greatest; } -#line 4066 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4087 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 54: -#line 1936 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1947 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->hasDeclaration(ParserContext::CopyNamespacesDecl)) { @@ -4128,43 +4148,43 @@ yyreduce: parseInfo->registerDeclaration(ParserContext::CopyNamespacesDecl); } } -#line 4082 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4103 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 55: -#line 1949 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1960 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->preserveNamespacesMode = true; } -#line 4090 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4111 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 56: -#line 1954 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1965 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->preserveNamespacesMode = false; } -#line 4098 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4119 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 57: -#line 1959 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1970 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->inheritNamespacesMode = true; } -#line 4106 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4127 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 58: -#line 1964 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1975 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->inheritNamespacesMode = false; } -#line 4114 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4135 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 59: -#line 1969 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1980 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->hasDeclaration(ParserContext::DefaultCollationDecl)) { @@ -4179,11 +4199,11 @@ yyreduce: parseInfo->staticContext->setDefaultCollation(coll); } } -#line 4133 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4154 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 60: -#line 1985 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 1996 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc), (yyvsp[-2].enums.Bool)); if(parseInfo->hasDeclaration(ParserContext::BaseURIDecl)) @@ -4205,22 +4225,22 @@ yyreduce: parseInfo->staticContext->setBaseURI(toBeBase); } } -#line 4159 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4180 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 61: -#line 2008 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2019 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Import feature is not supported, " "and therefore %1 declarations cannot occur.") .arg(formatKeyword("import schema")), ReportContext::XQST0009, fromYYLTYPE((yyloc), parseInfo)); } -#line 4170 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4191 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 65: -#line 2020 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2031 "querytransformparser.ypp" /* yacc.c:1652 */ { if((yyvsp[-2].sval).isEmpty()) { @@ -4236,11 +4256,11 @@ yyreduce: ReportContext::XQST0016, fromYYLTYPE((yyloc), parseInfo)); } } -#line 4190 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4211 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 72: -#line 2047 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2058 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-6].enums.Bool)); if(variableByName((yyvsp[-4].qName), parseInfo)) @@ -4293,43 +4313,43 @@ yyreduce: } } } -#line 4247 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4268 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 73: -#line 2101 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2112 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr).reset(); } -#line 4255 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4276 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 74: -#line 2105 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2116 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 4263 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4284 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 75: -#line 2110 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2121 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr).reset(); } -#line 4271 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4292 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 76: -#line 2114 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2125 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 4279 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4300 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 77: -#line 2119 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2130 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->hasDeclaration(ParserContext::ConstructionDecl)) { @@ -4342,35 +4362,35 @@ yyreduce: parseInfo->staticContext->setConstructionMode((yyvsp[-1].enums.constructionMode)); } } -#line 4296 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4317 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 78: -#line 2133 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2144 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.constructionMode) = StaticContext::CMStrip; } -#line 4304 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4325 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 79: -#line 2137 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2148 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.constructionMode) = StaticContext::CMPreserve; } -#line 4312 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4333 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 80: -#line 2142 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2153 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.slot) = parseInfo->currentExpressionSlot() - (yyvsp[-1].functionArguments).count(); } -#line 4320 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4341 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 81: -#line 2146 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2157 "querytransformparser.ypp" /* yacc.c:1652 */ { if(!(yyvsp[-8].enums.Bool)) allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-8].enums.Bool)); @@ -4473,29 +4493,29 @@ yyreduce: ReportContext::XPST0017, fromYYLTYPE((yyloc), parseInfo)); } } -#line 4427 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4448 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 82: -#line 2250 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2261 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.functionArguments) = FunctionArgument::List(); } -#line 4435 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4456 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 83: -#line 2254 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2265 "querytransformparser.ypp" /* yacc.c:1652 */ { FunctionArgument::List l; l.append((yyvsp[0].functionArgument)); (yyval.functionArguments) = l; } -#line 4445 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4466 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 84: -#line 2260 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2271 "querytransformparser.ypp" /* yacc.c:1652 */ { FunctionArgument::List::const_iterator it((yyvsp[-2].functionArguments).constBegin()); const FunctionArgument::List::const_iterator end((yyvsp[-2].functionArguments).constEnd()); @@ -4515,44 +4535,44 @@ yyreduce: (yyvsp[-2].functionArguments).append((yyvsp[0].functionArgument)); (yyval.functionArguments) = (yyvsp[-2].functionArguments); } -#line 4469 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4490 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 85: -#line 2281 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2292 "querytransformparser.ypp" /* yacc.c:1652 */ { pushVariable((yyvsp[-1].qName), (yyvsp[0].sequenceType), Expression::Ptr(), VariableDeclaration::FunctionArgument, (yyloc), parseInfo); (yyval.functionArgument) = FunctionArgument::Ptr(new FunctionArgument((yyvsp[-1].qName), (yyvsp[0].sequenceType))); } -#line 4478 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4499 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 86: -#line 2287 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2298 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr).reset(); } -#line 4486 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4507 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 88: -#line 2293 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2304 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = (yyvsp[-1].expr); } -#line 4494 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4515 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 91: -#line 2309 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2320 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new CombineNodes((yyvsp[-2].expr), CombineNodes::Union, (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 4502 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4523 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 93: -#line 2315 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2326 "querytransformparser.ypp" /* yacc.c:1652 */ { /* 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, @@ -4561,11 +4581,11 @@ yyreduce: * document node." */ (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisSelf, BuiltinTypes::document), (yyloc), parseInfo); } -#line 4515 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4536 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 94: -#line 2324 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2335 "querytransformparser.ypp" /* yacc.c:1652 */ { /* /axis::node-test * => @@ -4635,11 +4655,11 @@ yyreduce: (yyval.expr) = (yyvsp[0].expr); } } -#line 4589 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4610 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 95: -#line 2394 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2405 "querytransformparser.ypp" /* yacc.c:1652 */ { /* //axis::node-test * => @@ -4650,27 +4670,27 @@ yyreduce: (yyval.expr) = create(GenericPredicate::create((yyvsp[0].expr), create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::node), (yyloc), parseInfo), parseInfo->staticContext, fromYYLTYPE((yylsp[-1]), parseInfo)), (yylsp[-1]), parseInfo); } -#line 4604 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4625 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 97: -#line 2406 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2417 "querytransformparser.ypp" /* yacc.c:1652 */ { createIdPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisParent, (yylsp[-1]), parseInfo); } -#line 4612 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4633 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 98: -#line 2410 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2421 "querytransformparser.ypp" /* yacc.c:1652 */ { createIdPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[-1]), parseInfo); } -#line 4620 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4641 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 99: -#line 2415 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2426 "querytransformparser.ypp" /* yacc.c:1652 */ { const Expression::List ands((yyvsp[0].expr)->operands()); const FunctionSignature::Ptr signature((yyvsp[0].expr)->as<FunctionCall>()->signature()); @@ -4738,27 +4758,27 @@ yyreduce: (yyval.expr) = (yyvsp[0].expr); } -#line 4692 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4713 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 101: -#line 2485 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2496 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = createPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisParent, (yylsp[-1]), parseInfo); } -#line 4700 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4721 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 102: -#line 2489 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2500 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = createPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[-1]), parseInfo); } -#line 4708 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4729 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 103: -#line 2494 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2505 "querytransformparser.ypp" /* yacc.c:1652 */ { const Expression::Ptr expr(findAxisStep((yyvsp[0].expr))); @@ -4801,108 +4821,108 @@ yyreduce: (yyval.expr) = (yyvsp[0].expr); } -#line 4755 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4776 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 105: -#line 2539 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2550 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new ExpressionSequence((yyvsp[0].expressionList)), (yyloc), parseInfo); } -#line 4763 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4784 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 106: -#line 2544 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2555 "querytransformparser.ypp" /* yacc.c:1652 */ { Expression::List l; l.append((yyvsp[-2].expr)); l.append((yyvsp[0].expr)); (yyval.expressionList) = l; } -#line 4774 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4795 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 107: -#line 2551 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2562 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyvsp[-2].expressionList).append((yyvsp[0].expr)); (yyval.expressionList) = (yyvsp[-2].expressionList); } -#line 4783 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4804 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 113: -#line 2562 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2573 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = createDirAttributeValue((yyvsp[-1].expressionList), parseInfo, (yyloc)); } -#line 4791 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4812 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 114: -#line 2567 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2578 "querytransformparser.ypp" /* yacc.c:1652 */ { QVector<QXmlName> result; result.append(QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default)); (yyval.qNameVector) = result; } -#line 4801 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4822 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 115: -#line 2573 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2584 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qNameVector) = (yyvsp[0].qNameVector); } -#line 4809 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4830 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 116: -#line 2578 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2589 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default); } -#line 4817 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4838 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 117: -#line 2582 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2593 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = (yyvsp[0].qName); } -#line 4825 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4846 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 118: -#line 2587 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2598 "querytransformparser.ypp" /* yacc.c:1652 */ { QVector<QXmlName> result; result.append((yyvsp[0].qName)); (yyval.qNameVector) = result; } -#line 4835 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4856 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 119: -#line 2593 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2604 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyvsp[-2].qNameVector).append((yyvsp[0].qName)); (yyval.qNameVector) = (yyvsp[-2].qNameVector); } -#line 4844 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4865 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 120: -#line 2599 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2610 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = (yyvsp[0].qName); } -#line 4852 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4873 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 121: -#line 2603 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2614 "querytransformparser.ypp" /* yacc.c:1652 */ { if((yyvsp[0].sval) == QLatin1String("#current")) (yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::current); @@ -4925,31 +4945,31 @@ yyreduce: (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[0].sval)); } } -#line 4879 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4900 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 124: -#line 2632 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2643 "querytransformparser.ypp" /* yacc.c:1652 */ { /* We're pushing the range variable here, not the positional. */ (yyval.expr) = pushVariable((yyvsp[-4].qName), quantificationType((yyvsp[-3].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } -#line 4888 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4909 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 125: -#line 2636 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2647 "querytransformparser.ypp" /* yacc.c:1652 */ { /* It is ok this appears after PositionalVar, because currentRangeSlot() * uses a different "channel" than currentPositionSlot(), so they can't trash * each other. */ (yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot(); } -#line 4899 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4920 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 126: -#line 2643 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2654 "querytransformparser.ypp" /* yacc.c:1652 */ { Q_ASSERT((yyvsp[-3].expr)); Q_ASSERT((yyvsp[0].expr)); @@ -4981,30 +5001,30 @@ yyreduce: if((yyvsp[-5].enums.slot) != -1) /* We also have a positional variable to remove from the scope. */ parseInfo->finalizePushedVariable(); } -#line 4935 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4956 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 127: -#line 2677 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2688 "querytransformparser.ypp" /* yacc.c:1652 */ { pushVariable((yyvsp[-4].qName), quantificationType((yyvsp[-3].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } -#line 4943 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4964 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 128: -#line 2680 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2691 "querytransformparser.ypp" /* yacc.c:1652 */ { /* It is ok this appears after PositionalVar, because currentRangeSlot() * uses a different "channel" than currentPositionSlot(), so they can't trash * each other. */ (yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot(); } -#line 4954 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4975 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 129: -#line 2687 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2698 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new ForClause((yyvsp[-1].enums.slot), (yyvsp[-3].expr), (yyvsp[0].expr), (yyvsp[-5].enums.slot)), (yyloc), parseInfo); @@ -5013,37 +5033,37 @@ yyreduce: if((yyvsp[-5].enums.slot) != -1) /* We also have a positional variable to remove from the scope. */ parseInfo->finalizePushedVariable(); } -#line 4967 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4988 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 133: -#line 2701 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2712 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.slot) = -1; } -#line 4975 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 4996 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 134: -#line 2706 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2717 "querytransformparser.ypp" /* yacc.c:1652 */ { pushVariable((yyvsp[0].qName), CommonSequenceTypes::ExactlyOneInteger, Expression::Ptr(), VariableDeclaration::PositionalVariable, (yyloc), parseInfo); (yyval.enums.slot) = parseInfo->currentPositionSlot(); } -#line 4985 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5006 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 135: -#line 2713 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2724 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo); } -#line 4993 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5014 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 136: -#line 2717 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2728 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-7].enums.Bool)); @@ -5051,38 +5071,38 @@ yyreduce: (yyval.expr) = create(new LetClause((yyvsp[-1].expr), (yyvsp[0].expr), parseInfo->variables.top()), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } -#line 5005 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5026 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 137: -#line 2726 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2737 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo);} -#line 5011 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5032 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 138: -#line 2728 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2739 "querytransformparser.ypp" /* yacc.c:1652 */ { Q_ASSERT(parseInfo->variables.top()->name == (yyvsp[-5].qName)); (yyval.expr) = create(new LetClause((yyvsp[-1].expr), (yyvsp[0].expr), parseInfo->variables.top()), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } -#line 5021 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5042 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 142: -#line 2739 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2750 "querytransformparser.ypp" /* yacc.c:1652 */ { if((yyvsp[-2].orderSpecs).isEmpty()) (yyval.expr) = (yyvsp[0].expr); else (yyval.expr) = createReturnOrderBy((yyvsp[-2].orderSpecs), (yyvsp[0].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo); } -#line 5032 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5053 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 143: -#line 2747 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2758 "querytransformparser.ypp" /* yacc.c:1652 */ { if((yyvsp[-2].orderSpecs).isEmpty()) (yyval.expr) = create(new IfThenClause((yyvsp[-3].expr), (yyvsp[0].expr), create(new EmptySequence, (yyloc), parseInfo)), (yyloc), parseInfo); @@ -5091,56 +5111,56 @@ yyreduce: create(new EmptySequence, (yyloc), parseInfo)), (yyloc), parseInfo); } -#line 5045 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5066 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 144: -#line 2757 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2768 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.orderSpecs) = OrderSpecTransfer::List(); } -#line 5053 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5074 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 146: -#line 2763 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2774 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.orderSpecs) = (yyvsp[0].orderSpecs); } -#line 5061 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5082 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 147: -#line 2768 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2779 "querytransformparser.ypp" /* yacc.c:1652 */ { OrderSpecTransfer::List list; list += (yyvsp[-2].orderSpecs); list.append((yyvsp[0].orderSpec)); (yyval.orderSpecs) = list; } -#line 5072 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5093 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 148: -#line 2775 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2786 "querytransformparser.ypp" /* yacc.c:1652 */ { OrderSpecTransfer::List list; list.append((yyvsp[0].orderSpec)); (yyval.orderSpecs) = list; } -#line 5082 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5103 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 149: -#line 2782 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2793 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.orderSpec) = OrderSpecTransfer((yyvsp[-3].expr), OrderBy::OrderSpec((yyvsp[-2].enums.sortDirection), (yyvsp[-1].enums.orderingEmptySequence))); } -#line 5090 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5111 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 150: -#line 2787 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2798 "querytransformparser.ypp" /* yacc.c:1652 */ { /* Where does the specification state the default value is ascending? * @@ -5160,199 +5180,199 @@ yyreduce: */ (yyval.enums.sortDirection) = OrderBy::OrderSpec::Ascending; } -#line 5114 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5135 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 151: -#line 2808 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2819 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.sortDirection) = OrderBy::OrderSpec::Ascending; } -#line 5122 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5143 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 152: -#line 2813 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2824 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.sortDirection) = OrderBy::OrderSpec::Descending; } -#line 5130 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5151 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 153: -#line 2818 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2829 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.orderingEmptySequence) = parseInfo->staticContext->orderingEmptySequence(); } -#line 5138 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5159 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 156: -#line 2825 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2836 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->isXSLT()) resolveAndCheckCollation<ReportContext::XTDE1035>((yyvsp[0].sval), parseInfo, (yyloc)); else resolveAndCheckCollation<ReportContext::XQST0076>((yyvsp[0].sval), parseInfo, (yyloc)); } -#line 5149 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5170 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 157: -#line 2832 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2843 "querytransformparser.ypp" /* yacc.c:1652 */ { /* We do nothing. We don't use collations, and we have this non-terminal * in order to accept expressions. */ } -#line 5158 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5179 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 158: -#line 2838 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2849 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->orderStability.push(OrderBy::StableOrder); } -#line 5166 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5187 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 159: -#line 2842 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2853 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->orderStability.push(OrderBy::UnstableOrder); } -#line 5174 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5195 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 162: -#line 2850 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2861 "querytransformparser.ypp" /* yacc.c:1652 */ { pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } -#line 5183 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5204 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 163: -#line 2854 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2865 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();} -#line 5189 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5210 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 164: -#line 2856 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2867 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot), QuantifiedExpression::Some, (yyvsp[-3].expr), (yyvsp[0].expr)), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } -#line 5200 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5221 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 165: -#line 2864 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2875 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } -#line 5209 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5230 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 166: -#line 2868 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2879 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();} -#line 5215 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5236 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 167: -#line 2870 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2881 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot), QuantifiedExpression::Some, (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } -#line 5225 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5246 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 169: -#line 2879 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2890 "querytransformparser.ypp" /* yacc.c:1652 */ { pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } -#line 5234 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5255 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 170: -#line 2883 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2894 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();} -#line 5240 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5261 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 171: -#line 2885 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2896 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot), QuantifiedExpression::Every, (yyvsp[-3].expr), (yyvsp[0].expr)), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } -#line 5251 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5272 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 172: -#line 2893 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2904 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo); } -#line 5260 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5281 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 173: -#line 2897 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2908 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();} -#line 5266 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5287 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 174: -#line 2899 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2910 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot), QuantifiedExpression::Every, (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); parseInfo->finalizePushedVariable(); } -#line 5276 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5297 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 176: -#line 2908 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2919 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 5284 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5305 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 177: -#line 2935 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2946 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->typeswitchSource.push((yyvsp[-1].expr)); } -#line 5292 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5313 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 178: -#line 2939 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2950 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); parseInfo->typeswitchSource.pop(); (yyval.expr) = (yyvsp[0].expr); } -#line 5302 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5323 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 179: -#line 2946 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2957 "querytransformparser.ypp" /* yacc.c:1652 */ { if(!(yyvsp[-1].qName).isNull()) { @@ -5360,54 +5380,54 @@ yyreduce: VariableDeclaration::ExpressionVariable, (yyloc), parseInfo, false); } } -#line 5314 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5335 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 180: -#line 2954 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2965 "querytransformparser.ypp" /* yacc.c:1652 */ { /* The variable shouldn't be in-scope for other case branches. */ if(!(yyvsp[-4].qName).isNull()) parseInfo->finalizePushedVariable(); } -#line 5324 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5345 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 181: -#line 2960 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2971 "querytransformparser.ypp" /* yacc.c:1652 */ { const Expression::Ptr instanceOf(create(new InstanceOf(parseInfo->typeswitchSource.top(), (yyvsp[-5].sequenceType)), (yyloc), parseInfo)); (yyval.expr) = create(new IfThenClause(instanceOf, (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5333 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5354 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 184: -#line 2969 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2980 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = QXmlName(); } -#line 5341 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5362 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 185: -#line 2974 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2985 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = (yyvsp[-1].qName); } -#line 5349 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5370 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 186: -#line 2979 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2990 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 5357 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5378 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 187: -#line 2983 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 2994 "querytransformparser.ypp" /* yacc.c:1652 */ { if(!(yyvsp[0].qName).isNull()) { @@ -5416,111 +5436,111 @@ yyreduce: VariableDeclaration::ExpressionVariable, (yyloc), parseInfo, false); } } -#line 5370 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5391 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 188: -#line 2992 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3003 "querytransformparser.ypp" /* yacc.c:1652 */ { if(!(yyvsp[-3].qName).isNull()) parseInfo->finalizePushedVariable(); (yyval.expr) = (yyvsp[0].expr); } -#line 5380 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5401 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 189: -#line 2999 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3010 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new IfThenClause((yyvsp[-5].expr), (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5389 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5410 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 191: -#line 3006 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3017 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new OrExpression((yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5398 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5419 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 193: -#line 3013 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3024 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new AndExpression((yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5407 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5428 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 199: -#line 3025 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3036 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new RangeExpression((yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5416 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5437 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 201: -#line 3032 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3043 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new ArithmeticExpression((yyvsp[-2].expr), (yyvsp[-1].enums.mathOperator), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5425 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5446 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 202: -#line 3037 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3048 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.mathOperator) = AtomicMathematician::Add;} -#line 5431 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5452 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 203: -#line 3038 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3049 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.mathOperator) = AtomicMathematician::Substract;} -#line 5437 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5458 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 205: -#line 3042 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3053 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new ArithmeticExpression((yyvsp[-2].expr), (yyvsp[-1].enums.mathOperator), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5446 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5467 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 206: -#line 3047 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3058 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.mathOperator) = AtomicMathematician::Multiply;} -#line 5452 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5473 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 207: -#line 3048 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3059 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.mathOperator) = AtomicMathematician::Div;} -#line 5458 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5479 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 208: -#line 3049 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3060 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.mathOperator) = AtomicMathematician::IDiv;} -#line 5464 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5485 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 209: -#line 3050 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3061 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.mathOperator) = AtomicMathematician::Mod;} -#line 5470 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5491 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 211: -#line 3054 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3065 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20 @@ -5529,213 +5549,213 @@ yyreduce: parseInfo, (yyloc)); (yyval.expr) = create(new CombineNodes((yyvsp[-2].expr), CombineNodes::Union, (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5483 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5504 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 213: -#line 3065 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3076 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new CombineNodes((yyvsp[-2].expr), (yyvsp[-1].enums.combinedNodeOp), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5492 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5513 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 216: -#line 3074 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3085 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.combinedNodeOp) = CombineNodes::Intersect; } -#line 5500 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5521 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 217: -#line 3078 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3089 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.combinedNodeOp) = CombineNodes::Except; } -#line 5508 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5529 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 219: -#line 3084 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3095 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new InstanceOf((yyvsp[-3].expr), SequenceType::Ptr((yyvsp[0].sequenceType))), (yyloc), parseInfo); } -#line 5518 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5539 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 221: -#line 3092 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3103 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new TreatAs((yyvsp[-3].expr), (yyvsp[0].sequenceType)), (yyloc), parseInfo); } -#line 5527 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5548 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 223: -#line 3099 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3110 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new CastableAs((yyvsp[-3].expr), (yyvsp[0].sequenceType)), (yyloc), parseInfo); } -#line 5536 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5557 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 225: -#line 3106 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3117 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new CastAs((yyvsp[-3].expr), (yyvsp[0].sequenceType)), (yyloc), parseInfo); } -#line 5545 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5566 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 227: -#line 3113 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3124 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new UnaryExpression((yyvsp[-1].enums.mathOperator), (yyvsp[0].expr), parseInfo->staticContext), (yyloc), parseInfo); } -#line 5554 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5575 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 228: -#line 3119 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3130 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.mathOperator) = AtomicMathematician::Add; } -#line 5562 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5583 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 229: -#line 3123 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3134 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.mathOperator) = AtomicMathematician::Substract; } -#line 5570 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5591 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 233: -#line 3132 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3143 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new GeneralComparison((yyvsp[-2].expr), (yyvsp[-1].enums.valueOperator), (yyvsp[0].expr), parseInfo->isBackwardsCompat.top()), (yyloc), parseInfo); } -#line 5579 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5600 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 234: -#line 3137 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3148 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;} -#line 5585 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5606 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 235: -#line 3138 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3149 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;} -#line 5591 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5612 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 236: -#line 3139 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3150 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;} -#line 5597 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5618 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 237: -#line 3140 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3151 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;} -#line 5603 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5624 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 238: -#line 3141 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3152 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;} -#line 5609 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5630 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 239: -#line 3142 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3153 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;} -#line 5615 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5636 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 240: -#line 3145 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3156 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new ValueComparison((yyvsp[-2].expr), (yyvsp[-1].enums.valueOperator), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5623 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5644 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 241: -#line 3149 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3160 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;} -#line 5629 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5650 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 242: -#line 3150 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3161 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;} -#line 5635 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5656 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 243: -#line 3151 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3162 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;} -#line 5641 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5662 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 244: -#line 3152 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3163 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;} -#line 5647 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5668 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 245: -#line 3153 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3164 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;} -#line 5653 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5674 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 246: -#line 3154 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3165 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;} -#line 5659 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5680 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 247: -#line 3157 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3168 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new NodeComparison((yyvsp[-2].expr), (yyvsp[-1].enums.nodeOperator), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5667 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5688 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 248: -#line 3161 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3172 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Is;} -#line 5673 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5694 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 249: -#line 3162 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3173 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Precedes;} -#line 5679 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5700 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 250: -#line 3163 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3174 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Follows;} -#line 5685 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5706 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 251: -#line 3166 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3177 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Validation Feature is not supported. " @@ -5746,29 +5766,29 @@ yyreduce: $$ = Validate::create($2, $1, parseInfo->staticContext); */ } -#line 5700 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5721 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 252: -#line 3179 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3190 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.validationMode) = Validate::Strict;} -#line 5706 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5727 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 253: -#line 3180 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3191 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.validationMode) = Validate::Strict;} -#line 5712 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5733 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 254: -#line 3181 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3192 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.validationMode) = Validate::Lax;} -#line 5718 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5739 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 255: -#line 3184 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3195 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); /* We don't support any pragmas, so we only do the @@ -5784,69 +5804,69 @@ yyreduce: ReportContext::XQST0079, fromYYLTYPE((yyloc), parseInfo)); } } -#line 5738 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5759 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 256: -#line 3201 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3212 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr).reset(); } -#line 5746 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5767 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 257: -#line 3205 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3216 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = (yyvsp[-1].expr); } -#line 5754 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5775 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 260: -#line 3213 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3224 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } -#line 5762 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5783 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 263: -#line 3221 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3232 "querytransformparser.ypp" /* yacc.c:1652 */ { /* This is "/step". That is, fn:root(self::node()) treat as document-node()/RelativePathExpr. */ (yyval.expr) = create(new Path(createRootExpression(parseInfo, (yyloc)), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5771 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5792 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 264: -#line 3227 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3238 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = createSlashSlashPath(createRootExpression(parseInfo, (yyloc)), (yyvsp[0].expr), (yyloc), parseInfo); } -#line 5779 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5800 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 265: -#line 3231 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3242 "querytransformparser.ypp" /* yacc.c:1652 */ { /* This is "/". That is, fn:root(self::node()) treat as document-node(). */ (yyval.expr) = createRootExpression(parseInfo, (yyloc)); } -#line 5788 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5809 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 268: -#line 3241 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3252 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new Path((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].enums.pathKind)), (yyloc), parseInfo); } -#line 5796 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5817 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 269: -#line 3245 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3256 "querytransformparser.ypp" /* yacc.c:1652 */ { const Expression::Ptr orderBy(createReturnOrderBy((yyvsp[-3].orderSpecs), (yyvsp[-1].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo)); @@ -5855,35 +5875,35 @@ yyreduce: (yyval.expr) = create(new OrderBy(rob->stability(), rob->orderSpecs(), path, rob), (yyloc), parseInfo); } -#line 5809 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5830 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 270: -#line 3254 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3265 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = createSlashSlashPath((yyvsp[-2].expr), (yyvsp[0].expr), (yyloc), parseInfo); } -#line 5817 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5838 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 271: -#line 3259 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3270 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = NodeSortExpression::wrapAround((yyvsp[0].expr), parseInfo->staticContext); } -#line 5825 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5846 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 273: -#line 3264 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3275 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new CurrentItemStore((yyvsp[0].expr)), (yyloc), parseInfo); } -#line 5833 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5854 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 274: -#line 3268 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3279 "querytransformparser.ypp" /* yacc.c:1652 */ { const xsDouble version = (yyvsp[0].sval).toDouble(); @@ -5891,32 +5911,32 @@ yyreduce: (yyval.enums.Double) = version; } -#line 5845 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5866 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 275: -#line 3276 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3287 "querytransformparser.ypp" /* yacc.c:1652 */ { if((yyvsp[-1].enums.Double) < 2) (yyval.expr) = createCompatStore((yyvsp[0].expr), (yyloc), parseInfo); else (yyval.expr) = (yyvsp[0].expr); } -#line 5856 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5877 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 276: -#line 3283 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3294 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XSLT20, parseInfo, (yyloc)); Q_ASSERT(!(yyvsp[-3].sval).isEmpty()); (yyval.expr) = create(new StaticBaseURIStore((yyvsp[-3].sval), (yyvsp[-1].expr)), (yyloc), parseInfo); } -#line 5866 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5887 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 277: -#line 3290 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3301 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc)); parseInfo->resolvers.push(parseInfo->staticContext->namespaceBindings()); @@ -5926,81 +5946,81 @@ yyreduce: parseInfo->staticContext->namePool()->allocatePrefix((yyvsp[-3].sval)))); parseInfo->staticContext->setNamespaceBindings(resolver); } -#line 5880 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5901 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 278: -#line 3301 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3312 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->staticContext->setNamespaceBindings(parseInfo->resolvers.pop()); (yyval.expr) = (yyvsp[-1].expr); } -#line 5889 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5910 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 279: -#line 3306 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3317 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new CallTemplate((yyvsp[-3].qName), parseInfo->templateWithParams), (yyloc), parseInfo); parseInfo->templateWithParametersHandled(); parseInfo->templateCalls.append((yyval.expr)); } -#line 5899 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5920 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 280: -#line 3313 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3324 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->startParsingWithParam(); } -#line 5907 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5928 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 281: -#line 3317 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3328 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->endParsingWithParam(); } -#line 5915 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5936 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 282: -#line 3322 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3333 "querytransformparser.ypp" /* yacc.c:1652 */ { } -#line 5922 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5943 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 283: -#line 3325 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3336 "querytransformparser.ypp" /* yacc.c:1652 */ { } -#line 5929 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5950 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 284: -#line 3328 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3339 "querytransformparser.ypp" /* yacc.c:1652 */ { } -#line 5936 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5957 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 285: -#line 3332 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3343 "querytransformparser.ypp" /* yacc.c:1652 */ { } -#line 5943 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5964 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 286: -#line 3335 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3346 "querytransformparser.ypp" /* yacc.c:1652 */ { } -#line 5950 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 5971 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 287: -#line 3339 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3350 "querytransformparser.ypp" /* yacc.c:1652 */ { /* Note, this grammar rule is invoked for @c xsl:param @em and @c * xsl:with-param. */ @@ -6064,84 +6084,84 @@ yyreduce: } } } -#line 6018 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6039 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 288: -#line 3404 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3415 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.Bool) = false; } -#line 6026 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6047 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 289: -#line 3408 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3419 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.Bool) = true; } -#line 6034 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6055 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 290: -#line 3413 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3424 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = Expression::Ptr(); } -#line 6042 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6063 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 291: -#line 3417 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3428 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 6050 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6071 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 292: -#line 3426 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3437 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.pathKind) = Path::RegularPath; } -#line 6058 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6079 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 293: -#line 3430 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3441 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.pathKind) = Path::XSLTForEach; } -#line 6066 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6087 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 294: -#line 3434 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3445 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.pathKind) = Path::ForApplyTemplate; } -#line 6074 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6095 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 296: -#line 3440 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3451 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(GenericPredicate::create((yyvsp[-3].expr), (yyvsp[-1].expr), parseInfo->staticContext, fromYYLTYPE((yyloc), parseInfo)), (yyloc), parseInfo); } -#line 6082 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6103 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 299: -#line 3448 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3459 "querytransformparser.ypp" /* yacc.c:1652 */ { if((yyvsp[0].enums.axis) == QXmlNodeModelIndex::AxisAttribute) parseInfo->nodeTestSource = BuiltinTypes::attribute; } -#line 6091 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6112 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 300: -#line 3453 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3464 "querytransformparser.ypp" /* yacc.c:1652 */ { if((yyvsp[0].itemType)) { @@ -6166,11 +6186,11 @@ yyreduce: parseInfo->restoreNodeTestSource(); } -#line 6120 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6141 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 304: -#line 3483 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3494 "querytransformparser.ypp" /* yacc.c:1652 */ { if((yyvsp[-1].enums.axis) == QXmlNodeModelIndex::AxisNamespace) { @@ -6213,102 +6233,102 @@ yyreduce: } } } -#line 6167 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6188 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 305: -#line 3526 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3537 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestorOrSelf ;} -#line 6173 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6194 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 306: -#line 3527 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3538 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestor ;} -#line 6179 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6200 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 307: -#line 3528 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3539 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisAttribute ;} -#line 6185 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6206 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 308: -#line 3529 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3540 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisChild ;} -#line 6191 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6212 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 309: -#line 3530 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3541 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendantOrSelf;} -#line 6197 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6218 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 310: -#line 3531 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3542 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendant ;} -#line 6203 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6224 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 311: -#line 3532 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3543 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowing ;} -#line 6209 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6230 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 312: -#line 3533 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3544 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisPreceding ;} -#line 6215 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6236 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 313: -#line 3534 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3545 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowingSibling;} -#line 6221 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6242 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 314: -#line 3535 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3546 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisPrecedingSibling;} -#line 6227 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6248 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 315: -#line 3536 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3547 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisParent ;} -#line 6233 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6254 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 316: -#line 3537 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3548 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.enums.axis) = QXmlNodeModelIndex::AxisSelf ;} -#line 6239 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6260 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 317: -#line 3540 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3551 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->nodeTestSource = BuiltinTypes::attribute; } -#line 6247 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6268 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 318: -#line 3544 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3555 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20 | QXmlQuery::XmlSchema11IdentityConstraintField), parseInfo, (yyloc)); (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[0].itemType)), (yyloc), parseInfo); parseInfo->restoreNodeTestSource(); } -#line 6258 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6279 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 319: -#line 3551 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3562 "querytransformparser.ypp" /* yacc.c:1652 */ { ItemType::Ptr nodeTest; @@ -6319,51 +6339,51 @@ yyreduce: (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisChild, nodeTest), (yyloc), parseInfo); } -#line 6273 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6294 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 320: -#line 3562 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3573 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[0].itemType)), (yyloc), parseInfo); } -#line 6281 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6302 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 322: -#line 3569 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3580 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::node), (yyloc), parseInfo); } -#line 6289 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6310 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 324: -#line 3575 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3586 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); } -#line 6297 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6318 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 325: -#line 3580 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3591 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = QNameTest::create(parseInfo->nodeTestSource, (yyvsp[0].qName)); } -#line 6305 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6326 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 327: -#line 3586 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3597 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = parseInfo->nodeTestSource; } -#line 6313 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6334 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 328: -#line 3590 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3601 "querytransformparser.ypp" /* yacc.c:1652 */ { const NamePool::Ptr np(parseInfo->staticContext->namePool()); const ReflectYYLTYPE ryy((yyloc), parseInfo); @@ -6372,30 +6392,30 @@ yyreduce: (yyval.itemType) = NamespaceNameTest::create(parseInfo->nodeTestSource, ns); } -#line 6326 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6347 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 329: -#line 3599 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3610 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); const QXmlName::LocalNameCode c = parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[0].sval)); (yyval.itemType) = LocalNameTest::create(parseInfo->nodeTestSource, c); } -#line 6336 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6357 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 331: -#line 3607 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3618 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(GenericPredicate::create((yyvsp[-3].expr), (yyvsp[-1].expr), parseInfo->staticContext, fromYYLTYPE((yylsp[0]), parseInfo)), (yyloc), parseInfo); } -#line 6345 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6366 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 339: -#line 3620 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3631 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new ApplyTemplate(parseInfo->modeFor((yyvsp[-3].qName)), parseInfo->templateWithParams, @@ -6404,97 +6424,97 @@ yyreduce: (yylsp[-4]), parseInfo); parseInfo->templateWithParametersHandled(); } -#line 6358 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6379 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 341: -#line 3631 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3642 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo); } -#line 6366 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6387 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 342: -#line 3636 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3647 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = createNumericLiteral<Double>((yyvsp[0].sval), (yyloc), parseInfo); } -#line 6375 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6396 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 343: -#line 3641 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3652 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = createNumericLiteral<Numeric>((yyvsp[0].sval), (yyloc), parseInfo); } -#line 6384 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6405 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 344: -#line 3647 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3658 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = resolveVariable((yyvsp[0].qName), (yyloc), parseInfo, false); } -#line 6393 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6414 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 345: -#line 3653 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3664 "querytransformparser.ypp" /* yacc.c:1652 */ { /* See: http://www.w3.org/TR/xpath20/#id-variables */ (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(QString(), (yyvsp[0].sval)); } -#line 6402 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6423 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 346: -#line 3658 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3669 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = (yyvsp[0].qName); } -#line 6410 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6431 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 347: -#line 3663 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3674 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = (yyvsp[-1].expr); } -#line 6419 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6440 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 348: -#line 3668 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3679 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); (yyval.expr) = create(new EmptySequence, (yyloc), parseInfo); } -#line 6428 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6449 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 349: -#line 3674 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3685 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new ContextItem(), (yyloc), parseInfo); } -#line 6436 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6457 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 350: -#line 3679 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3690 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 6444 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6465 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 351: -#line 3684 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3695 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); if(XPathHelper::isReservedNamespace((yyvsp[-3].qName).namespaceURI()) || (yyvsp[-3].qName).namespaceURI() == StandardNamespaces::InternalXSLT) @@ -6522,46 +6542,46 @@ yyreduce: parseInfo->userFunctionCallsites.append((yyval.expr)); } } -#line 6476 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6497 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 352: -#line 3713 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3724 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expressionList) = Expression::List(); } -#line 6484 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6505 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 353: -#line 3718 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3729 "querytransformparser.ypp" /* yacc.c:1652 */ { Expression::List list; list.append((yyvsp[0].expr)); (yyval.expressionList) = list; } -#line 6494 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6515 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 355: -#line 3727 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3738 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc)); } -#line 6502 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6523 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 360: -#line 3771 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3782 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.tokenizerPosition) = parseInfo->tokenizer->commenceScanOnly(); parseInfo->scanOnlyStack.push(true); } -#line 6511 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6532 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 361: -#line 3780 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3791 "querytransformparser.ypp" /* yacc.c:1652 */ { ++parseInfo->elementConstructorDepth; Expression::List constructors; @@ -6705,11 +6725,11 @@ yyreduce: parseInfo->tokenizer->resumeTokenizationFrom((yyvsp[-1].enums.tokenizerPosition)); } -#line 6659 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6680 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 362: -#line 3926 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 3937 "querytransformparser.ypp" /* yacc.c:1652 */ { /* We add the content constructor after the attribute constructors. This might result * in nested ExpressionSequences, but it will be optimized away later on. */ @@ -6804,19 +6824,19 @@ yyreduce: --parseInfo->elementConstructorDepth; } -#line 6758 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6779 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 363: -#line 4022 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4033 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new EmptySequence(), (yyloc), parseInfo); } -#line 6766 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6787 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 364: -#line 4026 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4037 "querytransformparser.ypp" /* yacc.c:1652 */ { if(!(yyvsp[-1].qName).isLexicallyEqual(parseInfo->tagStack.top())) { @@ -6834,60 +6854,60 @@ yyreduce: else (yyval.expr) = create(new ExpressionSequence((yyvsp[-3].expressionList)), (yyloc), parseInfo); } -#line 6788 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6809 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 365: -#line 4045 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4056 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.attributeHolders) = AttributeHolderVector(); } -#line 6796 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6817 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 366: -#line 4049 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4060 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyvsp[-1].attributeHolders).append((yyvsp[0].attributeHolder)); (yyval.attributeHolders) = (yyvsp[-1].attributeHolders); } -#line 6805 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6826 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 367: -#line 4055 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4066 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.attributeHolder) = qMakePair((yyvsp[-2].sval), (yyvsp[0].expr)); } -#line 6813 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6834 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 368: -#line 4060 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4071 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = createDirAttributeValue((yyvsp[-1].expressionList), parseInfo, (yyloc)); } -#line 6821 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6842 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 369: -#line 4065 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4076 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = createDirAttributeValue((yyvsp[-1].expressionList), parseInfo, (yyloc)); } -#line 6829 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6850 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 370: -#line 4070 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4081 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expressionList) = Expression::List(); } -#line 6837 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6858 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 371: -#line 4074 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4085 "querytransformparser.ypp" /* yacc.c:1652 */ { Expression::Ptr content((yyvsp[-1].expr)); @@ -6897,39 +6917,39 @@ yyreduce: (yyvsp[0].expressionList).prepend(createSimpleContent(content, (yyloc), parseInfo)); (yyval.expressionList) = (yyvsp[0].expressionList); } -#line 6851 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6872 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 372: -#line 4084 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4095 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyvsp[0].expressionList).prepend(create(new Literal(AtomicString::fromValue((yyvsp[-1].sval))), (yyloc), parseInfo)); (yyval.expressionList) = (yyvsp[0].expressionList); } -#line 6860 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6881 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 373: -#line 4090 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4101 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expressionList) = Expression::List(); parseInfo->isPreviousEnclosedExpr = false; } -#line 6869 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6890 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 374: -#line 4095 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4106 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyvsp[-1].expressionList).append((yyvsp[0].expr)); (yyval.expressionList) = (yyvsp[-1].expressionList); parseInfo->isPreviousEnclosedExpr = false; } -#line 6879 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6900 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 375: -#line 4101 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4112 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->staticContext->boundarySpacePolicy() == StaticContext::BSPStrip && XPathHelper::isWhitespaceOnly((yyvsp[0].sval))) @@ -6943,21 +6963,21 @@ yyreduce: parseInfo->isPreviousEnclosedExpr = false; } } -#line 6897 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6918 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 376: -#line 4115 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4126 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyvsp[-1].expressionList).append(create(new TextNodeConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo)); (yyval.expressionList) = (yyvsp[-1].expressionList); parseInfo->isPreviousEnclosedExpr = false; } -#line 6907 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6928 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 377: -#line 4121 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4132 "querytransformparser.ypp" /* yacc.c:1652 */ { /* 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. @@ -6973,19 +6993,19 @@ yyreduce: (yyvsp[-1].expressionList).append(createCopyOf((yyvsp[0].expr), parseInfo, (yyloc))); (yyval.expressionList) = (yyvsp[-1].expressionList); } -#line 6927 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6948 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 378: -#line 4138 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4149 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new CommentConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo); } -#line 6935 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6956 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 379: -#line 4143 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4154 "querytransformparser.ypp" /* yacc.c:1652 */ { const ReflectYYLTYPE ryy((yyloc), parseInfo); NCNameConstructor::validateTargetName<StaticContext::Ptr, @@ -6997,30 +7017,30 @@ yyreduce: create(new Literal(AtomicString::fromValue((yyvsp[-1].sval))), (yyloc), parseInfo), create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo); } -#line 6951 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6972 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 387: -#line 4164 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4175 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-1].enums.Bool)); (yyval.expr) = create(new DocumentConstructor((yyvsp[0].expr)), (yyloc), parseInfo); } -#line 6961 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6982 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 388: -#line 4171 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4182 "querytransformparser.ypp" /* yacc.c:1652 */ { /* This value is incremented before the action below is executed. */ ++parseInfo->elementConstructorDepth; } -#line 6970 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 6991 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 389: -#line 4176 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4187 "querytransformparser.ypp" /* yacc.c:1652 */ { Q_ASSERT(5); allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-3].enums.Bool)); @@ -7053,27 +7073,27 @@ yyreduce: --parseInfo->elementConstructorDepth; (yyval.expr) = create(new ElementConstructor((yyvsp[-2].expr), effExpr, parseInfo->isXSLT()), (yyloc), parseInfo); } -#line 7007 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7028 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 390: -#line 4210 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4221 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.Bool) = false; } -#line 7015 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7036 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 391: -#line 4214 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4225 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.enums.Bool) = true; } -#line 7023 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7044 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 392: -#line 4222 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4233 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-2].enums.Bool)); @@ -7084,29 +7104,29 @@ yyreduce: else (yyval.expr) = create(new AttributeConstructor(name, create(new EmptySequence(), (yyloc), parseInfo)), (yyloc), parseInfo); } -#line 7038 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7059 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 393: -#line 4234 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4245 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new TextNodeConstructor(createSimpleContent((yyvsp[0].expr), (yyloc), parseInfo)), (yyloc), parseInfo); } -#line 7046 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7067 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 394: -#line 4239 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4250 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-1].enums.Bool)); (yyval.expr) = create(new CommentConstructor(createSimpleContent((yyvsp[0].expr), (yyloc), parseInfo)), (yyloc), parseInfo); } -#line 7056 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7077 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 395: -#line 4246 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4257 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-1].expr)); @@ -7117,43 +7137,43 @@ yyreduce: else (yyval.expr) = create(new ProcessingInstructionConstructor((yyvsp[-1].expr), create(new EmptySequence(), (yyloc), parseInfo)), (yyloc), parseInfo); } -#line 7071 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7092 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 396: -#line 4257 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4268 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->nodeTestSource = BuiltinTypes::attribute; } -#line 7079 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7100 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 397: -#line 4261 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4272 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->restoreNodeTestSource(); } -#line 7087 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7108 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 398: -#line 4264 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4275 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[-1].qName)))), (yyloc), parseInfo); } -#line 7095 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7116 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 400: -#line 4270 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4281 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[0].qName)))), (yyloc), parseInfo); } -#line 7103 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7124 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 402: -#line 4276 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4287 "querytransformparser.ypp" /* yacc.c:1652 */ { if(BuiltinTypes::xsQName->xdtTypeMatches((yyvsp[0].expr)->staticType()->itemType())) (yyval.expr) = (yyvsp[0].expr); @@ -7164,115 +7184,115 @@ yyreduce: (yyloc), parseInfo); } } -#line 7118 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7139 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 403: -#line 4291 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4302 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new NCNameConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo); } -#line 7126 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7147 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 404: -#line 4295 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4306 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new NCNameConstructor((yyvsp[0].expr)), (yyloc), parseInfo); } -#line 7134 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7155 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 405: -#line 4304 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4315 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.expr) = create(new ComputedNamespaceConstructor((yyvsp[-1].expr), (yyvsp[0].expr)), (yyloc), parseInfo); } -#line 7142 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7163 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 406: -#line 4309 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4320 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.sequenceType) = makeGenericSequenceType((yyvsp[0].itemType), Cardinality::exactlyOne()); } -#line 7150 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7171 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 407: -#line 4313 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4324 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.sequenceType) = makeGenericSequenceType((yyvsp[-1].itemType), Cardinality::zeroOrOne()); } -#line 7158 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7179 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 408: -#line 4318 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4329 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.sequenceType) = CommonSequenceTypes::ZeroOrMoreItems; } -#line 7166 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7187 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 409: -#line 4322 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4333 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.sequenceType) = (yyvsp[0].sequenceType); } -#line 7174 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7195 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 410: -#line 4327 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4338 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.sequenceType) = makeGenericSequenceType((yyvsp[-1].itemType), (yyvsp[0].cardinality)); } -#line 7182 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7203 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 411: -#line 4332 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4343 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.sequenceType) = CommonSequenceTypes::Empty; } -#line 7190 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7211 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 412: -#line 4336 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4347 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.cardinality) = Cardinality::exactlyOne();} -#line 7196 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7217 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 413: -#line 4337 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4348 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.cardinality) = Cardinality::oneOrMore();} -#line 7202 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7223 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 414: -#line 4338 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4349 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.cardinality) = Cardinality::zeroOrMore();} -#line 7208 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7229 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 415: -#line 4339 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4350 "querytransformparser.ypp" /* yacc.c:1652 */ {(yyval.cardinality) = Cardinality::zeroOrOne();} -#line 7214 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7235 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 419: -#line 4345 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4356 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::item; } -#line 7222 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7243 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 420: -#line 4350 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4361 "querytransformparser.ypp" /* yacc.c:1652 */ { const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[0].qName))); @@ -7304,68 +7324,68 @@ yyreduce: } } } -#line 7258 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7279 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 428: -#line 4394 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4405 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::node; } -#line 7266 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7287 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 429: -#line 4399 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4410 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::document; } -#line 7274 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7295 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 430: -#line 4404 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4415 "querytransformparser.ypp" /* yacc.c:1652 */ { // TODO support for document element testing (yyval.itemType) = BuiltinTypes::document; } -#line 7283 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7304 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 433: -#line 4413 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4424 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::text; } -#line 7291 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7312 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 434: -#line 4418 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4429 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::comment; } -#line 7299 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7320 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 435: -#line 4423 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4434 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::pi; } -#line 7307 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7328 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 436: -#line 4428 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4439 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = LocalNameTest::create(BuiltinTypes::pi, parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[-1].sval))); } -#line 7315 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7336 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 437: -#line 4433 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4444 "querytransformparser.ypp" /* yacc.c:1652 */ { if(QXmlUtils::isNCName((yyvsp[-1].sval))) { @@ -7380,35 +7400,35 @@ yyreduce: fromYYLTYPE((yyloc), parseInfo)); } } -#line 7334 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7355 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 440: -#line 4452 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4463 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::attribute; } -#line 7342 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7363 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 441: -#line 4457 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4468 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::attribute; } -#line 7350 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7371 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 442: -#line 4462 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4473 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = QNameTest::create(BuiltinTypes::attribute, (yyvsp[-1].qName)); } -#line 7358 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7379 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 443: -#line 4466 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4477 "querytransformparser.ypp" /* yacc.c:1652 */ { const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-1].qName))); @@ -7420,11 +7440,11 @@ yyreduce: ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); } } -#line 7374 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7395 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 444: -#line 4478 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4489 "querytransformparser.ypp" /* yacc.c:1652 */ { const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-1].qName))); @@ -7436,11 +7456,11 @@ yyreduce: ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); } } -#line 7390 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7411 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 445: -#line 4491 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4502 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute " "declarations. Note that the schema import " @@ -7449,35 +7469,35 @@ yyreduce: ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); (yyval.itemType).reset(); } -#line 7403 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7424 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 446: -#line 4501 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4512 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::element; } -#line 7411 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7432 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 447: -#line 4506 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4517 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = BuiltinTypes::element; } -#line 7419 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7440 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 448: -#line 4511 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4522 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.itemType) = QNameTest::create(BuiltinTypes::element, (yyvsp[-1].qName)); } -#line 7427 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7448 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 449: -#line 4516 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4527 "querytransformparser.ypp" /* yacc.c:1652 */ { const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-2].qName))); @@ -7490,11 +7510,11 @@ yyreduce: ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); } } -#line 7444 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7465 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 450: -#line 4530 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4541 "querytransformparser.ypp" /* yacc.c:1652 */ { const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-2].qName))); @@ -7507,11 +7527,11 @@ yyreduce: ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); } } -#line 7461 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7482 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 453: -#line 4547 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4558 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute " "declarations. Note that the schema import " @@ -7520,72 +7540,72 @@ yyreduce: ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo)); (yyval.itemType).reset(); } -#line 7474 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7495 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 455: -#line 4559 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4570 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[0].sval)); } -#line 7482 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7503 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 457: -#line 4571 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4582 "querytransformparser.ypp" /* yacc.c:1652 */ { if(parseInfo->nodeTestSource == BuiltinTypes::element) (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->namespaceBindings()->lookupNamespaceURI(StandardPrefixes::empty), (yyvsp[0].sval)); else (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[0].sval)); } -#line 7493 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7514 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 462: -#line 4585 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4596 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->defaultFunctionNamespace(), (yyvsp[0].sval)); } -#line 7501 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7522 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 463: -#line 4589 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4600 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::InternalXSLT, (yyvsp[0].sval)); } -#line 7509 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7530 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 466: -#line 4597 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4608 "querytransformparser.ypp" /* yacc.c:1652 */ { parseInfo->staticContext->error(QtXmlPatterns::tr("The name of an extension expression must be in " "a namespace."), ReportContext::XPST0081, fromYYLTYPE((yyloc), parseInfo)); } -#line 7519 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7540 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 469: -#line 4607 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4618 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); } -#line 7527 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7548 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 470: -#line 4611 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4622 "querytransformparser.ypp" /* yacc.c:1652 */ { allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc)); } -#line 7535 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7556 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 471: -#line 4616 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4627 "querytransformparser.ypp" /* yacc.c:1652 */ { const ReflectYYLTYPE ryy((yyloc), parseInfo); @@ -7597,19 +7617,19 @@ yyreduce: parseInfo->staticContext->namespaceBindings(), &ryy); } -#line 7551 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7572 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; case 472: -#line 4628 "querytransformparser.ypp" /* yacc.c:1646 */ +#line 4639 "querytransformparser.ypp" /* yacc.c:1652 */ { (yyval.qName) = parseInfo->staticContext->namePool()->fromClarkName((yyvsp[0].sval)); } -#line 7559 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7580 "qquerytransformparser.cpp" /* yacc.c:1652 */ break; -#line 7563 "qquerytransformparser.cpp" /* yacc.c:1646 */ +#line 7584 "qquerytransformparser.cpp" /* yacc.c:1652 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7635,14 +7655,13 @@ yyreduce: /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } goto yynewstate; @@ -7725,14 +7744,11 @@ yyerrlab: | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - yyerror_range[1] = yylsp[1-yylen]; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); @@ -7798,6 +7814,7 @@ yyacceptlab: yyresult = 0; goto yyreturn; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ @@ -7805,6 +7822,7 @@ yyabortlab: yyresult = 1; goto yyreturn; + #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | @@ -7815,6 +7833,10 @@ yyexhaustedlab: /* Fall through. */ #endif + +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -7844,7 +7866,7 @@ yyreturn: #endif return yyresult; } -#line 4632 "querytransformparser.ypp" /* yacc.c:1906 */ +#line 4643 "querytransformparser.ypp" /* yacc.c:1918 */ QString Tokenizer::tokenToString(const Token &token) diff --git a/src/xmlpatterns/parser/qquerytransformparser_p.h b/src/xmlpatterns/parser/qquerytransformparser_p.h index df6cf04..7616086 100644 --- a/src/xmlpatterns/parser/qquerytransformparser_p.h +++ b/src/xmlpatterns/parser/qquerytransformparser_p.h @@ -47,11 +47,12 @@ // // We mean it. -/* A Bison parser, made by GNU Bison 3.0.2. */ +/* A Bison parser, made by GNU Bison 3.3.2. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 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 @@ -79,20 +80,31 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + #ifndef YY_XPATH_QQUERYTRANSFORMPARSER_P_H_INCLUDED # define YY_XPATH_QQUERYTRANSFORMPARSER_P_H_INCLUDED /* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif +#ifndef XPATHDEBUG +# if defined YYDEBUG #if YYDEBUG +# define XPATHDEBUG 1 +# else +# define XPATHDEBUG 0 +# endif +# else /* ! defined YYDEBUG */ +# define XPATHDEBUG 0 +# endif /* ! defined YYDEBUG */ +#endif /* ! defined XPATHDEBUG */ +#if XPATHDEBUG extern int XPathdebug; #endif /* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype +#ifndef XPATHTOKENTYPE +# define XPATHTOKENTYPE + enum XPathtokentype { T_END_OF_FILE = 0, T_STRING_LITERAL = 258, @@ -267,17 +279,17 @@ extern int XPathdebug; /* Value type. */ /* Location type. */ -#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE YYLTYPE; -struct YYLTYPE +#if ! defined XPATHLTYPE && ! defined XPATHLTYPE_IS_DECLARED +typedef struct XPATHLTYPE XPATHLTYPE; +struct XPATHLTYPE { int first_line; int first_column; int last_line; int last_column; }; -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 +# define XPATHLTYPE_IS_DECLARED 1 +# define XPATHLTYPE_IS_TRIVIAL 1 #endif diff --git a/src/xmlpatterns/parser/qtokenizer_p.h b/src/xmlpatterns/parser/qtokenizer_p.h index 772c958..385955a 100644 --- a/src/xmlpatterns/parser/qtokenizer_p.h +++ b/src/xmlpatterns/parser/qtokenizer_p.h @@ -63,7 +63,7 @@ * Macro for the data type of semantic values; int by default. * See section Data Types of Semantic Values. */ -#define YYSTYPE QPatternist::TokenValue +#define XPATHSTYPE QPatternist::TokenValue #include <private/qquerytransformparser_p.h> /* This inclusion must be after TokenValue. */ diff --git a/src/xmlpatterns/parser/qtokenlookup.cpp b/src/xmlpatterns/parser/qtokenlookup.cpp index 54d53ac..524e2d3 100644 --- a/src/xmlpatterns/parser/qtokenlookup.cpp +++ b/src/xmlpatterns/parser/qtokenlookup.cpp @@ -36,7 +36,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -/* C++ code produced by gperf version 3.0.4 */ +/* C++ code produced by gperf version 3.1 */ /* Command-line: gperf TokenLookup.gperf */ /* Computed positions: -k'1,3,$' */ @@ -64,10 +64,10 @@ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>." #endif -#line 99 "TokenLookup.gperf" +#line 105 "TokenLookup.gperf" QT_BEGIN_NAMESPACE @@ -75,7 +75,7 @@ QT_BEGIN_NAMESPACE namespace QPatternist { -#line 93 "TokenLookup.gperf" +#line 99 "TokenLookup.gperf" struct TokenMap { const char *name; @@ -128,19 +128,19 @@ TokenLookup::hash (const char *str, unsigned int len) 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 }; - int hval = len; + unsigned int hval = len; switch (hval) { default: - hval += asso_values[(unsigned char)str[2]]; + hval += asso_values[static_cast<unsigned char>(str[2])]; Q_FALLTHROUGH(); case 2: case 1: - hval += asso_values[(unsigned char)str[0]]; + hval += asso_values[static_cast<unsigned char>(str[0])]; break; } - return hval + asso_values[(unsigned char)str[len - 1]]; + return hval + asso_values[static_cast<unsigned char>(str[len - 1])]; } const struct TokenMap * @@ -158,255 +158,255 @@ TokenLookup::value (const char *str, unsigned int len) static const struct TokenMap wordlist[] = { {"",T_ERROR}, {"",T_ERROR}, -#line 144 "TokenLookup.gperf" +#line 150 "TokenLookup.gperf" {"eq", T_EQ}, {"",T_ERROR}, -#line 122 "TokenLookup.gperf" +#line 128 "TokenLookup.gperf" {"by", T_BY}, -#line 145 "TokenLookup.gperf" +#line 151 "TokenLookup.gperf" {"every", T_EVERY}, {"",T_ERROR}, -#line 115 "TokenLookup.gperf" +#line 121 "TokenLookup.gperf" {"as", T_AS}, {"",T_ERROR}, -#line 140 "TokenLookup.gperf" +#line 146 "TokenLookup.gperf" {"else", T_ELSE}, -#line 209 "TokenLookup.gperf" +#line 215 "TokenLookup.gperf" {"where", T_WHERE}, -#line 196 "TokenLookup.gperf" +#line 202 "TokenLookup.gperf" {"stable", T_STABLE}, -#line 118 "TokenLookup.gperf" +#line 124 "TokenLookup.gperf" {"at", T_AT}, {"",T_ERROR}, -#line 123 "TokenLookup.gperf" +#line 129 "TokenLookup.gperf" {"case", T_CASE}, {"",T_ERROR}, -#line 121 "TokenLookup.gperf" +#line 127 "TokenLookup.gperf" {"boundary-space", T_BOUNDARY_SPACE}, -#line 139 "TokenLookup.gperf" +#line 145 "TokenLookup.gperf" {"element", T_ELEMENT}, -#line 124 "TokenLookup.gperf" +#line 130 "TokenLookup.gperf" {"castable", T_CASTABLE}, -#line 119 "TokenLookup.gperf" +#line 125 "TokenLookup.gperf" {"attribute", T_ATTRIBUTE}, {"",T_ERROR}, -#line 146 "TokenLookup.gperf" +#line 152 "TokenLookup.gperf" {"except", T_EXCEPT}, -#line 153 "TokenLookup.gperf" +#line 159 "TokenLookup.gperf" {"ge", T_GE}, {"",T_ERROR}, -#line 125 "TokenLookup.gperf" +#line 131 "TokenLookup.gperf" {"cast", T_CAST}, -#line 202 "TokenLookup.gperf" +#line 208 "TokenLookup.gperf" {"treat", T_TREAT}, -#line 210 "TokenLookup.gperf" +#line 216 "TokenLookup.gperf" {"xquery", T_XQUERY}, -#line 173 "TokenLookup.gperf" +#line 179 "TokenLookup.gperf" {"ne", T_NE}, {"",T_ERROR}, -#line 190 "TokenLookup.gperf" +#line 196 "TokenLookup.gperf" {"satisfies", T_SATISFIES}, {"",T_ERROR}, {"",T_ERROR}, -#line 155 "TokenLookup.gperf" +#line 161 "TokenLookup.gperf" {"gt", T_GT}, -#line 143 "TokenLookup.gperf" +#line 149 "TokenLookup.gperf" {"encoding", T_ENCODING}, -#line 116 "TokenLookup.gperf" +#line 122 "TokenLookup.gperf" {"ascending", T_ASCENDING}, {"",T_ERROR}, -#line 117 "TokenLookup.gperf" +#line 123 "TokenLookup.gperf" {"assign", T_ASSIGN}, -#line 131 "TokenLookup.gperf" +#line 137 "TokenLookup.gperf" {"declare", T_DECLARE}, -#line 154 "TokenLookup.gperf" +#line 160 "TokenLookup.gperf" {"greatest", T_GREATEST}, -#line 200 "TokenLookup.gperf" +#line 206 "TokenLookup.gperf" {"then", T_THEN}, {"",T_ERROR}, -#line 113 "TokenLookup.gperf" +#line 119 "TokenLookup.gperf" {"ancestor-or-self", T_ANCESTOR_OR_SELF}, -#line 167 "TokenLookup.gperf" +#line 173 "TokenLookup.gperf" {"le", T_LE}, -#line 138 "TokenLookup.gperf" +#line 144 "TokenLookup.gperf" {"document-node", T_DOCUMENT_NODE}, -#line 199 "TokenLookup.gperf" +#line 205 "TokenLookup.gperf" {"text", T_TEXT}, {"",T_ERROR}, -#line 193 "TokenLookup.gperf" +#line 199 "TokenLookup.gperf" {"schema", T_SCHEMA}, {"",T_ERROR}, -#line 137 "TokenLookup.gperf" +#line 143 "TokenLookup.gperf" {"document", T_DOCUMENT}, {"",T_ERROR}, -#line 133 "TokenLookup.gperf" +#line 139 "TokenLookup.gperf" {"descendant", T_DESCENDANT}, {"",T_ERROR}, -#line 169 "TokenLookup.gperf" +#line 175 "TokenLookup.gperf" {"lt", T_LT}, -#line 114 "TokenLookup.gperf" +#line 120 "TokenLookup.gperf" {"and", T_AND}, -#line 174 "TokenLookup.gperf" +#line 180 "TokenLookup.gperf" {"node", T_NODE}, -#line 166 "TokenLookup.gperf" +#line 172 "TokenLookup.gperf" {"least", T_LEAST}, -#line 191 "TokenLookup.gperf" +#line 197 "TokenLookup.gperf" {"schema-attribute", T_SCHEMA_ATTRIBUTE}, {"",T_ERROR}, -#line 147 "TokenLookup.gperf" +#line 153 "TokenLookup.gperf" {"external", T_EXTERNAL}, {"",T_ERROR}, -#line 135 "TokenLookup.gperf" +#line 141 "TokenLookup.gperf" {"descending", T_DESCENDING}, -#line 176 "TokenLookup.gperf" +#line 182 "TokenLookup.gperf" {"no-preserve", T_NO_PRESERVE}, -#line 132 "TokenLookup.gperf" +#line 138 "TokenLookup.gperf" {"default", T_DEFAULT}, -#line 168 "TokenLookup.gperf" +#line 174 "TokenLookup.gperf" {"let", T_LET}, -#line 192 "TokenLookup.gperf" +#line 198 "TokenLookup.gperf" {"schema-element", T_SCHEMA_ELEMENT}, {"",T_ERROR}, {"",T_ERROR}, -#line 129 "TokenLookup.gperf" +#line 135 "TokenLookup.gperf" {"construction", T_CONSTRUCTION}, -#line 134 "TokenLookup.gperf" +#line 140 "TokenLookup.gperf" {"descendant-or-self", T_DESCENDANT_OR_SELF}, -#line 194 "TokenLookup.gperf" +#line 200 "TokenLookup.gperf" {"self", T_SELF}, -#line 175 "TokenLookup.gperf" +#line 181 "TokenLookup.gperf" {"no-inherit", T_NO_INHERIT}, {"",T_ERROR}, -#line 150 "TokenLookup.gperf" +#line 156 "TokenLookup.gperf" {"follows", T_FOLLOWS}, -#line 112 "TokenLookup.gperf" +#line 118 "TokenLookup.gperf" {"ancestor", T_ANCESTOR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, -#line 201 "TokenLookup.gperf" +#line 207 "TokenLookup.gperf" {"to", T_TO}, -#line 152 "TokenLookup.gperf" +#line 158 "TokenLookup.gperf" {"function", T_FUNCTION}, -#line 127 "TokenLookup.gperf" +#line 133 "TokenLookup.gperf" {"collation", T_COLLATION}, {"",T_ERROR}, -#line 197 "TokenLookup.gperf" +#line 203 "TokenLookup.gperf" {"strict", T_STRICT}, {"",T_ERROR}, -#line 165 "TokenLookup.gperf" +#line 171 "TokenLookup.gperf" {"lax", T_LAX}, {"",T_ERROR}, -#line 141 "TokenLookup.gperf" +#line 147 "TokenLookup.gperf" {"empty", T_EMPTY}, {"",T_ERROR}, -#line 177 "TokenLookup.gperf" +#line 183 "TokenLookup.gperf" {"of", T_OF}, -#line 187 "TokenLookup.gperf" +#line 193 "TokenLookup.gperf" {"preserve", T_PRESERVE}, -#line 148 "TokenLookup.gperf" +#line 154 "TokenLookup.gperf" {"following", T_FOLLOWING}, {"",T_ERROR}, {"",T_ERROR}, -#line 163 "TokenLookup.gperf" +#line 169 "TokenLookup.gperf" {"is", T_IS}, -#line 184 "TokenLookup.gperf" +#line 190 "TokenLookup.gperf" {"precedes", T_PRECEDES}, -#line 142 "TokenLookup.gperf" +#line 148 "TokenLookup.gperf" {"empty-sequence", T_EMPTY_SEQUENCE}, {"",T_ERROR}, {"",T_ERROR}, -#line 149 "TokenLookup.gperf" +#line 155 "TokenLookup.gperf" {"following-sibling", T_FOLLOWING_SIBLING}, -#line 161 "TokenLookup.gperf" +#line 167 "TokenLookup.gperf" {"instance", T_INSTANCE}, -#line 205 "TokenLookup.gperf" +#line 211 "TokenLookup.gperf" {"unordered", T_UNORDERED}, -#line 120 "TokenLookup.gperf" +#line 126 "TokenLookup.gperf" {"base-uri", T_BASEURI}, -#line 189 "TokenLookup.gperf" +#line 195 "TokenLookup.gperf" {"return", T_RETURN}, {"",T_ERROR}, -#line 206 "TokenLookup.gperf" +#line 212 "TokenLookup.gperf" {"validate", T_VALIDATE}, {"",T_ERROR}, -#line 130 "TokenLookup.gperf" +#line 136 "TokenLookup.gperf" {"copy-namespaces", T_COPY_NAMESPACES}, -#line 178 "TokenLookup.gperf" +#line 184 "TokenLookup.gperf" {"option", T_OPTION}, -#line 157 "TokenLookup.gperf" +#line 163 "TokenLookup.gperf" {"if", T_IF}, {"",T_ERROR}, -#line 185 "TokenLookup.gperf" +#line 191 "TokenLookup.gperf" {"preceding", T_PRECEDING}, {"",T_ERROR}, {"",T_ERROR}, -#line 160 "TokenLookup.gperf" +#line 166 "TokenLookup.gperf" {"in", T_IN}, {"",T_ERROR}, -#line 162 "TokenLookup.gperf" +#line 168 "TokenLookup.gperf" {"intersect", T_INTERSECT}, -#line 204 "TokenLookup.gperf" +#line 210 "TokenLookup.gperf" {"union", T_UNION}, {"",T_ERROR}, -#line 186 "TokenLookup.gperf" +#line 192 "TokenLookup.gperf" {"preceding-sibling", T_PRECEDING_SIBLING}, -#line 180 "TokenLookup.gperf" +#line 186 "TokenLookup.gperf" {"ordering", T_ORDERING}, -#line 195 "TokenLookup.gperf" +#line 201 "TokenLookup.gperf" {"some", T_SOME}, -#line 126 "TokenLookup.gperf" +#line 132 "TokenLookup.gperf" {"child", T_CHILD}, {"",T_ERROR}, -#line 179 "TokenLookup.gperf" +#line 185 "TokenLookup.gperf" {"ordered", T_ORDERED}, -#line 207 "TokenLookup.gperf" +#line 213 "TokenLookup.gperf" {"variable", T_VARIABLE}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, -#line 182 "TokenLookup.gperf" +#line 188 "TokenLookup.gperf" {"or", T_OR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, -#line 128 "TokenLookup.gperf" +#line 134 "TokenLookup.gperf" {"comment", T_COMMENT}, {"",T_ERROR}, {"",T_ERROR}, -#line 203 "TokenLookup.gperf" +#line 209 "TokenLookup.gperf" {"typeswitch", T_TYPESWITCH}, {"",T_ERROR}, -#line 159 "TokenLookup.gperf" +#line 165 "TokenLookup.gperf" {"inherit", T_INHERIT}, -#line 136 "TokenLookup.gperf" +#line 142 "TokenLookup.gperf" {"div", T_DIV}, {"",T_ERROR}, {"",T_ERROR}, -#line 171 "TokenLookup.gperf" +#line 177 "TokenLookup.gperf" {"module", T_MODULE}, {"",T_ERROR}, -#line 151 "TokenLookup.gperf" +#line 157 "TokenLookup.gperf" {"for", T_FOR}, -#line 172 "TokenLookup.gperf" +#line 178 "TokenLookup.gperf" {"namespace", T_NAMESPACE}, {"",T_ERROR}, {"",T_ERROR}, -#line 208 "TokenLookup.gperf" +#line 214 "TokenLookup.gperf" {"version", T_VERSION}, {"",T_ERROR}, {"",T_ERROR}, -#line 198 "TokenLookup.gperf" +#line 204 "TokenLookup.gperf" {"strip", T_STRIP}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, -#line 181 "TokenLookup.gperf" +#line 187 "TokenLookup.gperf" {"order", T_ORDER}, -#line 183 "TokenLookup.gperf" +#line 189 "TokenLookup.gperf" {"parent", T_PARENT}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, -#line 170 "TokenLookup.gperf" +#line 176 "TokenLookup.gperf" {"mod", T_MOD}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, -#line 158 "TokenLookup.gperf" +#line 164 "TokenLookup.gperf" {"import", T_IMPORT}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, -#line 188 "TokenLookup.gperf" +#line 194 "TokenLookup.gperf" {"processing-instruction", T_PROCESSING_INSTRUCTION}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, -#line 164 "TokenLookup.gperf" +#line 170 "TokenLookup.gperf" {"item", T_ITEM}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, @@ -416,15 +416,15 @@ TokenLookup::value (const char *str, unsigned int len) {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, {"",T_ERROR}, -#line 156 "TokenLookup.gperf" +#line 162 "TokenLookup.gperf" {"idiv", T_IDIV} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { - int key = hash (str, len); + unsigned int key = hash (str, len); - if (key <= MAX_HASH_VALUE && key >= 0) + if (key <= MAX_HASH_VALUE) { const char *s = wordlist[key].name; @@ -434,7 +434,7 @@ TokenLookup::value (const char *str, unsigned int len) } return 0; } -#line 211 "TokenLookup.gperf" +#line 217 "TokenLookup.gperf" } /* Close the QPatternist namespace. */ diff --git a/src/xmlpatterns/parser/qtokenrevealer.cpp b/src/xmlpatterns/parser/qtokenrevealer.cpp index 486c40d..a7d8bb1 100644 --- a/src/xmlpatterns/parser/qtokenrevealer.cpp +++ b/src/xmlpatterns/parser/qtokenrevealer.cpp @@ -60,7 +60,7 @@ void TokenRevealer::setParserContext(const ParserContext::Ptr &parseInfo) m_tokenizer->setParserContext(parseInfo); } -Tokenizer::Token TokenRevealer::nextToken(YYLTYPE *const sourceLocator) +Tokenizer::Token TokenRevealer::nextToken(XPATHLTYPE *const sourceLocator) { const Token token(m_tokenizer->nextToken(sourceLocator)); const QString asString(tokenToString(token)); diff --git a/src/xmlpatterns/parser/qtokenrevealer_p.h b/src/xmlpatterns/parser/qtokenrevealer_p.h index e2f73c4..7d49ecc 100644 --- a/src/xmlpatterns/parser/qtokenrevealer_p.h +++ b/src/xmlpatterns/parser/qtokenrevealer_p.h @@ -74,7 +74,7 @@ namespace QPatternist virtual ~TokenRevealer(); - virtual Token nextToken(YYLTYPE *const sourceLocator); + virtual Token nextToken(XPATHLTYPE *const sourceLocator); virtual int commenceScanOnly(); virtual void resumeTokenizationFrom(const int position); virtual void setParserContext(const ParserContext::Ptr &parseInfo); diff --git a/src/xmlpatterns/parser/qtokensource_p.h b/src/xmlpatterns/parser/qtokensource_p.h index bbad071..267df23 100644 --- a/src/xmlpatterns/parser/qtokensource_p.h +++ b/src/xmlpatterns/parser/qtokensource_p.h @@ -81,7 +81,7 @@ namespace QPatternist * typedef for the enum Bison generates that contains * the token symbols. */ - typedef yytokentype TokenType; + typedef XPathtokentype TokenType; /** * Represents a token by carrying its name and value. @@ -122,8 +122,7 @@ namespace QPatternist /** * @returns the next token. */ - - virtual Token nextToken(YYLTYPE *const sourceLocator) = 0; + virtual Token nextToken(XPATHLTYPE *const sourceLocator) = 0; private: Q_DISABLE_COPY(TokenSource) diff --git a/src/xmlpatterns/parser/qtokenvalue_p.h b/src/xmlpatterns/parser/qtokenvalue_p.h index cc7996b..4562b89 100644 --- a/src/xmlpatterns/parser/qtokenvalue_p.h +++ b/src/xmlpatterns/parser/qtokenvalue_p.h @@ -153,15 +153,15 @@ namespace QPatternist }; } -struct YYLTYPE +struct XPATHLTYPE { int first_line; int first_column; int last_line; int last_column; }; -#ifndef YYLTYPE_IS_DECLARED -# define YYLTYPE_IS_DECLARED +#ifndef XPATHLTYPE_IS_DECLARED +# define XPATHLTYPE_IS_DECLARED #endif QT_END_NAMESPACE diff --git a/src/xmlpatterns/parser/querytransformparser.ypp b/src/xmlpatterns/parser/querytransformparser.ypp index 3a26b0d..658d4b2 100644 --- a/src/xmlpatterns/parser/querytransformparser.ypp +++ b/src/xmlpatterns/parser/querytransformparser.ypp @@ -1107,16 +1107,16 @@ static Expression::Ptr createReturnOrderBy(const OrderSpecTransfer::List &orderS * specified below. This '%require' directive was introduced in Bison 2.2. */ %require "2.3a" -%name-prefix="XPath" +%define api.prefix {XPath} /* Specifies the name of the generated parser. */ -%output="qquerytransformparser.cpp" +%output "qquerytransformparser.cpp" /* Output the .output file. */ %verbose /* Yes, we want descriptive error messages. */ -%error-verbose +%define parse.error verbose /* We'd like to be reentrant/thread-safe */ %pure-parser diff --git a/src/xmlpatterns/parser/qxquerytokenizer.cpp b/src/xmlpatterns/parser/qxquerytokenizer.cpp index ab1cfdc..c5e2c4d 100644 --- a/src/xmlpatterns/parser/qxquerytokenizer.cpp +++ b/src/xmlpatterns/parser/qxquerytokenizer.cpp @@ -2140,7 +2140,7 @@ Tokenizer::Token XQueryTokenizer::attributeAsRaw(const QChar sep, } } -Tokenizer::Token XQueryTokenizer::nextToken(YYLTYPE *const sourceLocator) +Tokenizer::Token XQueryTokenizer::nextToken(XPATHLTYPE *const sourceLocator) { sourceLocator->first_line = m_line; sourceLocator->first_column = m_pos - m_columnOffset + 1; /* Plus 1, since m_pos is 0-based. */ diff --git a/src/xmlpatterns/parser/qxquerytokenizer_p.h b/src/xmlpatterns/parser/qxquerytokenizer_p.h index 33a31a6..13e7297 100644 --- a/src/xmlpatterns/parser/qxquerytokenizer_p.h +++ b/src/xmlpatterns/parser/qxquerytokenizer_p.h @@ -106,7 +106,7 @@ namespace QPatternist const QUrl &location, const State startingState = Default); - virtual Token nextToken(YYLTYPE *const sourceLocator); + virtual Token nextToken(XPATHLTYPE *const sourceLocator); virtual int commenceScanOnly(); virtual void resumeTokenizationFrom(const int position); diff --git a/src/xmlpatterns/parser/qxslttokenizer.cpp b/src/xmlpatterns/parser/qxslttokenizer.cpp index 38e0374..39007f2 100644 --- a/src/xmlpatterns/parser/qxslttokenizer.cpp +++ b/src/xmlpatterns/parser/qxslttokenizer.cpp @@ -52,7 +52,7 @@ QT_BEGIN_NAMESPACE using namespace QPatternist; -Tokenizer::Token SingleTokenContainer::nextToken(YYLTYPE *const location) +Tokenizer::Token SingleTokenContainer::nextToken(XPATHLTYPE *const location) { if(m_hasDelivered) return Tokenizer::Token(T_END_OF_FILE); @@ -777,7 +777,7 @@ void XSLTTokenizer::handleValidationAttributes(const bool isLRE) const validationAttribute); } -Tokenizer::Token XSLTTokenizer::nextToken(YYLTYPE *const sourceLocator) +Tokenizer::Token XSLTTokenizer::nextToken(XPATHLTYPE *const sourceLocator) { Q_UNUSED(sourceLocator); @@ -2687,9 +2687,9 @@ void XSLTTokenizer::insideFunction() * insideSequenceConstructor(). */ } -YYLTYPE XSLTTokenizer::currentSourceLocator() const +XPATHLTYPE XSLTTokenizer::currentSourceLocator() const { - YYLTYPE retval; + XPATHLTYPE retval; retval.first_line = lineNumber(); retval.first_column = columnNumber(); return retval; diff --git a/src/xmlpatterns/parser/qxslttokenizer_p.h b/src/xmlpatterns/parser/qxslttokenizer_p.h index 33155b9..5cab482 100644 --- a/src/xmlpatterns/parser/qxslttokenizer_p.h +++ b/src/xmlpatterns/parser/qxslttokenizer_p.h @@ -77,19 +77,20 @@ namespace QPatternist { public: inline SingleTokenContainer(const Tokenizer::Token &token, - const YYLTYPE &location); + const XPATHLTYPE &location); - virtual Tokenizer::Token nextToken(YYLTYPE *const sourceLocator); + virtual Tokenizer::Token nextToken(XPATHLTYPE *const sourceLocator); private: const Tokenizer::Token m_token; - const YYLTYPE m_location; + const XPATHLTYPE m_location; bool m_hasDelivered; }; SingleTokenContainer::SingleTokenContainer(const Tokenizer::Token &token, - const YYLTYPE &location) : m_token(token) - , m_location(location) - , m_hasDelivered(false) + const XPATHLTYPE &location) + : m_token(token) + , m_location(location) + , m_hasDelivered(false) { } @@ -117,7 +118,7 @@ namespace QPatternist const ReportContext::Ptr &context, const NamePool::Ptr &np); - virtual Token nextToken(YYLTYPE *const sourceLocator); + virtual Token nextToken(XPATHLTYPE *const sourceLocator); /** * For XSLT we don't need this mechanism, so we do nothing. @@ -142,7 +143,7 @@ namespace QPatternist private: inline void validateElement() const; - YYLTYPE currentSourceLocator() const; + XPATHLTYPE currentSourceLocator() const; enum State { diff --git a/src/xmlpatterns/schema/qxsdparticlechecker.cpp b/src/xmlpatterns/schema/qxsdparticlechecker.cpp index 139390d..ad7cc8e 100644 --- a/src/xmlpatterns/schema/qxsdparticlechecker.cpp +++ b/src/xmlpatterns/schema/qxsdparticlechecker.cpp @@ -464,7 +464,7 @@ bool XsdParticleChecker::subsumes(const XsdParticle::Ptr &particle, const XsdPar } QHash<XsdTerm::Ptr, XsdParticle::Ptr> particlesHash = XsdStateMachineBuilder::particleLookupMap(particle); - particlesHash.unite(XsdStateMachineBuilder::particleLookupMap(derivedParticle)); + particlesHash.insert(XsdStateMachineBuilder::particleLookupMap(derivedParticle)); /* static int counter = 0; diff --git a/src/xmlpatterns/schema/qxsdschemachecker.cpp b/src/xmlpatterns/schema/qxsdschemachecker.cpp index 91a796a..9f7c6a2 100644 --- a/src/xmlpatterns/schema/qxsdschemachecker.cpp +++ b/src/xmlpatterns/schema/qxsdschemachecker.cpp @@ -105,7 +105,7 @@ void XsdSchemaChecker::check() void XsdSchemaChecker::addComponentLocationHash(const ComponentLocationHash &hash) { - m_componentLocationHash.unite(hash); + m_componentLocationHash.insert(hash); } /** diff --git a/src/xmlpatterns/schema/qxsdschemahelper.cpp b/src/xmlpatterns/schema/qxsdschemahelper.cpp index ce99ea7..1123e4f 100644 --- a/src/xmlpatterns/schema/qxsdschemahelper.cpp +++ b/src/xmlpatterns/schema/qxsdschemahelper.cpp @@ -388,7 +388,7 @@ XsdWildcard::Ptr XsdSchemaHelper::wildcardIntersection(const XsdWildcard::Ptr &w static SchemaType::DerivationConstraints convertBlockingConstraints(const NamedSchemaComponent::BlockingConstraints &constraints) { - SchemaType::DerivationConstraints result = 0; + SchemaType::DerivationConstraints result; if (constraints & NamedSchemaComponent::RestrictionConstraint) result |= SchemaType::RestrictionConstraint; diff --git a/src/xmlpatterns/schema/qxsdschemaparser.cpp b/src/xmlpatterns/schema/qxsdschemaparser.cpp index 9f11d69..33b9f94 100644 --- a/src/xmlpatterns/schema/qxsdschemaparser.cpp +++ b/src/xmlpatterns/schema/qxsdschemaparser.cpp @@ -450,7 +450,7 @@ void XsdSchemaParser::parseSchema(ParserType parserType) if (hasAttribute(QString::fromLatin1("blockDefault"))) { const QString blockDefault = readAttribute(QString::fromLatin1("blockDefault")); - const QStringList blockDefaultList = blockDefault.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList blockDefaultList = blockDefault.split(QLatin1Char(' '), Qt::SkipEmptyParts); for (int i = 0; i < blockDefaultList.count(); ++i) { const QString value = blockDefaultList.at(i); if (value != QString::fromLatin1("#all") && @@ -467,7 +467,7 @@ void XsdSchemaParser::parseSchema(ParserType parserType) if (hasAttribute(QString::fromLatin1("finalDefault"))) { const QString finalDefault = readAttribute(QString::fromLatin1("finalDefault")); - const QStringList finalDefaultList = finalDefault.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList finalDefaultList = finalDefault.split(QLatin1Char(' '), Qt::SkipEmptyParts); for (int i = 0; i < finalDefaultList.count(); ++i) { const QString value = finalDefaultList.at(i); if (value != QString::fromLatin1("#all") && @@ -1733,7 +1733,7 @@ void XsdSchemaParser::parseUnion(const XsdSimpleType::Ptr &ptr) bool hasMemberTypesSpecified = false; if (hasAttribute(QString::fromLatin1("memberTypes"))) { - const QStringList memberTypes = readAttribute(QString::fromLatin1("memberTypes")).split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList memberTypes = readAttribute(QString::fromLatin1("memberTypes")).split(QLatin1Char(' '), Qt::SkipEmptyParts); QList<QXmlName> typeNames; for (int i = 0; i < memberTypes.count(); ++i) { @@ -4550,7 +4550,7 @@ XsdElement::Ptr XsdSchemaParser::parseGlobalElement() QList<QXmlName> elementNames; const QString value = readAttribute(QString::fromLatin1("substitutionGroup")); - const QStringList substitutionGroups = value.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList substitutionGroups = value.split(QLatin1Char(' '), Qt::SkipEmptyParts); if (substitutionGroups.isEmpty()) { attributeContentError("substitutionGroup", "element", value, BuiltinTypes::xsQName); return element; @@ -5420,7 +5420,7 @@ XsdWildcard::Ptr XsdSchemaParser::parseAny(const XsdParticle::Ptr &particle) } if (hasAttribute(QString::fromLatin1("namespace"))) { - const auto valueList = readAttribute(QString::fromLatin1("namespace")).split(QLatin1Char(' '), QString::SkipEmptyParts); + const auto valueList = readAttribute(QString::fromLatin1("namespace")).split(QLatin1Char(' '), Qt::SkipEmptyParts); const QSet<QString> values(valueList.cbegin(), valueList.cend()); if ((values.contains(QString::fromLatin1("##any")) || values.contains(QString::fromLatin1("##other"))) && values.count() != 1) { error(QtXmlPatterns::tr("%1 attribute of %2 element must contain %3, %4 or a list of URIs.") @@ -5533,7 +5533,7 @@ XsdWildcard::Ptr XsdSchemaParser::parseAnyAttribute() // parse attributes if (hasAttribute(QString::fromLatin1("namespace"))) { - const auto valueList = readAttribute(QString::fromLatin1("namespace")).split(QLatin1Char(' '), QString::SkipEmptyParts); + const auto valueList = readAttribute(QString::fromLatin1("namespace")).split(QLatin1Char(' '), Qt::SkipEmptyParts); const QSet<QString> values(valueList.cbegin(), valueList.cend()); if ((values.contains(QString::fromLatin1("##any")) || values.contains(QString::fromLatin1("##other"))) && values.count() != 1) { error(QtXmlPatterns::tr("%1 attribute of %2 element must contain %3, %4 or a list of URIs.") @@ -5796,7 +5796,7 @@ SchemaType::DerivationConstraints XsdSchemaParser::readDerivationConstraintAttri content = readAttribute(QString::fromLatin1("final")); // split string into list to validate the content of the attribute - const QStringList values = content.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList values = content.split(QLatin1Char(' '), Qt::SkipEmptyParts); for (int i = 0; i < values.count(); i++) { const QString value = values.at(i); if (!allowedContent.contains(value) && (value != QString::fromLatin1("#all"))) { @@ -5817,7 +5817,7 @@ SchemaType::DerivationConstraints XsdSchemaParser::readDerivationConstraintAttri content = m_finalDefault; } - const auto &contentList = content.split(QLatin1Char(' '), QString::SkipEmptyParts); + const auto &contentList = content.split(QLatin1Char(' '), Qt::SkipEmptyParts); QSet<QString> contentSet(contentList.cbegin(), contentList.cend()); // if the '#all' tag is defined, we return all allowed values @@ -5858,7 +5858,7 @@ NamedSchemaComponent::BlockingConstraints XsdSchemaParser::readBlockingConstrain content = readAttribute(QString::fromLatin1("block")); // split string into list to validate the content of the attribute - const QStringList values = content.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList values = content.split(QLatin1Char(' '), Qt::SkipEmptyParts); for (int i = 0; i < values.count(); i++) { const QString value = values.at(i); if (!allowedContent.contains(value) && (value != QString::fromLatin1("#all"))) { @@ -5879,7 +5879,7 @@ NamedSchemaComponent::BlockingConstraints XsdSchemaParser::readBlockingConstrain content = m_blockDefault; } - const auto &contentList = content.split(QLatin1Char(' '), QString::SkipEmptyParts); + const auto &contentList = content.split(QLatin1Char(' '), Qt::SkipEmptyParts); QSet<QString> contentSet(contentList.cbegin(), contentList.cend()); // if the '#all' tag is defined, we return all allowed values diff --git a/src/xmlpatterns/schema/qxsdschemaresolver.cpp b/src/xmlpatterns/schema/qxsdschemaresolver.cpp index 1d21e31..7ca3808 100644 --- a/src/xmlpatterns/schema/qxsdschemaresolver.cpp +++ b/src/xmlpatterns/schema/qxsdschemaresolver.cpp @@ -264,7 +264,7 @@ void XsdSchemaResolver::addSubstitutionGroupType(const XsdElement::Ptr &element) void XsdSchemaResolver::addComponentLocationHash(const ComponentLocationHash &hash) { - m_componentLocationHash.unite(hash); + m_componentLocationHash.insert(hash); } void XsdSchemaResolver::addEnumerationFacetValue(const AtomicValue::Ptr &facetValue, const NamespaceSupport &namespaceSupport) diff --git a/src/xmlpatterns/schema/qxsdtypechecker.cpp b/src/xmlpatterns/schema/qxsdtypechecker.cpp index d165a1f..669f42c 100644 --- a/src/xmlpatterns/schema/qxsdtypechecker.cpp +++ b/src/xmlpatterns/schema/qxsdtypechecker.cpp @@ -266,7 +266,7 @@ bool XsdTypeChecker::isValidString(const QString &normalizedString, const AnySim *boundType = type; } else if (simpleType->category() == XsdSimpleType::SimpleTypeList) { - QStringList entries = normalizedString.split(QLatin1Char(' '), QString::SkipEmptyParts); + QStringList entries = normalizedString.split(QLatin1Char(' '), Qt::SkipEmptyParts); for (int i = 0; i < entries.count(); ++i) { entries[i] = normalizedValue(entries.at(i), mergedFacetsForType(simpleType->itemType(), m_context)); } @@ -336,8 +336,8 @@ bool XsdTypeChecker::valuesAreEqual(const QString &value, const QString &otherVa return XsdSchemaHelper::constructAndCompare(valueStr, AtomicComparator::OperatorEqual, otherValueStr, targetType, m_context, m_reflection); } else if (type->category() == SchemaType::SimpleTypeList) { - const QStringList values = value.split(QLatin1Char(' '), QString::SkipEmptyParts); - const QStringList otherValues = otherValue.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList values = value.split(QLatin1Char(' '), Qt::SkipEmptyParts); + const QStringList otherValues = otherValue.split(QLatin1Char(' '), Qt::SkipEmptyParts); if (values.count() != otherValues.count()) return false; @@ -1131,7 +1131,7 @@ bool XsdTypeChecker::checkConstrainingFacetsList(const QStringList &values, cons const AtomicValue::List multiValue = facet->multiValue(); for (int i = 0; i < multiValue.count(); ++i) { - const QStringList facetValueList = multiValue.at(i)->as<DerivedString<TypeString> >()->stringValue().split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList facetValueList = multiValue.at(i)->as<DerivedString<TypeString> >()->stringValue().split(QLatin1Char(' '), Qt::SkipEmptyParts); // create the list of atomic string values QList<QXmlName> facetValues; @@ -1171,7 +1171,7 @@ bool XsdTypeChecker::checkConstrainingFacetsList(const QStringList &values, cons const AtomicValue::List multiValue = facet->multiValue(); for (int i = 0; i < multiValue.count(); ++i) { - const QStringList facetValueList = multiValue.at(i)->as<DerivedString<TypeString> >()->stringValue().split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList facetValueList = multiValue.at(i)->as<DerivedString<TypeString> >()->stringValue().split(QLatin1Char(' '), Qt::SkipEmptyParts); // create the list of atomic string values AtomicValue::List facetValues; diff --git a/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp index de772e5..50d5a16 100644 --- a/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp +++ b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp @@ -210,7 +210,7 @@ bool XsdValidatingInstanceReader::validate(bool &hasStateMachine, XsdElement::Pt // first check if a custom schema is defined if (hasAttribute(m_xsiSchemaLocationName)) { const QString schemaLocation = attribute(m_xsiSchemaLocationName); - const QStringList parts = schemaLocation.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList parts = schemaLocation.split(QLatin1Char(' '), Qt::SkipEmptyParts); if ((parts.count()%2) == 1) { error(QtXmlPatterns::tr("%1 contains invalid data.").arg(formatKeyword(m_namePool, m_xsiSchemaLocationName))); return false; @@ -489,7 +489,7 @@ bool XsdValidatingInstanceReader::validateElement(const XsdElement::Ptr &declara } // 4.2 - SchemaType::DerivationConstraints constraints = 0; + SchemaType::DerivationConstraints constraints; if (declaration->disallowedSubstitutions() & NamedSchemaComponent::ExtensionConstraint) constraints |= SchemaType::ExtensionConstraint; if (declaration->disallowedSubstitutions() & NamedSchemaComponent::RestrictionConstraint) @@ -595,7 +595,7 @@ bool XsdValidatingInstanceReader::validateElementSimpleType(const XsdElement::Pt } if (m_idRefsType->wxsTypeMatches(type)) { - const QStringList idRefs = actualValue.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList idRefs = actualValue.split(QLatin1Char(' '), Qt::SkipEmptyParts); for (int i = 0; i < idRefs.count(); ++i) { m_idRefs.insert(idRefs.at(i)); } @@ -853,7 +853,7 @@ bool XsdValidatingInstanceReader::validateAttribute(const XsdAttributeUse::Ptr & } if (m_idRefsType->wxsTypeMatches(declaration->attribute()->type())) { - const QStringList idRefs = actualValue.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList idRefs = actualValue.split(QLatin1Char(' '), Qt::SkipEmptyParts); for (int i = 0; i < idRefs.count(); ++i) m_idRefs.insert(idRefs.at(i)); } else if (BuiltinTypes::xsIDREF->wxsTypeMatches(declaration->attribute()->type())) { @@ -899,7 +899,7 @@ bool XsdValidatingInstanceReader::validateAttribute(const XsdAttribute::Ptr &dec } if (m_idRefsType->wxsTypeMatches(declaration->type())) { - const QStringList idRefs = actualValue.split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList idRefs = actualValue.split(QLatin1Char(' '), Qt::SkipEmptyParts); for (int i = 0; i < idRefs.count(); ++i) m_idRefs.insert(idRefs.at(i)); } else if (BuiltinTypes::xsIDREF->wxsTypeMatches(declaration->type())) { diff --git a/tests/auto/xmlpatternsdiagnosticsts/Baseline.xml b/tests/auto/xmlpatternsdiagnosticsts/Baseline.xml index 166fbf3..acf7df3 100644 --- a/tests/auto/xmlpatternsdiagnosticsts/Baseline.xml +++ b/tests/auto/xmlpatternsdiagnosticsts/Baseline.xml @@ -1,2 +1,2 @@ <?xml version="1.0" encoding="UTF-8"?> -<test-suite-result xmlns="http://www.w3.org/2005/02/query-test-XQTSResult"><implementation name="Patternist" version="0.1"><organization name="K Desktop Environment(KDE)" website="http://www.kde.org/"/><submittor name="Frans Englich" email="frans.englich@nokia.com"/><description><p>Patternist is an implementation written in C++ and with the Qt/KDE libraries. It is licensed under GNU LGPL and part of KDE, the K Desktop Environment.</p></description></implementation><syntax>XQuery</syntax><test-run dateRun="2008-06-23"><test-suite version="0.1"/></test-run><test-case name="fail-1" result="fail"/><test-case name="fail-2" result="fail"/><test-case name="fail-3" result="fail"/><test-case name="fail-4" result="fail"/><test-case name="fail-5" result="fail"/><test-case name="fail-6" result="fail"/><test-case name="fail-7" result="fail"/><test-case name="fail-8" result="fail"/><test-case name="fail-9" result="fail"/><test-case name="fail-10" result="fail"/><test-case name="fail-11" result="fail"/><test-case name="fail-12" result="fail"/><test-case name="fail-13" result="fail"/><test-case name="fail-14" result="fail"/><test-case name="fail-15" result="fail"/><test-case name="fail-16" result="fail"/><test-case name="fail-17" result="fail"/><test-case name="fail-18" result="fail"/><test-case name="fail-19" result="fail"/><test-case name="fail-20" result="fail"/><test-case name="fail-21" result="fail"/><test-case name="fail-22" result="fail"/><test-case name="fail-23" result="fail"/><test-case name="fail-24" result="fail"/><test-case name="succeed-1" result="pass"/><test-case name="succeed-2" result="pass"/><test-case name="succeed-3" result="pass"/><test-case name="succeed-4" result="pass"/><test-case name="succeed-5" result="pass"/><test-case name="succeed-6" result="pass"/><test-case name="succeed-7" result="pass"/><test-case name="succeed-8" result="pass"/><test-case name="succeed-9" result="pass"/><test-case name="succeed-10" result="pass"/><test-case name="succeed-11" result="pass"/><test-case name="succeed-12" result="pass"/><test-case name="succeed-13" result="pass"/><test-case name="succeed-14" result="pass"/></test-suite-result>
\ No newline at end of file +<test-suite-result xmlns="http://www.w3.org/2005/02/query-test-XQTSResult"><implementation name="Patternist" version="0.1"><organization name="K Desktop Environment(KDE)" website="http://www.kde.org/"/><submittor name="Frans Englich" email="frans.englich@nokia.com"/><description><p>Patternist is an implementation written in C++ and with the Qt/KDE libraries. It is licensed under GNU LGPL and part of KDE, the K Desktop Environment.</p></description></implementation><syntax>XQuery</syntax><test-run dateRun="2008-06-23"><test-suite version="0.1"/></test-run><test-case name="fail-1" result="fail"/><test-case name="fail-2" result="fail"/><test-case name="fail-3" result="fail"/><test-case name="fail-4" result="fail"/><test-case name="fail-5" result="fail"/><test-case name="fail-6" result="fail"/><test-case name="fail-7" result="fail"/><test-case name="fail-8" result="fail"/><test-case name="fail-9" result="fail"/><test-case name="fail-10" result="fail"/><test-case name="fail-11" result="fail"/><test-case name="fail-12" result="fail"/><test-case name="fail-13" result="fail"/><test-case name="fail-14" result="fail"/><test-case name="fail-15" result="fail"/><test-case name="fail-16" result="fail"/><test-case name="fail-18" result="fail"/><test-case name="fail-19" result="fail"/><test-case name="fail-20" result="fail"/><test-case name="fail-21" result="fail"/><test-case name="fail-22" result="fail"/><test-case name="fail-23" result="fail"/><test-case name="fail-24" result="fail"/><test-case name="succeed-1" result="pass"/><test-case name="succeed-2" result="pass"/><test-case name="succeed-3" result="pass"/><test-case name="succeed-4" result="pass"/><test-case name="succeed-5" result="pass"/><test-case name="succeed-6" result="pass"/><test-case name="succeed-7" result="pass"/><test-case name="succeed-8" result="pass"/><test-case name="succeed-9" result="pass"/><test-case name="succeed-10" result="pass"/><test-case name="succeed-11" result="pass"/><test-case name="succeed-12" result="pass"/><test-case name="succeed-13" result="pass"/><test-case name="succeed-14" result="pass"/><test-case name="succeed-15" result="pass"/></test-suite-result> diff --git a/tests/auto/xmlpatternsdiagnosticsts/TestSuite/DiagnosticsCatalog.xml b/tests/auto/xmlpatternsdiagnosticsts/TestSuite/DiagnosticsCatalog.xml index 5a96441..6a07a77 100644 --- a/tests/auto/xmlpatternsdiagnosticsts/TestSuite/DiagnosticsCatalog.xml +++ b/tests/auto/xmlpatternsdiagnosticsts/TestSuite/DiagnosticsCatalog.xml @@ -782,14 +782,6 @@ <output-file role="principal" compare="Ignore"/>
</test-case>
- <test-case is-XPath2="false" name="fail-17" FilePath="ShouldFail/"
- scenario="standard" Creator="Frans Englich" >
- <description>Space is significant.</description>
- <query name="fail-17" date="2007-06-07"/>
- <input-file role="principal-data" variable="input-context">emptydoc</input-file>
- <output-file role="principal" compare="XML">fail-3.txt</output-file>
- </test-case>
-
<test-case is-XPath2="false" name="fail-18" FilePath="ShouldFail/"
scenario="runtime-error" Creator="Frans Englich" >
<description>Test that XML documents that differs on the top level, are flagged(type being runtime-error).</description>
@@ -1039,6 +1031,13 @@ <output-file compare="XML" role="principal">succeed-14.txt</output-file>
</test-case>
+ <test-case is-XPath2="false" name="succeed-15" FilePath="ShouldSucceed/" scenario="standard" Creator="Frans Englich" > + <description>Space is ignored.</description> + <query name="succeed-15" date="2007-06-07"/> + <input-file role="principal-data" variable="input-context">emptydoc</input-file> + <output-file role="principal" compare="XML">succeed-15.txt</output-file> + </test-case> + </test-group>
</test-suite>
diff --git a/tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/fail-3.txt b/tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-15.txt index a06c409..a06c409 100644 --- a/tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/fail-3.txt +++ b/tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-15.txt diff --git a/tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-17.xq b/tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-15.xq index 10a7e70..10a7e70 100644 --- a/tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-17.xq +++ b/tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-15.xq diff --git a/tests/auto/xmlpatternssdk/ResultThreader.cpp b/tests/auto/xmlpatternssdk/ResultThreader.cpp index 749a2dd..abdac88 100644 --- a/tests/auto/xmlpatternssdk/ResultThreader.cpp +++ b/tests/auto/xmlpatternssdk/ResultThreader.cpp @@ -45,11 +45,7 @@ ResultThreader::ResultThreader(QFile *file, void ResultThreader::run() { - QXmlSimpleReader reader; - reader.setContentHandler(this); - - QXmlInputSource source(m_file); - reader.parse(source); + parse(m_file); m_file->close(); } diff --git a/tests/auto/xmlpatternssdk/TestBaseLine.cpp b/tests/auto/xmlpatternssdk/TestBaseLine.cpp index e257c42..f8ad128 100644 --- a/tests/auto/xmlpatternssdk/TestBaseLine.cpp +++ b/tests/auto/xmlpatternssdk/TestBaseLine.cpp @@ -127,11 +127,9 @@ void TestBaseLine::toXML(XMLWriter &receiver) const case SchemaIsValid: /* Fallthrough. */ case Text: { - QXmlAttributes inspectAtts; - inspectAtts.append(QLatin1String("role"), QString(), - QLatin1String("role"), QLatin1String("principal")); - inspectAtts.append(QLatin1String("compare"), QString(), - QLatin1String("compare"), displayName(m_type)); + QXmlStreamAttributes inspectAtts; + inspectAtts.append(QLatin1String("role"), QLatin1String("principal")); + inspectAtts.append(QLatin1String("compare"), displayName(m_type)); receiver.startElement(QLatin1String("output-file"), inspectAtts); receiver.characters(m_details); receiver.endElement(QLatin1String("output-file")); @@ -144,11 +142,9 @@ void TestBaseLine::toXML(XMLWriter &receiver) const } case Inspect: { - QXmlAttributes inspectAtts; - inspectAtts.append(QLatin1String("role"), QString(), - QLatin1String("role"), QLatin1String("principal")); - inspectAtts.append(QLatin1String("compare"), QString(), - QLatin1String("compare"), QLatin1String("Inspect")); + QXmlStreamAttributes inspectAtts; + inspectAtts.append(QLatin1String("role"), QLatin1String("principal")); + inspectAtts.append(QLatin1String("compare"), QLatin1String("Inspect")); receiver.startElement(QLatin1String("output-file"), inspectAtts); receiver.characters(m_details); receiver.endElement(QLatin1String("output-file")); @@ -310,19 +306,11 @@ TestResult::Status TestBaseLine::verify(const QString &serializedInput) const * QDomDocument does whitespace stripping when calling setContent(QString). In other words, * this workarounds a bug. */ - QXmlInputSource source; - source.setData((m_type == XML ? serializedInput : QLatin1String("<r>") + - serializedInput + - QLatin1String("</r>")).toUtf8()); - - QString outputReadingError; - - QXmlSimpleReader reader; - reader.setFeature(QLatin1String("http://xml.org/sax/features/namespace-prefixes"), true); - - const bool success = output.setContent(&source, - &reader, - &outputReadingError); + const bool success = + output.setContent((m_type == XML ? serializedInput + : QLatin1String("<r>") + serializedInput + + QLatin1String("</r>")) + .toUtf8()); if(!success) return TestResult::Fail; @@ -332,19 +320,12 @@ TestResult::Status TestBaseLine::verify(const QString &serializedInput) const QDomDocument baseline; { - QXmlInputSource source; - source.setData((m_type == XML ? details() : QLatin1String("<r>") + - details() + - QLatin1String("</r>")).toUtf8()); QString baselineReadingError; - - QXmlSimpleReader reader; - reader.setFeature(QLatin1String("http://xml.org/sax/features/namespace-prefixes"), true); - - const bool success = baseline.setContent(&source, - &reader, - &baselineReadingError); - + const bool success = baseline.setContent( + (m_type == XML ? details() + : QLatin1String("<r>") + details() + QLatin1String("</r>")) + .toUtf8(), + &baselineReadingError); if(!success) return TestResult::Fail; diff --git a/tests/auto/xmlpatternssdk/TestCase.cpp b/tests/auto/xmlpatternssdk/TestCase.cpp index bf9241c..6827f36 100644 --- a/tests/auto/xmlpatternssdk/TestCase.cpp +++ b/tests/auto/xmlpatternssdk/TestCase.cpp @@ -336,12 +336,11 @@ TestCase::Scenario TestCase::scenarioFromString(const QString &string) void TestCase::toXML(XMLWriter &receiver) const { /* <test-case> */ - QXmlAttributes test_caseAtts; - test_caseAtts.append(QLatin1String("is-XPath2"), QString(), - QLatin1String("is-XPath2"), isXPath() ? QLatin1String("true") + QXmlStreamAttributes test_caseAtts; + test_caseAtts.append(QLatin1String("is-XPath2"), isXPath() ? QLatin1String("true") : QLatin1String("false")); - test_caseAtts.append(QLatin1String("name"), QString(), QLatin1String("name"), name()); - test_caseAtts.append(QLatin1String("creator"), QString(), QLatin1String("creator"), creator()); + test_caseAtts.append(QLatin1String("name"), name()); + test_caseAtts.append(QLatin1String("creator"), creator()); QString scen; switch(scenario()) { @@ -368,9 +367,8 @@ void TestCase::toXML(XMLWriter &receiver) const default: /* includes 'AnyError' */ Q_ASSERT(false); } - test_caseAtts.append(QLatin1String("scenario"), QString(), QLatin1String("scenario"), scen); - test_caseAtts.append(QLatin1String(QLatin1String("FilePath")), QString(), - QLatin1String("FilePath"), QString()); + test_caseAtts.append(QLatin1String("scenario"), scen); + test_caseAtts.append(QLatin1String("FilePath"), QString()); receiver.startElement(QLatin1String("test-case"), test_caseAtts); /* <description> */ @@ -381,10 +379,10 @@ void TestCase::toXML(XMLWriter &receiver) const receiver.endElement(QLatin1String("description")); /* <query> */ - QXmlAttributes queryAtts; - queryAtts.append(QLatin1String("date"), QString(), QLatin1String("date"), /* This date is a dummy. */ + QXmlStreamAttributes queryAtts; + queryAtts.append(QLatin1String("date"), /* This date is a dummy. */ QDate::currentDate().toString(Qt::ISODate)); - queryAtts.append(QLatin1String("name"), QString(), QLatin1String("name"), testCasePath().toString()); + queryAtts.append(QLatin1String("name"), testCasePath().toString()); receiver.startElement(QLatin1String("query"), queryAtts); /* </query> */ diff --git a/tests/auto/xmlpatternssdk/TestResult.cpp b/tests/auto/xmlpatternssdk/TestResult.cpp index 5629971..5599ab4 100644 --- a/tests/auto/xmlpatternssdk/TestResult.cpp +++ b/tests/auto/xmlpatternssdk/TestResult.cpp @@ -94,12 +94,12 @@ TestResult::~TestResult() void TestResult::toXML(XMLWriter &receiver) const { - QXmlAttributes atts; - atts.append(QLatin1String("name"), QString(), QLatin1String("name"), m_testName); - atts.append(QLatin1String("result"), QString(), QLatin1String("result"), displayName(m_status)); + QXmlStreamAttributes atts; + atts.append(QLatin1String("name"), m_testName); + atts.append(QLatin1String("result"), displayName(m_status)); if(!m_comment.isEmpty()) - atts.append(QLatin1String("comment"), QString(), QLatin1String("comment"), m_comment); + atts.append(QLatin1String("comment"), m_comment); receiver.startElement(QLatin1String("test-case"), atts); receiver.endElement(QLatin1String("test-case")); diff --git a/tests/auto/xmlpatternssdk/TestResultHandler.cpp b/tests/auto/xmlpatternssdk/TestResultHandler.cpp index 92f0c01..d578f3a 100644 --- a/tests/auto/xmlpatternssdk/TestResultHandler.cpp +++ b/tests/auto/xmlpatternssdk/TestResultHandler.cpp @@ -41,10 +41,8 @@ TestResultHandler::TestResultHandler() m_comments.reserve(1000); /* Comments are only used for stuff that crash, more or less. */ } -bool TestResultHandler::startElement(const QString &namespaceURI, - const QString &localName, - const QString &, - const QXmlAttributes &atts) +bool TestResultHandler::startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &, const QXmlStreamAttributes &atts) { /* We only care about 'test-case', ignore everything else. */ if(localName != QLatin1String("test-case") || @@ -55,12 +53,13 @@ bool TestResultHandler::startElement(const QString &namespaceURI, Q_ASSERT_X(atts.count() == 2 || atts.count() == 3, Q_FUNC_INFO, "The input appears to not conform to XQTSResult.xsd"); - Q_ASSERT_X(!m_result.contains(atts.value(QLatin1String("name"))), - Q_FUNC_INFO, + Q_ASSERT_X(!m_result.contains(atts.value(QLatin1String("name")).toString()), Q_FUNC_INFO, qPrintable(QString::fromLatin1("A test result for test case %1 has " - "already been read(duplicate entry it seems).").arg(atts.value(QLatin1String("name"))))); + "already been read(duplicate entry it seems).") + .arg(atts.value(QLatin1String("name"))))); - m_result.insert(atts.value(0), TestResult::statusFromString(atts.value(QLatin1String("result")))); + m_result.insert(atts.at(0).value().toString(), + TestResult::statusFromString(atts.value(QLatin1String("result")).toString())); return true; } diff --git a/tests/auto/xmlpatternssdk/TestResultHandler.h b/tests/auto/xmlpatternssdk/TestResultHandler.h index 728b7e8..014c739 100644 --- a/tests/auto/xmlpatternssdk/TestResultHandler.h +++ b/tests/auto/xmlpatternssdk/TestResultHandler.h @@ -31,9 +31,9 @@ #include <QHash> #include <QString> -#include <QtXml/QXmlDefaultHandler> #include "TestResult.h" +#include "XmlParseHelper.h" QT_BEGIN_NAMESPACE @@ -46,7 +46,7 @@ namespace QPatternistSDK * @author Frans Englich <frans.englich@nokia.com> * @ingroup PatternistSDK */ - class TestResultHandler : public QXmlDefaultHandler + class TestResultHandler : public XmlParseHelper { public: /** @@ -68,15 +68,13 @@ namespace QPatternistSDK /** * Performs finalization. */ - virtual bool endDocument(); + bool endDocument() override; /** * Reads the <tt>test-case</tt> element and its attributes, everything else is ignored. */ - virtual bool startElement(const QString &namespaceURI, - const QString &localName, - const QString &qName, - const QXmlAttributes &atts); + bool startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName, const QXmlStreamAttributes &atts) override; /** * @note Do not reimplement this function. * @returns the result obtained from reading the XML file. diff --git a/tests/auto/xmlpatternssdk/TestSuite.cpp b/tests/auto/xmlpatternssdk/TestSuite.cpp index 004fba5..c729837 100644 --- a/tests/auto/xmlpatternssdk/TestSuite.cpp +++ b/tests/auto/xmlpatternssdk/TestSuite.cpp @@ -28,13 +28,12 @@ #include <QFileInfo> #include <QVariant> -#include <QXmlInputSource> -#include <QXmlSimpleReader> #include <QtDebug> #include "Global.h" #include "TestSuiteHandler.h" #include "TestSuiteResult.h" +#include "XmlParseHelper.h" #include "XMLWriter.h" #include "XSLTTestSuiteHandler.h" #include "XSDTestSuiteHandler.h" @@ -125,8 +124,7 @@ TestSuite *TestSuite::openCatalog(QIODevice *input, { Q_ASSERT(input); - QXmlSimpleReader reader; - typedef QPatternist::AutoPtr<QXmlDefaultHandler> HandlerPtr; + typedef QPatternist::AutoPtr<XmlParseHelper> HandlerPtr; HandlerPtr loader; @@ -137,12 +135,7 @@ TestSuite *TestSuite::openCatalog(QIODevice *input, default: Q_ASSERT(false); break; } - reader.setContentHandler(loader.data()); - - QXmlInputSource source(input); - - if(!reader.parse(source)) - { + if (!loader.data()->parse(input)) { errorMsg = QString::fromLatin1("Couldn't parse %1").arg(fileName.toString()); return 0; } @@ -171,32 +164,22 @@ void TestSuite::toXML(XMLWriter &receiver, TestCase *const tc) const receiver.startDocument(); /* <test-suite> */ - QXmlAttributes test_suiteAtts; - test_suiteAtts.append(QLatin1String("CatalogDesignDate"), QString(), - QLatin1String("CatalogDesignDate"), m_designDate.toString(Qt::ISODate)); - test_suiteAtts.append(QLatin1String("version"), QString(), - QLatin1String("version"), m_version); - test_suiteAtts.append(QLatin1String("SourceOffsetPath"), QString(), - QLatin1String("SourceOffsetPath"), QString()); - test_suiteAtts.append(QLatin1String("ResultOffsetPath"), QString(), - QLatin1String("ResultOffsetPath"), QString()); - test_suiteAtts.append(QLatin1String("XQueryQueryOffsetPath"), QString(), - QLatin1String("XQueryQueryOffsetPath"), QString()); - test_suiteAtts.append(QLatin1String("QueryXQueryOffsetPath"), QString(), - QLatin1String("QueryXQueryOffsetPath"), QString()); - test_suiteAtts.append(QLatin1String("XQueryFileExtension"), QString(), - QLatin1String("XQueryFileExtension"), QString()); - test_suiteAtts.append(QLatin1String("XQueryXFileExtension"), QString(), - QLatin1String("XQueryXFileExtension"), QString()); + QXmlStreamAttributes test_suiteAtts; + test_suiteAtts.append(QLatin1String("CatalogDesignDate"), m_designDate.toString(Qt::ISODate)); + test_suiteAtts.append(QLatin1String("version"), m_version); + test_suiteAtts.append(QLatin1String("SourceOffsetPath"), QString()); + test_suiteAtts.append(QLatin1String("ResultOffsetPath"), QString()); + test_suiteAtts.append(QLatin1String("XQueryQueryOffsetPath"), QString()); + test_suiteAtts.append(QLatin1String("QueryXQueryOffsetPath"), QString()); + test_suiteAtts.append(QLatin1String("XQueryFileExtension"), QString()); + test_suiteAtts.append(QLatin1String("XQueryXFileExtension"), QString()); receiver.startPrefixMapping(QString(), Global::xqtsCatalogNS); receiver.startElement(QLatin1String("test-suite"), test_suiteAtts); - receiver.endPrefixMapping(QString()); /* <test-group> */ - QXmlAttributes test_groupAtts; - test_groupAtts.append(QLatin1String("GeneratedGroupByPatternistSDKRunSuite"), QString(), - QLatin1String("GeneratedGroupByPatternistSDKRunSuite"), QString()); + QXmlStreamAttributes test_groupAtts; + test_groupAtts.append(QLatin1String("GeneratedGroupByPatternistSDKRunSuite"), QString()); receiver.startElement(QLatin1String("test-group"), test_groupAtts); /* <GroupInfo> */ diff --git a/tests/auto/xmlpatternssdk/TestSuiteHandler.cpp b/tests/auto/xmlpatternssdk/TestSuiteHandler.cpp index 68bedca..ba4dc8a 100644 --- a/tests/auto/xmlpatternssdk/TestSuiteHandler.cpp +++ b/tests/auto/xmlpatternssdk/TestSuiteHandler.cpp @@ -89,10 +89,8 @@ QStringList TestSuiteHandler::readExclusionList(const bool useExclusionList) con return avoid; } -bool TestSuiteHandler::startElement(const QString &namespaceURI, - const QString &localName, - const QString &/*qName*/, - const QXmlAttributes &atts) +bool TestSuiteHandler::startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef & /*qName*/, const QXmlStreamAttributes &atts) { if(namespaceURI != Global::xqtsCatalogNS) return true; @@ -100,7 +98,7 @@ bool TestSuiteHandler::startElement(const QString &namespaceURI, { if(localName == QLatin1String("test-group")) { - m_testGroupName.push(atts.value(QLatin1String("name"))); + m_testGroupName.push(atts.value(QLatin1String("name")).toString()); return true; } else @@ -111,16 +109,20 @@ bool TestSuiteHandler::startElement(const QString &namespaceURI, if(localName == QLatin1String("test-case")) { XQTSTestCase *const c = new XQTSTestCase( - TestCase::scenarioFromString(atts.value(QLatin1String("scenario"))), m_container); - - c->setName(atts.value(QLatin1String("name"))); - c->setCreator(atts.value(QLatin1String("Creator"))); - c->setIsXPath(Global::readBoolean(atts.value(QLatin1String("is-XPath2")))); - c->setLastModified(QDate::fromString(atts.value(QLatin1String("version-drop")), Qt::ISODate)); + TestCase::scenarioFromString(atts.value(QLatin1String("scenario")).toString()), + m_container); + + c->setName(atts.value(QLatin1String("name")).toString()); + c->setCreator(atts.value(QLatin1String("Creator")).toString()); + c->setIsXPath(Global::readBoolean(atts.value(QLatin1String("is-XPath2")).toString())); + c->setLastModified(QDate::fromString(atts.value(QLatin1String("version-drop")).toString(), + Qt::ISODate)); Q_ASSERT(c->lastModified().isNull() || c->lastModified().isValid()); - m_currentQueryPath = m_queryOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")))); - m_currentBaselinePath = m_baselineOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")))); + m_currentQueryPath = + m_queryOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")).toString())); + m_currentBaselinePath = + m_baselineOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")).toString())); m_container->appendChild(c); m_tc = c; @@ -133,11 +135,12 @@ bool TestSuiteHandler::startElement(const QString &namespaceURI, else if(localName == QLatin1String("input-file") || localName == QLatin1String("input-URI")) { - m_currentInputVariable = atts.value(QLatin1String("variable")); + m_currentInputVariable = atts.value(QLatin1String("variable")).toString(); } else if(localName == QLatin1String("output-file")) { - m_baseLine = new TestBaseLine(TestBaseLine::identifierFromString(atts.value(QLatin1String("compare")))); + m_baseLine = new TestBaseLine(TestBaseLine::identifierFromString( + atts.value(QLatin1String("compare")).toString())); } else if(localName == QLatin1String("expected-error")) { @@ -145,7 +148,7 @@ bool TestSuiteHandler::startElement(const QString &namespaceURI, } else if(localName == QLatin1String("test-group")) { - m_testGroupName.push(atts.value(QLatin1String("name"))); + m_testGroupName.push(atts.value(QLatin1String("name")).toString()); if(m_exclusionList.contains(m_testGroupName.top())) { @@ -164,35 +167,43 @@ bool TestSuiteHandler::startElement(const QString &namespaceURI, } else if(localName == QLatin1String("source")) { - m_sourceMap.insert(atts.value(QLatin1String("ID")), - m_sourceOffset.resolved(QUrl(atts.value(QLatin1String("FileName"))))); + m_sourceMap.insert( + atts.value(QLatin1String("ID")).toString(), + m_sourceOffset.resolved(QUrl(atts.value(QLatin1String("FileName")).toString()))); } else if(localName == QLatin1String("test-suite")) { m_ts = new TestSuite(); - m_ts->setVersion(atts.value(QLatin1String("version"))); - m_ts->setDesignDate(QDate::fromString(atts.value(QLatin1String("CatalogDesignDate")), Qt::ISODate)); + m_ts->setVersion(atts.value(QLatin1String("version")).toString()); + m_ts->setDesignDate(QDate::fromString( + atts.value(QLatin1String("CatalogDesignDate")).toString(), Qt::ISODate)); Q_ASSERT(m_ts->designDate().isValid()); m_container = m_ts; - m_xqueryFileExtension = atts.value(QLatin1String("XQueryFileExtension")); - m_queryOffset = m_catalogFile.resolved(atts.value(QLatin1String("XQueryQueryOffsetPath"))); - m_baselineOffset = m_catalogFile.resolved(atts.value(QLatin1String("ResultOffsetPath"))); - m_sourceOffset = m_catalogFile.resolved(atts.value(QLatin1String("SourceOffsetPath"))); + m_xqueryFileExtension = atts.value(QLatin1String("XQueryFileExtension")).toString(); + m_queryOffset = m_catalogFile.resolved( + atts.value(QLatin1String("XQueryQueryOffsetPath")).toString()); + m_baselineOffset = + m_catalogFile.resolved(atts.value(QLatin1String("ResultOffsetPath")).toString()); + m_sourceOffset = + m_catalogFile.resolved(atts.value(QLatin1String("SourceOffsetPath")).toString()); } else if(localName == QLatin1String("input-query")) { - m_tcSourceInputs.insert(atts.value(QLatin1String("variable")), - ExternalSourceLoader::VariableValue(m_currentQueryPath.resolved(atts.value(QLatin1String("name")) + m_xqueryFileExtension), - ExternalSourceLoader::Query)); + m_tcSourceInputs.insert( + atts.value(QLatin1String("variable")).toString(), + ExternalSourceLoader::VariableValue( + m_currentQueryPath.resolved(atts.value(QLatin1String("name")) + + m_xqueryFileExtension), + ExternalSourceLoader::Query)); } return true; } -bool TestSuiteHandler::endElement(const QString &namespaceURI, - const QString &localName, - const QString &/*qName*/) +bool TestSuiteHandler::endElement(const QStringRef &namespaceURI, + const QStringRef &localName, + const QStringRef &/*qName*/) { if(namespaceURI != Global::xqtsCatalogNS) return true; @@ -299,9 +310,9 @@ bool TestSuiteHandler::endElement(const QString &namespaceURI, return true; } -bool TestSuiteHandler::characters(const QString &ch) +bool TestSuiteHandler::characters(const QStringRef &ch) { - m_ch = ch; + m_ch = ch.toString(); return true; } diff --git a/tests/auto/xmlpatternssdk/TestSuiteHandler.h b/tests/auto/xmlpatternssdk/TestSuiteHandler.h index 25c2f0c..504bd3f 100644 --- a/tests/auto/xmlpatternssdk/TestSuiteHandler.h +++ b/tests/auto/xmlpatternssdk/TestSuiteHandler.h @@ -31,10 +31,10 @@ #include <QStack> #include <QUrl> -#include <QXmlDefaultHandler> #include "ExternalSourceLoader.h" #include "TestSuite.h" +#include "XmlParseHelper.h" #include "XQTSTestCase.h" QT_BEGIN_NAMESPACE @@ -57,7 +57,7 @@ namespace QPatternistSDK * @ingroup PatternistSDK * @author Frans Englich <frans.englich@nokia.com> */ - class TestSuiteHandler : public QXmlDefaultHandler + class TestSuiteHandler : public XmlParseHelper { public: /** @@ -69,17 +69,14 @@ namespace QPatternistSDK */ TestSuiteHandler(const QUrl &catalogFile, const bool useExclusionList); - virtual bool characters(const QString &ch); + bool characters(const QStringRef &ch) override; - virtual bool endElement(const QString &namespaceURI, - const QString &localName, - const QString &qName); - virtual bool startElement(const QString &namespaceURI, - const QString &localName, - const QString &qName, - const QXmlAttributes &atts); + bool endElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName) override; + bool startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName, const QXmlStreamAttributes &atts) override; - virtual TestSuite *testSuite() const; + TestSuite *testSuite() const; private: QStringList readExclusionList(const bool useExclusionList) const; diff --git a/tests/auto/xmlpatternssdk/TestSuiteResult.cpp b/tests/auto/xmlpatternssdk/TestSuiteResult.cpp index 39508a4..b5a0ee7 100644 --- a/tests/auto/xmlpatternssdk/TestSuiteResult.cpp +++ b/tests/auto/xmlpatternssdk/TestSuiteResult.cpp @@ -76,31 +76,26 @@ void TestSuiteResult::toXML(XMLWriter &receiver) const /* <test-suite-result> */ receiver.startPrefixMapping(QString(), Global::xqtsResultNS); receiver.startElement(QLatin1String("test-suite-result")); - receiver.endPrefixMapping(QString()); /* <implementation> */ - QXmlAttributes implementationAtts; - implementationAtts.append(QLatin1String("name"), QString(), - QLatin1String("name"), implementationName); - implementationAtts.append(QLatin1String("version"), QString(), - QLatin1String("version"), implementationVersion); + QXmlStreamAttributes implementationAtts; + implementationAtts.append(QLatin1String("name"), implementationName); + implementationAtts.append(QLatin1String("version"), implementationVersion); receiver.startElement(QLatin1String("implementation"), implementationAtts); /* <organization> */ - QXmlAttributes organizationAtts; - organizationAtts.append(QLatin1String("name"), QString(), - QLatin1String("name"), organizationName); - organizationAtts.append(QLatin1String("website"), QString(), - QLatin1String("website"), organizationWebsite); + QXmlStreamAttributes organizationAtts; + organizationAtts.append(QLatin1String("name"), organizationName); + organizationAtts.append(QLatin1String("website"), organizationWebsite); receiver.startElement(QLatin1String("organization"), organizationAtts); /* </organization> */ receiver.endElement(QLatin1String("organization")); /* <submittor> */ - QXmlAttributes submittorAtts; - submittorAtts.append(QLatin1String("name"), QString(), QLatin1String("name"), submittorName); - submittorAtts.append(QLatin1String("email"), QString(), QLatin1String("email"), submittorEmail); + QXmlStreamAttributes submittorAtts; + submittorAtts.append(QLatin1String("name"), submittorName); + submittorAtts.append(QLatin1String("email"), submittorEmail); receiver.startElement(QLatin1String("submittor"), submittorAtts); /* </submittor> */ @@ -129,13 +124,13 @@ void TestSuiteResult::toXML(XMLWriter &receiver) const receiver.endElement(QLatin1String("syntax")); /* <test-run> */ - QXmlAttributes test_runAtts; - test_runAtts.append(QLatin1String("dateRun"), QString(), QLatin1String("dateRun"), m_runDate.toString(QLatin1String("yyyy-MM-dd"))); + QXmlStreamAttributes test_runAtts; + test_runAtts.append(QLatin1String("dateRun"), m_runDate.toString(Qt::ISODate)); receiver.startElement(QLatin1String("test-run"), test_runAtts); /* <test-suite> */ - QXmlAttributes test_suiteAtts; - test_suiteAtts.append(QLatin1String("version"), QString(), QLatin1String("version"), m_testSuiteVersion); + QXmlStreamAttributes test_suiteAtts; + test_suiteAtts.append(QLatin1String("version"), m_testSuiteVersion); receiver.startElement(QLatin1String("test-suite"), test_suiteAtts); /* </test-suite> */ diff --git a/tests/auto/xmlpatternssdk/Worker.h b/tests/auto/xmlpatternssdk/Worker.h index 1d84408..b56a57a 100644 --- a/tests/auto/xmlpatternssdk/Worker.h +++ b/tests/auto/xmlpatternssdk/Worker.h @@ -33,6 +33,7 @@ #include <QList> #include <QObject> #include <QStringList> +#include <QTextStream> #include "ResultThreader.h" diff --git a/tests/auto/xmlpatternssdk/XMLWriter.cpp b/tests/auto/xmlpatternssdk/XMLWriter.cpp index 8ba5884..38a2d0d 100644 --- a/tests/auto/xmlpatternssdk/XMLWriter.cpp +++ b/tests/auto/xmlpatternssdk/XMLWriter.cpp @@ -328,16 +328,7 @@ bool XMLWriter::startDocument() return true; } -bool XMLWriter::startElement(const QString &/*namespaceURI*/, - const QString &/*localName*/, - const QString &qName, - const QXmlAttributes &atts) -{ - return startElement(qName, atts); -} - -bool XMLWriter::startElement(const QString &qName, - const QXmlAttributes &atts) +bool XMLWriter::startElement(const QString &qName, const QXmlStreamAttributes &atts) { Q_ASSERT_X(!d->insideCDATA, Q_FUNC_INFO, "Only characters() can be received when inside CDATA."); @@ -377,18 +368,16 @@ bool XMLWriter::startElement(const QString &qName, } d->namespaces.clear(); - const int c = atts.count(); + for (const auto &attr : atts) { + const auto qName = attr.qualifiedName().toString(); - /* Serialize attributes. */ - for(int i = 0; i != c; ++i) - { - d->validateQName(atts.qName(i)); - d->verifyNS(atts.qName(i)); + d->validateQName(qName); + d->verifyNS(qName); serialize(' '); - serialize(atts.qName(i)); + serialize(qName); serialize("=\""); - serialize(d->escapeAttributeContent(atts.value(i))); + serialize(d->escapeAttributeContent(attr.value().toString())); serialize('"'); } @@ -396,13 +385,6 @@ bool XMLWriter::startElement(const QString &qName, return true; } -bool XMLWriter::endElement(const QString &/*namespaceURI*/, - const QString &/*localName*/, - const QString &qName) -{ - return endElement(qName); -} - bool XMLWriter::endElement(const QString &qName) { Q_ASSERT_X(!d->insideCDATA, Q_FUNC_INFO, @@ -611,21 +593,6 @@ bool XMLWriter::ignorableWhitespace(const QString &ch) return characters(ch); } -bool XMLWriter::endPrefixMapping(const QString &) -{ - /* Again, should we do something with this? */ - return true; -} - -bool XMLWriter::skippedEntity(const QString &) -{ - return true; -} - -void XMLWriter::setDocumentLocator(QXmlLocator *) -{ -} - QIODevice *XMLWriter::device() const { return d->dev; diff --git a/tests/auto/xmlpatternssdk/XMLWriter.h b/tests/auto/xmlpatternssdk/XMLWriter.h index 0051d66..3d17d50 100644 --- a/tests/auto/xmlpatternssdk/XMLWriter.h +++ b/tests/auto/xmlpatternssdk/XMLWriter.h @@ -31,8 +31,7 @@ #include "Global.h" -#include <QtXml/QXmlContentHandler> -#include <QtXml/QXmlLexicalHandler> +#include <QXmlStreamAttributes> QT_BEGIN_NAMESPACE @@ -52,10 +51,6 @@ namespace QPatternistSDK * specified in XMLWriter's constructor or via setDevice(). If writing to * the device fails, the content functions such as startElement() returns @c false. * - * XMLWriter sub-classes QXmlContentHandler meaning it can serialize content - * from any code that produces SAX events. The class can also be used manually, - * by calling startElement(), endCDATA(), and so forth. - * * XMLWriter cannot be used to serialize multiple documents. One instance per * document must be used. * @@ -95,8 +90,7 @@ namespace QPatternistSDK * @author Frans Englich <frans.englich@nokia.com> * @ingroup PatternistSDK */ - class XMLWriter : public QXmlContentHandler - , public QXmlLexicalHandler + class XMLWriter { public: /** @@ -132,35 +126,8 @@ namespace QPatternistSDK * To declare namespaces, don't put attributes with name <tt>xmlns:*</tt> in @p atts, * but use startPrefixMapping(). */ - virtual bool startElement(const QString &qName, const QXmlAttributes &atts = QXmlAttributes()); - - /** - * - * Behaves essentially as startElement(const QString &qName, const QXmlAttributes &atts). This - * function is used in conjunction with other SAX classes. - * - * The call: - * - * @code - * startElement(QString(), QString(), qName, atts); - * @endcode - * - * is equivalent to: - * - * @code - * startElement(qName, atts); - * @endcode - * - * @p namespaceURI and @p localName are not used. This function is - * used in conjunction with other SAX classes. - * - * @returns @c false if failure occurs in writing to the QIODevice, otherwise - * @c true - */ - virtual bool startElement(const QString &namespaceURI, - const QString &localName, - const QString &qName, - const QXmlAttributes &atts); + virtual bool startElement(const QString &qName, + const QXmlStreamAttributes &atts = QXmlStreamAttributes()); /** * Signals the end of an element with name @p qName. @p qName must @@ -174,31 +141,6 @@ namespace QPatternistSDK virtual bool endElement(const QString &qName); /** - * Behaves essentially as endElement(const QString &qName). This function - * is used when XMLWriter is used in SAX code. - * - * @p namespaceURI and @p localName are not used. - * - * The call: - * - * @code - * endElement(QString(), QString(), qName); - * @endcode - * - * is equivalent to: - * - * @code - * endElement(qName); - * @endcode - * - * @returns @c false if failure occurs in writing to the QIODevice, otherwise - * @c true - */ - virtual bool endElement(const QString &namespaceURI, - const QString &localName, - const QString &qName); - - /** * A description of an error if it occurred. This is typically * QIODevice::errorString(). If no error has occurred, an empty * string is returned. @@ -326,24 +268,6 @@ namespace QPatternistSDK virtual bool ignorableWhitespace(const QString &ch); /** - * This function is not used by XMLWriter, but is implemented - * in order to satisfy QXmlContentHandler's interface. - */ - virtual bool endPrefixMapping(const QString &prefix); - - /** - * This function is not used by XMLWriter, but is implemented - * in order to satisfy QXmlContentHandler's interface. - */ - virtual bool skippedEntity(const QString &name); - - /** - * This function is not used by XMLWriter, but is implemented - * in order to satisfy QXmlContentHandler's interface. - */ - virtual void setDocumentLocator(QXmlLocator *); - - /** * @returns the device XMLWriter writes its output to. * XMLWriter does not own the device. */ diff --git a/tests/auto/xmlpatternssdk/XSDTestSuiteHandler.cpp b/tests/auto/xmlpatternssdk/XSDTestSuiteHandler.cpp index 854fef6..4e56af6 100644 --- a/tests/auto/xmlpatternssdk/XSDTestSuiteHandler.cpp +++ b/tests/auto/xmlpatternssdk/XSDTestSuiteHandler.cpp @@ -782,10 +782,8 @@ XSDTestSuiteHandler::XSDTestSuiteHandler(const QUrl &catalogFile) : m_ts(0) << QLatin1String("wildZ010"); } -bool XSDTestSuiteHandler::startElement(const QString &namespaceURI, - const QString &localName, - const QString &/*qName*/, - const QXmlAttributes &atts) +bool XSDTestSuiteHandler::startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef & /*qName*/, const QXmlStreamAttributes &atts) { if(namespaceURI != QString::fromLatin1("http://www.w3.org/XML/2004/xml-schema-test-suite/")) return true; @@ -793,16 +791,16 @@ bool XSDTestSuiteHandler::startElement(const QString &namespaceURI, if (localName == QLatin1String("testSet")) { m_currentTestSet = new TestGroup(m_topLevelGroup); Q_ASSERT(m_currentTestSet); - m_currentTestSet->setTitle(atts.value("name")); + m_currentTestSet->setTitle(atts.value("name").toString()); m_topLevelGroup->appendChild(m_currentTestSet); } else if (localName == QLatin1String("testGroup")) { m_currentTestGroup = new TestGroup(m_currentTestSet); Q_ASSERT(m_currentTestGroup); - m_currentTestGroup->setTitle(atts.value("name")); + m_currentTestGroup->setTitle(atts.value("name").toString()); m_currentTestSet->appendChild(m_currentTestGroup); m_inTestGroup = true; } else if (localName == QLatin1String("schemaTest")) { - if (m_blackList.contains(atts.value("name"))) { + if (m_blackList.contains(atts.value("name").toString())) { m_currentTestCase = 0; m_schemaBlacklisted = true; return true; @@ -832,12 +830,12 @@ bool XSDTestSuiteHandler::startElement(const QString &namespaceURI, m_inInstanceTest = true; } else if (localName == QLatin1String("schemaDocument") || localName == QLatin1String("instanceDocument")) { if (m_inSchemaTest) { - m_currentTestCase->setSchemaUri(QUrl(atts.value("xlink:href"))); + m_currentTestCase->setSchemaUri(QUrl(atts.value("xlink:href").toString())); if (m_currentSchemaLink.isEmpty()) // we only use the first schema document for validation - m_currentSchemaLink = atts.value("xlink:href"); + m_currentSchemaLink = atts.value("xlink:href").toString(); } if (m_inInstanceTest) { - m_currentTestCase->setInstanceUri(QUrl(atts.value("xlink:href"))); + m_currentTestCase->setInstanceUri(QUrl(atts.value("xlink:href").toString())); m_currentTestCase->setSchemaUri(QUrl(m_currentSchemaLink)); } } else if (localName == QLatin1String("expected") && (m_inSchemaTest || m_inInstanceTest)) { @@ -858,9 +856,9 @@ bool XSDTestSuiteHandler::startElement(const QString &namespaceURI, return true; } -bool XSDTestSuiteHandler::endElement(const QString &/*namespaceURI*/, - const QString &localName, - const QString &/*qName*/) +bool XSDTestSuiteHandler::endElement(const QStringRef &/*namespaceURI*/, + const QStringRef &localName, + const QStringRef &/*qName*/) { if (localName == QLatin1String("testGroup")) { m_inTestGroup = false; @@ -880,7 +878,7 @@ bool XSDTestSuiteHandler::endElement(const QString &/*namespaceURI*/, return true; } -bool XSDTestSuiteHandler::characters(const QString &ch) +bool XSDTestSuiteHandler::characters(const QStringRef &ch) { if (m_inDescription) m_documentation += ch; diff --git a/tests/auto/xmlpatternssdk/XSDTestSuiteHandler.h b/tests/auto/xmlpatternssdk/XSDTestSuiteHandler.h index 3015d8c..2affbab 100644 --- a/tests/auto/xmlpatternssdk/XSDTestSuiteHandler.h +++ b/tests/auto/xmlpatternssdk/XSDTestSuiteHandler.h @@ -30,10 +30,10 @@ #define PatternistSDK_XSDTestSuiteHandler_H #include <QUrl> -#include <QXmlDefaultHandler> #include "ExternalSourceLoader.h" #include "TestSuite.h" +#include "XmlParseHelper.h" #include "XQTSTestCase.h" QT_BEGIN_NAMESPACE @@ -57,7 +57,7 @@ namespace QPatternistSDK * @ingroup PatternistSDK * @author Tobias Koenig <tobias.koenig@nokia.com> */ - class XSDTestSuiteHandler : public QXmlDefaultHandler + class XSDTestSuiteHandler : public XmlParseHelper { public: /** @@ -68,17 +68,14 @@ namespace QPatternistSDK * test groups when loading */ XSDTestSuiteHandler(const QUrl &catalogFile); - virtual bool characters(const QString &ch); + bool characters(const QStringRef &ch) override; - virtual bool endElement(const QString &namespaceURI, - const QString &localName, - const QString &qName); - virtual bool startElement(const QString &namespaceURI, - const QString &localName, - const QString &qName, - const QXmlAttributes &atts); + bool endElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName) override; + bool startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName, const QXmlStreamAttributes &atts) override; - virtual TestSuite *testSuite() const; + TestSuite *testSuite() const; private: TestSuite* m_ts; diff --git a/tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.cpp b/tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.cpp index 5d2a3db..e690dd2 100644 --- a/tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.cpp +++ b/tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.cpp @@ -69,11 +69,9 @@ XSLTTestSuiteHandler::XSLTTestSuiteHandler(const QUrl &catalogFile) : m_ts(0) Q_ASSERT(!m_catalogFile.isRelative()); } -bool XSLTTestSuiteHandler::startElement(const QString &namespaceURI, - const QString &localName, - const QString &/*qName*/, - const QXmlAttributes &atts) - { +bool XSLTTestSuiteHandler::startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef & /*qName*/, const QXmlStreamAttributes &atts) +{ if(namespaceURI != Global::xsltsCatalogNS) return true; @@ -83,40 +81,50 @@ bool XSLTTestSuiteHandler::startElement(const QString &namespaceURI, /* We pass m_ts temporarily, and change it later. */ m_tc = new XQTSTestCase(TestCase::Standard, 0, QXmlQuery::XSLT20); - m_currentQueryPath = m_queryOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")))); - m_currentBaselinePath = m_baselineOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")))); + m_currentQueryPath = + m_queryOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")).toString())); + m_currentBaselinePath = + m_baselineOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")).toString())); } else if(localName == QLatin1String("stylesheet")) - m_tc->setQueryPath(m_currentQueryPath.resolved(atts.value(QLatin1String("file")))); + m_tc->setQueryPath( + m_currentQueryPath.resolved(atts.value(QLatin1String("file")).toString())); else if(localName == QLatin1String("error")) { m_baseLine = new TestBaseLine(TestBaseLine::ExpectedError); - m_baseLine->setDetails(atts.value(QLatin1String("error-id"))); + m_baseLine->setDetails(atts.value(QLatin1String("error-id")).toString()); m_tc->addBaseLine(m_baseLine); } else if(localName == QLatin1String("testcases")) { m_ts = new TestSuite(); - m_ts->setVersion(atts.value(QLatin1String("testSuiteVersion"))); - - m_queryOffset = m_catalogFile.resolved(atts.value(QLatin1String("InputOffsetPath"))); - m_baselineOffset = m_catalogFile.resolved(atts.value(QLatin1String("ResultOffsetPath"))); - m_sourceOffset = m_catalogFile.resolved(atts.value(QLatin1String("InputOffsetPath"))); + m_ts->setVersion(atts.value(QLatin1String("testSuiteVersion")).toString()); + + m_queryOffset = + m_catalogFile.resolved(atts.value(QLatin1String("InputOffsetPath")).toString()); + m_baselineOffset = + m_catalogFile.resolved(atts.value(QLatin1String("ResultOffsetPath")).toString()); + m_sourceOffset = + m_catalogFile.resolved(atts.value(QLatin1String("InputOffsetPath")).toString()); } else if(localName == QLatin1String("source-document")) { if(atts.value(QLatin1String("role")) == QLatin1String("principal")) - m_tc->setContextItemSource(m_sourceOffset.resolved(QUrl(atts.value(QLatin1String("file"))))); + m_tc->setContextItemSource( + m_sourceOffset.resolved(QUrl(atts.value(QLatin1String("file")).toString()))); } else if(localName == QLatin1String("result-document")) { - m_baseLine = new TestBaseLine(TestBaseLine::identifierFromString(atts.value(QLatin1String("type")))); - m_baseLine->setDetails(m_currentBaselinePath.resolved(atts.value(QLatin1String("file"))).toString()); + m_baseLine = new TestBaseLine( + TestBaseLine::identifierFromString(atts.value(QLatin1String("type")).toString())); + m_baseLine->setDetails( + m_currentBaselinePath.resolved(atts.value(QLatin1String("file")).toString()) + .toString()); m_tc->addBaseLine(m_baseLine); } else if(localName == QLatin1String("discretionary-feature")) { - const QString feature(atts.value(QLatin1String("name"))); + const QString feature(atts.value(QLatin1String("name")).toString()); m_removeTestcase = feature == QLatin1String("schema_aware") || feature == QLatin1String("namespace_axis") || @@ -126,9 +134,9 @@ bool XSLTTestSuiteHandler::startElement(const QString &namespaceURI, else if(localName == QLatin1String("discretionary-choice")) { m_baseLine = new TestBaseLine(TestBaseLine::ExpectedError); - m_baseLine->setDetails(atts.value(QLatin1String("name"))); + m_baseLine->setDetails(atts.value(QLatin1String("name")).toString()); m_tc->addBaseLine(m_baseLine); - const QString feature(atts.value(QLatin1String("name"))); + const QString feature(atts.value(QLatin1String("name")).toString()); m_removeTestcase = feature == QLatin1String("schema_aware") || feature == QLatin1String("namespace_axis") || @@ -137,7 +145,7 @@ bool XSLTTestSuiteHandler::startElement(const QString &namespaceURI, } else if(localName == QLatin1String("entry-named-template")) { - const QString name(atts.value(QLatin1String("qname"))); + const QString name(atts.value(QLatin1String("qname")).toString()); if(!name.contains(QLatin1Char(':'))) { @@ -166,9 +174,9 @@ TestGroup *XSLTTestSuiteHandler::containerFor(const QString &name) return c; } -bool XSLTTestSuiteHandler::endElement(const QString &namespaceURI, - const QString &localName, - const QString &/*qName*/) +bool XSLTTestSuiteHandler::endElement(const QStringRef &namespaceURI, + const QStringRef &localName, + const QStringRef &/*qName*/) { if(namespaceURI != Global::xsltsCatalogNS) return true; @@ -221,9 +229,9 @@ bool XSLTTestSuiteHandler::endElement(const QString &namespaceURI, return true; } -bool XSLTTestSuiteHandler::characters(const QString &ch) +bool XSLTTestSuiteHandler::characters(const QStringRef &ch) { - m_ch = ch; + m_ch = ch.toString(); return true; } diff --git a/tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.h b/tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.h index 231b55d..b5879c1 100644 --- a/tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.h +++ b/tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.h @@ -31,10 +31,10 @@ #include <QStack> #include <QUrl> -#include <QXmlDefaultHandler> #include "ExternalSourceLoader.h" #include "TestSuite.h" +#include "XmlParseHelper.h" #include "XQTSTestCase.h" QT_BEGIN_NAMESPACE @@ -59,7 +59,7 @@ namespace QPatternistSDK * @ingroup PatternistSDK * @author Frans Englich <frans.englich@nokia.com> */ - class XSLTTestSuiteHandler : public QXmlDefaultHandler + class XSLTTestSuiteHandler : public XmlParseHelper { public: /** @@ -70,17 +70,14 @@ namespace QPatternistSDK * test groups when loading */ XSLTTestSuiteHandler(const QUrl &catalogFile); - virtual bool characters(const QString &ch); + bool characters(const QStringRef &ch) override; - virtual bool endElement(const QString &namespaceURI, - const QString &localName, - const QString &qName); - virtual bool startElement(const QString &namespaceURI, - const QString &localName, - const QString &qName, - const QXmlAttributes &atts); + bool endElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName) override; + bool startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName, const QXmlStreamAttributes &atts) override; - virtual TestSuite *testSuite() const; + TestSuite *testSuite() const; private: TestGroup *containerFor(const QString &name); diff --git a/tests/auto/xmlpatternssdk/XmlParseHelper.cpp b/tests/auto/xmlpatternssdk/XmlParseHelper.cpp new file mode 100644 index 0000000..7629753 --- /dev/null +++ b/tests/auto/xmlpatternssdk/XmlParseHelper.cpp @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "XmlParseHelper.h" + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK { + +bool XmlParseHelper::parse(QIODevice *input) +{ + QXmlStreamReader reader(input); + + while (!reader.atEnd()) { + reader.readNext(); + if (reader.hasError()) + return false; + + switch (reader.tokenType()) { + case QXmlStreamReader::StartElement: + if (!startElement(reader.namespaceUri(), reader.name(), + reader.qualifiedName(), reader.attributes())) { + return false; + } + break; + case QXmlStreamReader::EndElement: + if (!endElement(reader.namespaceUri(), reader.name(), + reader.qualifiedName())) { + return false; + } + break; + case QXmlStreamReader::Characters: + if (!reader.isWhitespace() && !reader.text().toString().trimmed().isEmpty()) { + if (!characters(reader.text())) + return false; + } + break; + default: + break; + } + } + + if (reader.isEndDocument() && !endDocument()) + return false; + + return true; +} + +bool XmlParseHelper::startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName, const QXmlStreamAttributes &atts) +{ + Q_UNUSED(namespaceURI) + Q_UNUSED(localName) + Q_UNUSED(qName) + Q_UNUSED(atts) + return true; +} + +bool XmlParseHelper::endElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName) +{ + Q_UNUSED(namespaceURI) + Q_UNUSED(localName) + Q_UNUSED(qName) + return true; +} + +bool XmlParseHelper::characters(const QStringRef &text) +{ + Q_UNUSED(text) + return true; +} + +bool XmlParseHelper::endDocument() +{ + return true; +} + +} // namespace QPatternistSDK + +QT_END_NAMESPACE diff --git a/tests/auto/xmlpatternssdk/XmlParseHelper.h b/tests/auto/xmlpatternssdk/XmlParseHelper.h new file mode 100644 index 0000000..2bf6314 --- /dev/null +++ b/tests/auto/xmlpatternssdk/XmlParseHelper.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef XMLPARSEHELPER_H +#define XMLPARSEHELPER_H + +#include <qxmlstream.h> + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK { +class XmlParseHelper +{ +public: + virtual ~XmlParseHelper() = default; + + bool parse(QIODevice *input); + +protected: + virtual bool startElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName, const QXmlStreamAttributes &atts); + virtual bool endElement(const QStringRef &namespaceURI, const QStringRef &localName, + const QStringRef &qName); + virtual bool characters(const QStringRef &text); + virtual bool endDocument(); +}; + +} // namespace QPatternistSDK + +QT_END_NAMESPACE + +#endif // XMLPARSEHELPER_H diff --git a/tests/auto/xmlpatternssdk/xmlpatternssdk.pro b/tests/auto/xmlpatternssdk/xmlpatternssdk.pro index e52962c..5512aec 100644 --- a/tests/auto/xmlpatternssdk/xmlpatternssdk.pro +++ b/tests/auto/xmlpatternssdk/xmlpatternssdk.pro @@ -53,7 +53,8 @@ HEADERS = ASTItem.h \ XQTSTestCase.h \ XSDTestSuiteHandler.h \ XSDTSTestCase.h \ - XSLTTestSuiteHandler.h + XSLTTestSuiteHandler.h \ + XmlParseHelper.h SOURCES = ASTItem.cpp \ DebugExpressionFactory.cpp \ @@ -80,4 +81,5 @@ SOURCES = ASTItem.cpp \ XQTSTestCase.cpp \ XSDTestSuiteHandler.cpp \ XSDTSTestCase.cpp \ - XSLTTestSuiteHandler.cpp + XSLTTestSuiteHandler.cpp \ + XmlParseHelper.cpp diff --git a/tools/xmlpatterns/qapplicationargumentparser.cpp b/tools/xmlpatterns/qapplicationargumentparser.cpp index 8aaae31..ce73485 100644 --- a/tools/xmlpatterns/qapplicationargumentparser.cpp +++ b/tools/xmlpatterns/qapplicationargumentparser.cpp @@ -245,7 +245,7 @@ bool QApplicationArgumentParserPrivate::error(const QString &message) bool QApplicationArgumentParserPrivate::errorMessage(const QString &message) { QTextStream out(stderr, QIODevice::WriteOnly); - out << message << endl; + out << message << Qt::endl; return false; } @@ -290,7 +290,7 @@ void QApplicationArgumentParserPrivate::displayVersion() const QTextStream out(stderr); out << tr("%1 version %2 using Qt %3").arg(QCoreApplication::applicationName(), applicationVersion, QString::fromLatin1(qVersion())) - << endl; + << Qt::endl; } void QApplicationArgumentParserPrivate::displayHelp() const @@ -356,16 +356,16 @@ void QApplicationArgumentParserPrivate::displayHelp() const } QTextStream out(stderr); - out << endl + out << Qt::endl << QString(IndentPadding, QLatin1Char(' ')) << QCoreApplication::applicationName() << QLatin1String(" -- ") << applicationDescription - << endl; + << Qt::endl; // TODO synopsis /* One extra so we get some space between the overview and the options. */ - out << endl; + out << Qt::endl; const int indentWidth = maxWidth + 3; @@ -408,7 +408,7 @@ void QApplicationArgumentParserPrivate::displayHelp() const out << prolog << lineWrap(at.description(), indentWidth, LineWrapAt) - << endl; + << Qt::endl; } } |