summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@theqtcompany.com>2015-06-09 12:23:43 +0200
committerErik Verbruggen <erik.verbruggen@theqtcompany.com>2015-06-10 12:47:18 +0000
commit25ad8b7a1f05f0dee8010f56f42242aa62b6f375 (patch)
tree09c67645b5f5fedecfc494b511fd0ed2d4d89550
parentec9ab0ba6d0e28fc63f9ff28135ec9911ffa882b (diff)
downloadqtxmlpatterns-25ad8b7a1f05f0dee8010f56f42242aa62b6f375.tar.gz
Implement bison parser stack re(al)location.
The elements on the parser stack are of a complex type, which bison generated parsers don't know how to reallocate when they need to grow the stack. This patch implements yyoverflow, which is called whenever the parser runs out of stack space. The size of the elements is quite large (152 bytes on x86_64), so the initial stack (which is allocated on the C stack) is set to 1 element. Any subsequent reallocations are done by using QVector for reallocation, copying the elements, and handling the deallocation. Because of the size of the elements, the stack (vectors) are grown linearly. The upper limit of the stack size if left at 10000 elements, which should really be enough for an lalr(1) grammar. Task-number: QTBUG-4470 Change-Id: Ic1ef08655b388c38ef452d03a425cbd31b91825b Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
-rw-r--r--src/xmlpatterns/parser/parser.pri2
-rw-r--r--src/xmlpatterns/parser/qparsercontext.cpp24
-rw-r--r--src/xmlpatterns/parser/qparsercontext_p.h7
-rw-r--r--src/xmlpatterns/parser/qquerytransformparser.cpp1431
-rw-r--r--src/xmlpatterns/parser/qtokenizer_p.h69
-rw-r--r--src/xmlpatterns/parser/qtokensource_p.h31
-rw-r--r--src/xmlpatterns/parser/qtokenvalue_p.h163
-rw-r--r--src/xmlpatterns/parser/querytransformparser.ypp3
8 files changed, 916 insertions, 814 deletions
diff --git a/src/xmlpatterns/parser/parser.pri b/src/xmlpatterns/parser/parser.pri
index e9cf54f..e401b48 100644
--- a/src/xmlpatterns/parser/parser.pri
+++ b/src/xmlpatterns/parser/parser.pri
@@ -6,6 +6,7 @@ HEADERS += $$PWD/qparsercontext_p.h \
$$PWD/qtokenizer_p.h \
$$PWD/qtokenrevealer_p.h \
$$PWD/qtokensource_p.h \
+ $$PWD/qtokenvalue_p.h \
$$PWD/qxquerytokenizer_p.h \
$$PWD/qxslttokenizer_p.h \
$$PWD/qxslttokenlookup_p.h
@@ -20,3 +21,4 @@ SOURCES += $$PWD/qquerytransformparser.cpp \
OTHER_FILES += $$PWD/querytransformparser.ypp \
$$PWD/TokenLookup.gperf
+DEFINES += YYLTYPE_IS_DECLARED=1
diff --git a/src/xmlpatterns/parser/qparsercontext.cpp b/src/xmlpatterns/parser/qparsercontext.cpp
index beb1b0b..a30f07d 100644
--- a/src/xmlpatterns/parser/qparsercontext.cpp
+++ b/src/xmlpatterns/parser/qparsercontext.cpp
@@ -88,5 +88,29 @@ void ParserContext::finalizePushedVariable(const int amount,
}
}
+void ParserContext::handleStackOverflow(const char *, short **yyss, size_t,
+ TokenValue **yyvs, size_t,
+ YYLTYPE **yyls, size_t,
+ size_t *yystacksize)
+{
+ bool isFirstTime = parserStack_yyvs.isEmpty();
+ Q_ASSERT(*yystacksize < INT_MAX - 50);
+ int new_yystacksize = static_cast<int>(*yystacksize) + 50;
+ parserStack_yyss.resize(new_yystacksize);
+ parserStack_yyvs.resize(new_yystacksize);
+ parserStack_yyls.resize(new_yystacksize);
+ if (isFirstTime) {
+ for (int i = 0, ei = static_cast<int>(*yystacksize); i != ei; ++i) {
+ parserStack_yyss[i] = (*yyss)[i];
+ parserStack_yyvs[i] = (*yyvs)[i];
+ parserStack_yyls[i] = (*yyls)[i];
+ }
+ }
+ *yyss = parserStack_yyss.data();
+ *yyvs = parserStack_yyvs.data();
+ *yyls = parserStack_yyls.data();
+ *yystacksize = new_yystacksize;
+}
+
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/parser/qparsercontext_p.h b/src/xmlpatterns/parser/qparsercontext_p.h
index a8118ad..a058a1e 100644
--- a/src/xmlpatterns/parser/qparsercontext_p.h
+++ b/src/xmlpatterns/parser/qparsercontext_p.h
@@ -58,6 +58,7 @@
#include <private/quserfunctioncallsite_p.h>
#include <private/quserfunction_p.h>
#include <private/qvariabledeclaration_p.h>
+#include <private/qtokenvalue_p.h>
QT_BEGIN_NAMESPACE
@@ -206,6 +207,12 @@ namespace QPatternist
*/
VariableDeclaration::List declaredVariables;
+ QVector<qint16> parserStack_yyss;
+ QVector<TokenValue> parserStack_yyvs;
+ QVector<YYLTYPE> parserStack_yyls;
+
+ void handleStackOverflow(const char*, short **yyss, size_t, TokenValue **yyvs, size_t, YYLTYPE **yyls, size_t, size_t *yystacksize);
+
inline VariableSlotID currentPositionSlot() const
{
return m_positionSlot;
diff --git a/src/xmlpatterns/parser/qquerytransformparser.cpp b/src/xmlpatterns/parser/qquerytransformparser.cpp
index f084da3..5497fb8 100644
--- a/src/xmlpatterns/parser/qquerytransformparser.cpp
+++ b/src/xmlpatterns/parser/qquerytransformparser.cpp
@@ -264,8 +264,9 @@ namespace QPatternist
*/
#define YYERROR_VERBOSE 1
-#undef YYLTYPE_IS_TRIVIAL
#define YYLTYPE_IS_TRIVIAL 0
+#define YYINITDEPTH 1
+#define yyoverflow parseInfo->handleStackOverflow
/* Suppresses `warning: "YYENABLE_NLS" is not defined`
* @c YYENABLE_NLS enables Bison internationalization, and we don't
@@ -1161,7 +1162,7 @@ static Expression::Ptr createReturnOrderBy(const OrderSpecTransfer::List &orderS
}
-#line 1122 "qquerytransformparser.cpp" /* yacc.c:339 */
+#line 1123 "qquerytransformparser.cpp" /* yacc.c:339 */
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
@@ -1390,7 +1391,7 @@ int XPathparse (QT_PREPEND_NAMESPACE(QPatternist)::ParserContext *const parseInf
/* Copy the second part of user declarations. */
-#line 1351 "qquerytransformparser.cpp" /* yacc.c:358 */
+#line 1352 "qquerytransformparser.cpp" /* yacc.c:358 */
#ifdef short
# undef short
@@ -1706,54 +1707,54 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1419, 1419, 1420, 1422, 1423, 1454, 1455, 1471, 1569,
- 1571, 1577, 1579, 1586, 1592, 1598, 1605, 1608, 1612, 1616,
- 1636, 1650, 1654, 1648, 1717, 1721, 1738, 1741, 1743, 1748,
- 1749, 1753, 1754, 1758, 1762, 1766, 1768, 1769, 1771, 1773,
- 1819, 1833, 1838, 1843, 1844, 1846, 1861, 1876, 1886, 1901,
- 1905, 1910, 1924, 1928, 1933, 1947, 1952, 1957, 1962, 1967,
- 1983, 2006, 2014, 2015, 2016, 2018, 2035, 2036, 2038, 2039,
- 2041, 2042, 2044, 2099, 2103, 2109, 2112, 2117, 2131, 2135,
- 2141, 2140, 2249, 2252, 2258, 2279, 2285, 2289, 2291, 2296,
- 2306, 2307, 2312, 2313, 2322, 2392, 2403, 2404, 2408, 2413,
- 2482, 2483, 2487, 2492, 2536, 2537, 2542, 2549, 2555, 2556,
- 2557, 2558, 2559, 2560, 2566, 2571, 2577, 2580, 2585, 2591,
- 2597, 2601, 2626, 2627, 2631, 2635, 2629, 2676, 2679, 2674,
- 2695, 2696, 2697, 2700, 2704, 2712, 2711, 2725, 2724, 2733,
- 2734, 2735, 2737, 2745, 2756, 2759, 2761, 2766, 2773, 2780,
- 2786, 2806, 2811, 2817, 2820, 2822, 2823, 2830, 2836, 2840,
- 2845, 2846, 2849, 2853, 2848, 2863, 2867, 2862, 2875, 2878,
- 2882, 2877, 2892, 2896, 2891, 2904, 2906, 2934, 2933, 2945,
- 2953, 2944, 2964, 2965, 2968, 2972, 2977, 2982, 2981, 2997,
- 3003, 3004, 3010, 3011, 3017, 3018, 3019, 3020, 3022, 3023,
- 3029, 3030, 3036, 3037, 3039, 3040, 3046, 3047, 3048, 3049,
- 3051, 3052, 3062, 3063, 3069, 3070, 3072, 3076, 3081, 3082,
- 3089, 3090, 3096, 3097, 3103, 3104, 3110, 3111, 3117, 3121,
- 3126, 3127, 3128, 3130, 3136, 3137, 3138, 3139, 3140, 3141,
- 3143, 3148, 3149, 3150, 3151, 3152, 3153, 3155, 3160, 3161,
- 3162, 3164, 3178, 3179, 3180, 3182, 3199, 3203, 3208, 3209,
- 3211, 3216, 3217, 3219, 3225, 3229, 3235, 3238, 3239, 3243,
- 3252, 3257, 3261, 3262, 3267, 3266, 3281, 3289, 3288, 3304,
- 3312, 3312, 3321, 3323, 3326, 3331, 3333, 3337, 3403, 3406,
- 3412, 3415, 3424, 3428, 3432, 3437, 3438, 3443, 3444, 3447,
- 3446, 3476, 3478, 3479, 3481, 3525, 3526, 3527, 3528, 3529,
- 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3539, 3538, 3549,
- 3560, 3565, 3567, 3572, 3573, 3578, 3582, 3584, 3588, 3597,
- 3604, 3605, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618,
- 3628, 3629, 3634, 3639, 3645, 3651, 3656, 3661, 3666, 3672,
- 3677, 3682, 3712, 3716, 3723, 3725, 3729, 3734, 3735, 3736,
- 3770, 3779, 3768, 4020, 4024, 4044, 4047, 4053, 4058, 4063,
- 4069, 4072, 4082, 4089, 4093, 4099, 4113, 4119, 4136, 4141,
- 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4162, 4170, 4169,
- 4209, 4212, 4217, 4232, 4237, 4244, 4256, 4260, 4256, 4266,
- 4268, 4272, 4274, 4289, 4293, 4302, 4307, 4311, 4317, 4320,
- 4325, 4330, 4335, 4336, 4337, 4338, 4340, 4341, 4342, 4343,
- 4348, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4392, 4397,
- 4402, 4408, 4409, 4411, 4416, 4421, 4426, 4431, 4447, 4448,
- 4450, 4455, 4460, 4464, 4476, 4489, 4499, 4504, 4509, 4514,
- 4528, 4542, 4543, 4545, 4555, 4557, 4562, 4569, 4576, 4578,
- 4580, 4581, 4583, 4587, 4592, 4593, 4595, 4601, 4603, 4605,
- 4609, 4614, 4626
+ 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
};
#endif
@@ -3521,7 +3522,7 @@ yyreduce:
switch (yyn)
{
case 5:
-#line 1424 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1425 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* Suppress more compiler warnings about unused defines. */
@@ -3551,11 +3552,11 @@ yyreduce:
ReportContext::XQST0031, &ryy);
}
}
-#line 3512 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3513 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 7:
-#line 1456 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1457 "querytransformparser.ypp" /* yacc.c:1646 */
{
const QRegExp encNameRegExp(QLatin1String("[A-Za-z][A-Za-z0-9._\\-]*"));
@@ -3570,11 +3571,11 @@ yyreduce:
ReportContext::XQST0087, fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 3531 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3532 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 8:
-#line 1472 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1473 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* In XSL-T, we can have dangling variable references, so resolve them
* before we proceed with other steps, such as checking circularity. */
@@ -3671,87 +3672,87 @@ yyreduce:
else
parseInfo->queryBody = (yyvsp[0].expr);
}
-#line 3632 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3633 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 10:
-#line 1572 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1573 "querytransformparser.ypp" /* yacc.c:1646 */
{
// TODO add to namespace context
parseInfo->moduleNamespace = parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[-3].sval));
}
-#line 3641 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3642 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 12:
-#line 1580 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1581 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, "
"variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo));
}
-#line 3652 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3653 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 13:
-#line 1587 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1588 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, "
"variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo));
}
-#line 3662 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3663 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 14:
-#line 1593 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1594 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("Namespace declarations must occur before function, "
"variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo));
}
-#line 3672 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3673 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 15:
-#line 1599 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1600 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("Module imports must occur before function, "
"variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo));
}
-#line 3683 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3684 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 17:
-#line 1609 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1610 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->hasSecondPrologPart = true;
}
-#line 3691 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3692 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 18:
-#line 1613 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1614 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->hasSecondPrologPart = true;
}
-#line 3699 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3700 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 19:
-#line 1617 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1618 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
parseInfo->hasSecondPrologPart = true;
}
-#line 3708 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3709 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 20:
-#line 1640 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1641 "querytransformparser.ypp" /* yacc.c:1646 */
{
Template::Ptr temp(create(new Template(parseInfo->currentImportPrecedence, (yyvsp[-2].sequenceType)), (yyloc), parseInfo));
@@ -3760,27 +3761,27 @@ yyreduce:
temp->templateParameters = parseInfo->templateParameters;
parseInfo->templateParametersHandled();
}
-#line 3721 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3722 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 21:
-#line 1650 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1651 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->isParsingPattern = true;
}
-#line 3729 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3730 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 22:
-#line 1654 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1655 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->isParsingPattern = false;
}
-#line 3737 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3738 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 23:
-#line 1663 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1664 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* In this grammar branch, we're guaranteed to be a template rule, but
* may also be a named template. */
@@ -3833,19 +3834,19 @@ yyreduce:
mode->templatePatterns.append(ourPatterns.at(t));
}
}
-#line 3794 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3795 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 24:
-#line 1717 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1718 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.Double) = std::numeric_limits<xsDouble>::quiet_NaN();
}
-#line 3802 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3803 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 25:
-#line 1722 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1723 "querytransformparser.ypp" /* yacc.c:1646 */
{
const AtomicValue::Ptr val(Decimal::fromLexical((yyvsp[0].sval)));
if(val->hasError())
@@ -3860,59 +3861,59 @@ yyreduce:
else
(yyval.enums.Double) = val->as<Numeric>()->toDouble();
}
-#line 3821 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3822 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 26:
-#line 1738 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1739 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = QXmlName();
}
-#line 3829 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3830 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 28:
-#line 1744 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1745 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = (yyvsp[0].qName);
}
-#line 3837 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3838 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 30:
-#line 1750 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1751 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
-#line 3845 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3846 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 32:
-#line 1755 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1756 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
-#line 3853 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3854 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 33:
-#line 1759 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1760 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
-#line 3861 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3862 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 34:
-#line 1763 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1764 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
-#line 3869 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3870 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 39:
-#line 1774 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1775 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(!(yyvsp[-1].enums.Bool))
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
@@ -3957,11 +3958,11 @@ yyreduce:
}
}
}
-#line 3918 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3919 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 40:
-#line 1820 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1821 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->hasDeclaration(ParserContext::BoundarySpaceDecl))
{
@@ -3974,27 +3975,27 @@ yyreduce:
parseInfo->registerDeclaration(ParserContext::BoundarySpaceDecl);
}
}
-#line 3935 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3936 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 41:
-#line 1834 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1835 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.boundarySpacePolicy) = StaticContext::BSPStrip;
}
-#line 3943 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3944 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 42:
-#line 1839 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1840 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.boundarySpacePolicy) = StaticContext::BSPPreserve;
}
-#line 3951 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3952 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 45:
-#line 1848 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1849 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultElementNamespace))
{
@@ -4007,11 +4008,11 @@ yyreduce:
parseInfo->registerDeclaration(ParserContext::DeclareDefaultElementNamespace);
}
}
-#line 3968 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3969 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 46:
-#line 1863 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1864 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultFunctionNamespace))
{
@@ -4024,11 +4025,11 @@ yyreduce:
parseInfo->registerDeclaration(ParserContext::DeclareDefaultFunctionNamespace);
}
}
-#line 3985 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3986 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 47:
-#line 1877 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1878 "querytransformparser.ypp" /* yacc.c:1646 */
{
if((yyvsp[-2].qName).prefix() == StandardPrefixes::empty)
{
@@ -4037,11 +4038,11 @@ yyreduce:
ReportContext::XPST0081, fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 3998 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 3999 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 48:
-#line 1887 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1888 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if(parseInfo->hasDeclaration(ParserContext::OrderingModeDecl))
@@ -4055,27 +4056,27 @@ yyreduce:
parseInfo->staticContext->setOrderingMode((yyvsp[-1].enums.orderingMode));
}
}
-#line 4016 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4017 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 49:
-#line 1902 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1903 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.orderingMode) = StaticContext::Ordered;
}
-#line 4024 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4025 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 50:
-#line 1906 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1907 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.orderingMode) = StaticContext::Unordered;
}
-#line 4032 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4033 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 51:
-#line 1911 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1912 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->hasDeclaration(ParserContext::EmptyOrderDecl))
{
@@ -4088,27 +4089,27 @@ yyreduce:
parseInfo->staticContext->setOrderingEmptySequence((yyvsp[-1].enums.orderingEmptySequence));
}
}
-#line 4049 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4050 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 52:
-#line 1925 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1926 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.orderingEmptySequence) = StaticContext::Least;
}
-#line 4057 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4058 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 53:
-#line 1929 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1930 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.orderingEmptySequence) = StaticContext::Greatest;
}
-#line 4065 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4066 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 54:
-#line 1935 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1936 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->hasDeclaration(ParserContext::CopyNamespacesDecl))
{
@@ -4120,43 +4121,43 @@ yyreduce:
parseInfo->registerDeclaration(ParserContext::CopyNamespacesDecl);
}
}
-#line 4081 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4082 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 55:
-#line 1948 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1949 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->preserveNamespacesMode = true;
}
-#line 4089 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4090 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 56:
-#line 1953 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1954 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->preserveNamespacesMode = false;
}
-#line 4097 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4098 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 57:
-#line 1958 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1959 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->inheritNamespacesMode = true;
}
-#line 4105 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4106 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 58:
-#line 1963 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1964 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->inheritNamespacesMode = false;
}
-#line 4113 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4114 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 59:
-#line 1968 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1969 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->hasDeclaration(ParserContext::DefaultCollationDecl))
{
@@ -4171,11 +4172,11 @@ yyreduce:
parseInfo->staticContext->setDefaultCollation(coll);
}
}
-#line 4132 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4133 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 60:
-#line 1984 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 1985 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc), (yyvsp[-2].enums.Bool));
if(parseInfo->hasDeclaration(ParserContext::BaseURIDecl))
@@ -4197,22 +4198,22 @@ yyreduce:
parseInfo->staticContext->setBaseURI(toBeBase);
}
}
-#line 4158 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4159 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 61:
-#line 2007 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2008 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Import feature is not supported, "
"and therefore %1 declarations cannot occur.")
.arg(formatKeyword("import schema")),
ReportContext::XQST0009, fromYYLTYPE((yyloc), parseInfo));
}
-#line 4169 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4170 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 65:
-#line 2019 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2020 "querytransformparser.ypp" /* yacc.c:1646 */
{
if((yyvsp[-2].sval).isEmpty())
{
@@ -4228,11 +4229,11 @@ yyreduce:
ReportContext::XQST0016, fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 4189 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4190 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 72:
-#line 2046 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2047 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-6].enums.Bool));
if(variableByName((yyvsp[-4].qName), parseInfo))
@@ -4285,43 +4286,43 @@ yyreduce:
}
}
}
-#line 4246 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4247 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 73:
-#line 2100 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2101 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr).reset();
}
-#line 4254 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4255 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 74:
-#line 2104 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2105 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = (yyvsp[0].expr);
}
-#line 4262 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4263 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 75:
-#line 2109 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2110 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr).reset();
}
-#line 4270 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4271 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 76:
-#line 2113 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2114 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = (yyvsp[0].expr);
}
-#line 4278 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4279 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 77:
-#line 2118 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2119 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->hasDeclaration(ParserContext::ConstructionDecl))
{
@@ -4334,35 +4335,35 @@ yyreduce:
parseInfo->staticContext->setConstructionMode((yyvsp[-1].enums.constructionMode));
}
}
-#line 4295 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4296 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 78:
-#line 2132 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2133 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.constructionMode) = StaticContext::CMStrip;
}
-#line 4303 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4304 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 79:
-#line 2136 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2137 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.constructionMode) = StaticContext::CMPreserve;
}
-#line 4311 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4312 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 80:
-#line 2141 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2142 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.slot) = parseInfo->currentExpressionSlot() - (yyvsp[-1].functionArguments).count();
}
-#line 4319 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4320 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 81:
-#line 2145 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2146 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(!(yyvsp[-8].enums.Bool))
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-8].enums.Bool));
@@ -4465,29 +4466,29 @@ yyreduce:
ReportContext::XPST0017, fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 4426 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4427 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 82:
-#line 2249 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2250 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.functionArguments) = FunctionArgument::List();
}
-#line 4434 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4435 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 83:
-#line 2253 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2254 "querytransformparser.ypp" /* yacc.c:1646 */
{
FunctionArgument::List l;
l.append((yyvsp[0].functionArgument));
(yyval.functionArguments) = l;
}
-#line 4444 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4445 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 84:
-#line 2259 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2260 "querytransformparser.ypp" /* yacc.c:1646 */
{
FunctionArgument::List::const_iterator it((yyvsp[-2].functionArguments).constBegin());
const FunctionArgument::List::const_iterator end((yyvsp[-2].functionArguments).constEnd());
@@ -4507,44 +4508,44 @@ yyreduce:
(yyvsp[-2].functionArguments).append((yyvsp[0].functionArgument));
(yyval.functionArguments) = (yyvsp[-2].functionArguments);
}
-#line 4468 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4469 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 85:
-#line 2280 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2281 "querytransformparser.ypp" /* yacc.c:1646 */
{
pushVariable((yyvsp[-1].qName), (yyvsp[0].sequenceType), Expression::Ptr(), VariableDeclaration::FunctionArgument, (yyloc), parseInfo);
(yyval.functionArgument) = FunctionArgument::Ptr(new FunctionArgument((yyvsp[-1].qName), (yyvsp[0].sequenceType)));
}
-#line 4477 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4478 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 86:
-#line 2286 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2287 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr).reset();
}
-#line 4485 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4486 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 88:
-#line 2292 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2293 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = (yyvsp[-1].expr);
}
-#line 4493 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4494 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 91:
-#line 2308 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2309 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new CombineNodes((yyvsp[-2].expr), CombineNodes::Union, (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 4501 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4502 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 93:
-#line 2314 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2315 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* We write this into a node test. The spec says, 5.5.3 The Meaning of a Pattern:
* "Similarly, / matches a document node, and only a document node,
@@ -4553,11 +4554,11 @@ yyreduce:
* document node." */
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisSelf, BuiltinTypes::document), (yyloc), parseInfo);
}
-#line 4514 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4515 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 94:
-#line 2323 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2324 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* /axis::node-test
* =>
@@ -4627,11 +4628,11 @@ yyreduce:
(yyval.expr) = (yyvsp[0].expr);
}
}
-#line 4588 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4589 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 95:
-#line 2393 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2394 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* //axis::node-test
* =>
@@ -4642,27 +4643,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 4603 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4604 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 97:
-#line 2405 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2406 "querytransformparser.ypp" /* yacc.c:1646 */
{
createIdPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisParent, (yylsp[-1]), parseInfo);
}
-#line 4611 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4612 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 98:
-#line 2409 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2410 "querytransformparser.ypp" /* yacc.c:1646 */
{
createIdPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[-1]), parseInfo);
}
-#line 4619 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4620 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 99:
-#line 2414 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2415 "querytransformparser.ypp" /* yacc.c:1646 */
{
const Expression::List ands((yyvsp[0].expr)->operands());
const FunctionSignature::Ptr signature((yyvsp[0].expr)->as<FunctionCall>()->signature());
@@ -4730,27 +4731,27 @@ yyreduce:
(yyval.expr) = (yyvsp[0].expr);
}
-#line 4691 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4692 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 101:
-#line 2484 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2485 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = createPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisParent, (yylsp[-1]), parseInfo);
}
-#line 4699 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4700 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 102:
-#line 2488 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2489 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = createPatternPath((yyvsp[-2].expr), (yyvsp[0].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[-1]), parseInfo);
}
-#line 4707 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4708 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 103:
-#line 2493 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2494 "querytransformparser.ypp" /* yacc.c:1646 */
{
const Expression::Ptr expr(findAxisStep((yyvsp[0].expr)));
@@ -4793,108 +4794,108 @@ yyreduce:
(yyval.expr) = (yyvsp[0].expr);
}
-#line 4754 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4755 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 105:
-#line 2538 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2539 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new ExpressionSequence((yyvsp[0].expressionList)), (yyloc), parseInfo);
}
-#line 4762 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4763 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 106:
-#line 2543 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2544 "querytransformparser.ypp" /* yacc.c:1646 */
{
Expression::List l;
l.append((yyvsp[-2].expr));
l.append((yyvsp[0].expr));
(yyval.expressionList) = l;
}
-#line 4773 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4774 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 107:
-#line 2550 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2551 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyvsp[-2].expressionList).append((yyvsp[0].expr));
(yyval.expressionList) = (yyvsp[-2].expressionList);
}
-#line 4782 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4783 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 113:
-#line 2561 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2562 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = createDirAttributeValue((yyvsp[-1].expressionList), parseInfo, (yyloc));
}
-#line 4790 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4791 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 114:
-#line 2566 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2567 "querytransformparser.ypp" /* yacc.c:1646 */
{
QVector<QXmlName> result;
result.append(QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default));
(yyval.qNameVector) = result;
}
-#line 4800 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4801 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 115:
-#line 2572 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2573 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qNameVector) = (yyvsp[0].qNameVector);
}
-#line 4808 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4809 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 116:
-#line 2577 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2578 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default);
}
-#line 4816 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4817 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 117:
-#line 2581 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2582 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = (yyvsp[0].qName);
}
-#line 4824 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4825 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 118:
-#line 2586 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2587 "querytransformparser.ypp" /* yacc.c:1646 */
{
QVector<QXmlName> result;
result.append((yyvsp[0].qName));
(yyval.qNameVector) = result;
}
-#line 4834 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4835 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 119:
-#line 2592 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2593 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyvsp[-2].qNameVector).append((yyvsp[0].qName));
(yyval.qNameVector) = (yyvsp[-2].qNameVector);
}
-#line 4843 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4844 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 120:
-#line 2598 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2599 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = (yyvsp[0].qName);
}
-#line 4851 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4852 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 121:
-#line 2602 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2603 "querytransformparser.ypp" /* yacc.c:1646 */
{
if((yyvsp[0].sval) == QLatin1String("#current"))
(yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::current);
@@ -4917,31 +4918,31 @@ yyreduce:
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[0].sval));
}
}
-#line 4878 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4879 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 124:
-#line 2631 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2632 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* 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 4887 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4888 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 125:
-#line 2635 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2636 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* It is ok this appears after PositionalVar, because currentRangeSlot()
* uses a different "channel" than currentPositionSlot(), so they can't trash
* each other. */
(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();
}
-#line 4898 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4899 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 126:
-#line 2642 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2643 "querytransformparser.ypp" /* yacc.c:1646 */
{
Q_ASSERT((yyvsp[-3].expr));
Q_ASSERT((yyvsp[0].expr));
@@ -4973,30 +4974,30 @@ yyreduce:
if((yyvsp[-5].enums.slot) != -1) /* We also have a positional variable to remove from the scope. */
parseInfo->finalizePushedVariable();
}
-#line 4934 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4935 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 127:
-#line 2676 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2677 "querytransformparser.ypp" /* yacc.c:1646 */
{
pushVariable((yyvsp[-4].qName), quantificationType((yyvsp[-3].sequenceType)), (yyvsp[0].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo);
}
-#line 4942 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4943 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 128:
-#line 2679 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2680 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* It is ok this appears after PositionalVar, because currentRangeSlot()
* uses a different "channel" than currentPositionSlot(), so they can't trash
* each other. */
(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();
}
-#line 4953 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4954 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 129:
-#line 2686 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2687 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new ForClause((yyvsp[-1].enums.slot), (yyvsp[-3].expr), (yyvsp[0].expr), (yyvsp[-5].enums.slot)), (yyloc), parseInfo);
@@ -5005,37 +5006,37 @@ yyreduce:
if((yyvsp[-5].enums.slot) != -1) /* We also have a positional variable to remove from the scope. */
parseInfo->finalizePushedVariable();
}
-#line 4966 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4967 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 133:
-#line 2700 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2701 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.slot) = -1;
}
-#line 4974 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4975 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 134:
-#line 2705 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2706 "querytransformparser.ypp" /* yacc.c:1646 */
{
pushVariable((yyvsp[0].qName), CommonSequenceTypes::ExactlyOneInteger, Expression::Ptr(),
VariableDeclaration::PositionalVariable, (yyloc), parseInfo);
(yyval.enums.slot) = parseInfo->currentPositionSlot();
}
-#line 4984 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4985 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 135:
-#line 2712 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2713 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo);
}
-#line 4992 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 4993 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 136:
-#line 2716 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2717 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-7].enums.Bool));
@@ -5043,38 +5044,38 @@ yyreduce:
(yyval.expr) = create(new LetClause((yyvsp[-1].expr), (yyvsp[0].expr), parseInfo->variables.top()), (yyloc), parseInfo);
parseInfo->finalizePushedVariable();
}
-#line 5004 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5005 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 137:
-#line 2725 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2726 "querytransformparser.ypp" /* yacc.c:1646 */
{ (yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo);}
-#line 5010 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5011 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 138:
-#line 2727 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2728 "querytransformparser.ypp" /* yacc.c:1646 */
{
Q_ASSERT(parseInfo->variables.top()->name == (yyvsp[-5].qName));
(yyval.expr) = create(new LetClause((yyvsp[-1].expr), (yyvsp[0].expr), parseInfo->variables.top()), (yyloc), parseInfo);
parseInfo->finalizePushedVariable();
}
-#line 5020 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5021 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 142:
-#line 2738 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2739 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5031 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5032 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 143:
-#line 2746 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2747 "querytransformparser.ypp" /* yacc.c:1646 */
{
if((yyvsp[-2].orderSpecs).isEmpty())
(yyval.expr) = create(new IfThenClause((yyvsp[-3].expr), (yyvsp[0].expr), create(new EmptySequence, (yyloc), parseInfo)), (yyloc), parseInfo);
@@ -5083,56 +5084,56 @@ yyreduce:
create(new EmptySequence, (yyloc), parseInfo)),
(yyloc), parseInfo);
}
-#line 5044 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5045 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 144:
-#line 2756 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2757 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.orderSpecs) = OrderSpecTransfer::List();
}
-#line 5052 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5053 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 146:
-#line 2762 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2763 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.orderSpecs) = (yyvsp[0].orderSpecs);
}
-#line 5060 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5061 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 147:
-#line 2767 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2768 "querytransformparser.ypp" /* yacc.c:1646 */
{
OrderSpecTransfer::List list;
list += (yyvsp[-2].orderSpecs);
list.append((yyvsp[0].orderSpec));
(yyval.orderSpecs) = list;
}
-#line 5071 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5072 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 148:
-#line 2774 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2775 "querytransformparser.ypp" /* yacc.c:1646 */
{
OrderSpecTransfer::List list;
list.append((yyvsp[0].orderSpec));
(yyval.orderSpecs) = list;
}
-#line 5081 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5082 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 149:
-#line 2781 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2782 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.orderSpec) = OrderSpecTransfer((yyvsp[-3].expr), OrderBy::OrderSpec((yyvsp[-2].enums.sortDirection), (yyvsp[-1].enums.orderingEmptySequence)));
}
-#line 5089 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5090 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 150:
-#line 2786 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2787 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* Where does the specification state the default value is ascending?
*
@@ -5152,199 +5153,199 @@ yyreduce:
*/
(yyval.enums.sortDirection) = OrderBy::OrderSpec::Ascending;
}
-#line 5113 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5114 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 151:
-#line 2807 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2808 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.sortDirection) = OrderBy::OrderSpec::Ascending;
}
-#line 5121 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5122 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 152:
-#line 2812 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2813 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.sortDirection) = OrderBy::OrderSpec::Descending;
}
-#line 5129 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5130 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 153:
-#line 2817 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2818 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.orderingEmptySequence) = parseInfo->staticContext->orderingEmptySequence();
}
-#line 5137 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5138 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 156:
-#line 2824 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2825 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->isXSLT())
resolveAndCheckCollation<ReportContext::XTDE1035>((yyvsp[0].sval), parseInfo, (yyloc));
else
resolveAndCheckCollation<ReportContext::XQST0076>((yyvsp[0].sval), parseInfo, (yyloc));
}
-#line 5148 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5149 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 157:
-#line 2831 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2832 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* We do nothing. We don't use collations, and we have this non-terminal
* in order to accept expressions. */
}
-#line 5157 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5158 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 158:
-#line 2837 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2838 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->orderStability.push(OrderBy::StableOrder);
}
-#line 5165 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5166 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 159:
-#line 2841 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2842 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->orderStability.push(OrderBy::UnstableOrder);
}
-#line 5173 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5174 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 162:
-#line 2849 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2850 "querytransformparser.ypp" /* yacc.c:1646 */
{
pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
}
-#line 5182 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5183 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 163:
-#line 2853 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2854 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
-#line 5188 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5189 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 164:
-#line 2855 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2856 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5199 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5200 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 165:
-#line 2863 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2864 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
}
-#line 5208 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5209 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 166:
-#line 2867 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2868 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
-#line 5214 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5215 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 167:
-#line 2869 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2870 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot),
QuantifiedExpression::Some, (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo);
parseInfo->finalizePushedVariable();
}
-#line 5224 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5225 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 169:
-#line 2878 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2879 "querytransformparser.ypp" /* yacc.c:1646 */
{
pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
}
-#line 5233 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5234 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 170:
-#line 2882 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2883 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
-#line 5239 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5240 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 171:
-#line 2884 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2885 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5250 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5251 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 172:
-#line 2892 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2893 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = pushVariable((yyvsp[-3].qName), quantificationType((yyvsp[-2].sequenceType)), (yyvsp[0].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
}
-#line 5259 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5260 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 173:
-#line 2896 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2897 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
-#line 5265 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5266 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 174:
-#line 2898 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2899 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new QuantifiedExpression((yyvsp[-1].enums.slot),
QuantifiedExpression::Every, (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo);
parseInfo->finalizePushedVariable();
}
-#line 5275 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5276 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 176:
-#line 2907 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2908 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = (yyvsp[0].expr);
}
-#line 5283 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5284 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 177:
-#line 2934 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2935 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->typeswitchSource.push((yyvsp[-1].expr));
}
-#line 5291 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5292 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 178:
-#line 2938 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2939 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
parseInfo->typeswitchSource.pop();
(yyval.expr) = (yyvsp[0].expr);
}
-#line 5301 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5302 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 179:
-#line 2945 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2946 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(!(yyvsp[-1].qName).isNull())
{
@@ -5352,54 +5353,54 @@ yyreduce:
VariableDeclaration::ExpressionVariable, (yyloc), parseInfo, false);
}
}
-#line 5313 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5314 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 180:
-#line 2953 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2954 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* The variable shouldn't be in-scope for other case branches. */
if(!(yyvsp[-4].qName).isNull())
parseInfo->finalizePushedVariable();
}
-#line 5323 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5324 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 181:
-#line 2959 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2960 "querytransformparser.ypp" /* yacc.c:1646 */
{
const Expression::Ptr instanceOf(create(new InstanceOf(parseInfo->typeswitchSource.top(), (yyvsp[-5].sequenceType)), (yyloc), parseInfo));
(yyval.expr) = create(new IfThenClause(instanceOf, (yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 5332 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5333 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 184:
-#line 2968 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2969 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = QXmlName();
}
-#line 5340 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5341 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 185:
-#line 2973 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2974 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = (yyvsp[-1].qName);
}
-#line 5348 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5349 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 186:
-#line 2978 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2979 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = (yyvsp[0].expr);
}
-#line 5356 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5357 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 187:
-#line 2982 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2983 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(!(yyvsp[0].qName).isNull())
{
@@ -5408,111 +5409,111 @@ yyreduce:
VariableDeclaration::ExpressionVariable, (yyloc), parseInfo, false);
}
}
-#line 5369 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5370 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 188:
-#line 2991 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2992 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(!(yyvsp[-3].qName).isNull())
parseInfo->finalizePushedVariable();
(yyval.expr) = (yyvsp[0].expr);
}
-#line 5379 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5380 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 189:
-#line 2998 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 2999 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5388 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5389 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 191:
-#line 3005 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3006 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new OrExpression((yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 5397 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5398 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 193:
-#line 3012 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3013 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new AndExpression((yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 5406 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5407 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 199:
-#line 3024 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3025 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new RangeExpression((yyvsp[-2].expr), (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 5415 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5416 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 201:
-#line 3031 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3032 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5424 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5425 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 202:
-#line 3036 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3037 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.mathOperator) = AtomicMathematician::Add;}
-#line 5430 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5431 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 203:
-#line 3037 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3038 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.mathOperator) = AtomicMathematician::Substract;}
-#line 5436 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5437 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 205:
-#line 3041 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3042 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5445 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5446 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 206:
-#line 3046 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3047 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.mathOperator) = AtomicMathematician::Multiply;}
-#line 5451 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5452 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 207:
-#line 3047 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3048 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.mathOperator) = AtomicMathematician::Div;}
-#line 5457 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5458 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 208:
-#line 3048 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3049 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.mathOperator) = AtomicMathematician::IDiv;}
-#line 5463 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5464 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 209:
-#line 3049 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3050 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.mathOperator) = AtomicMathematician::Mod;}
-#line 5469 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5470 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 211:
-#line 3053 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3054 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10
| QXmlQuery::XPath20
@@ -5521,213 +5522,213 @@ yyreduce:
parseInfo, (yyloc));
(yyval.expr) = create(new CombineNodes((yyvsp[-2].expr), CombineNodes::Union, (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 5482 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5483 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 213:
-#line 3064 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3065 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5491 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5492 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 216:
-#line 3073 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3074 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.combinedNodeOp) = CombineNodes::Intersect;
}
-#line 5499 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5500 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 217:
-#line 3077 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3078 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.combinedNodeOp) = CombineNodes::Except;
}
-#line 5507 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5508 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 219:
-#line 3083 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3084 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new InstanceOf((yyvsp[-3].expr),
SequenceType::Ptr((yyvsp[0].sequenceType))), (yyloc), parseInfo);
}
-#line 5517 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5518 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 221:
-#line 3091 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3092 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new TreatAs((yyvsp[-3].expr), (yyvsp[0].sequenceType)), (yyloc), parseInfo);
}
-#line 5526 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5527 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 223:
-#line 3098 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3099 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new CastableAs((yyvsp[-3].expr), (yyvsp[0].sequenceType)), (yyloc), parseInfo);
}
-#line 5535 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5536 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 225:
-#line 3105 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3106 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new CastAs((yyvsp[-3].expr), (yyvsp[0].sequenceType)), (yyloc), parseInfo);
}
-#line 5544 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5545 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 227:
-#line 3112 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3113 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5553 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5554 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 228:
-#line 3118 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3119 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.mathOperator) = AtomicMathematician::Add;
}
-#line 5561 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5562 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 229:
-#line 3122 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3123 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.mathOperator) = AtomicMathematician::Substract;
}
-#line 5569 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5570 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 233:
-#line 3131 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3132 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5578 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5579 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 234:
-#line 3136 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3137 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;}
-#line 5584 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5585 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 235:
-#line 3137 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3138 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;}
-#line 5590 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5591 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 236:
-#line 3138 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3139 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;}
-#line 5596 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5597 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 237:
-#line 3139 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3140 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;}
-#line 5602 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5603 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 238:
-#line 3140 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3141 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;}
-#line 5608 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5609 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 239:
-#line 3141 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3142 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;}
-#line 5614 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5615 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 240:
-#line 3144 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3145 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new ValueComparison((yyvsp[-2].expr), (yyvsp[-1].enums.valueOperator), (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 5622 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5623 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 241:
-#line 3148 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3149 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;}
-#line 5628 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5629 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 242:
-#line 3149 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3150 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;}
-#line 5634 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5635 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 243:
-#line 3150 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3151 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;}
-#line 5640 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5641 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 244:
-#line 3151 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3152 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;}
-#line 5646 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5647 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 245:
-#line 3152 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3153 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;}
-#line 5652 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5653 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 246:
-#line 3153 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3154 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;}
-#line 5658 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5659 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 247:
-#line 3156 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3157 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new NodeComparison((yyvsp[-2].expr), (yyvsp[-1].enums.nodeOperator), (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 5666 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5667 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 248:
-#line 3160 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3161 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Is;}
-#line 5672 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5673 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 249:
-#line 3161 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3162 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Precedes;}
-#line 5678 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5679 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 250:
-#line 3162 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3163 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Follows;}
-#line 5684 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5685 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 251:
-#line 3165 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3166 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Validation Feature is not supported. "
@@ -5738,29 +5739,29 @@ yyreduce:
$$ = Validate::create($2, $1, parseInfo->staticContext);
*/
}
-#line 5699 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5700 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 252:
-#line 3178 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3179 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.validationMode) = Validate::Strict;}
-#line 5705 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5706 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 253:
-#line 3179 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3180 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.validationMode) = Validate::Strict;}
-#line 5711 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5712 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 254:
-#line 3180 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3181 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.validationMode) = Validate::Lax;}
-#line 5717 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5718 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 255:
-#line 3183 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3184 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
/* We don't support any pragmas, so we only do the
@@ -5776,69 +5777,69 @@ yyreduce:
ReportContext::XQST0079, fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 5737 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5738 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 256:
-#line 3200 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3201 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr).reset();
}
-#line 5745 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5746 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 257:
-#line 3204 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3205 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = (yyvsp[-1].expr);
}
-#line 5753 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5754 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 260:
-#line 3212 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3213 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
-#line 5761 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5762 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 263:
-#line 3220 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3221 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* This is "/step". That is, fn:root(self::node()) treat as document-node()/RelativePathExpr. */
(yyval.expr) = create(new Path(createRootExpression(parseInfo, (yyloc)), (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 5770 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5771 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 264:
-#line 3226 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3227 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = createSlashSlashPath(createRootExpression(parseInfo, (yyloc)), (yyvsp[0].expr), (yyloc), parseInfo);
}
-#line 5778 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5779 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 265:
-#line 3230 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3231 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* This is "/". That is, fn:root(self::node()) treat as document-node(). */
(yyval.expr) = createRootExpression(parseInfo, (yyloc));
}
-#line 5787 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5788 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 268:
-#line 3240 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3241 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new Path((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].enums.pathKind)), (yyloc), parseInfo);
}
-#line 5795 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5796 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 269:
-#line 3244 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3245 "querytransformparser.ypp" /* yacc.c:1646 */
{
const Expression::Ptr orderBy(createReturnOrderBy((yyvsp[-3].orderSpecs), (yyvsp[-1].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo));
@@ -5847,35 +5848,35 @@ yyreduce:
(yyval.expr) = create(new OrderBy(rob->stability(), rob->orderSpecs(), path, rob), (yyloc), parseInfo);
}
-#line 5808 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5809 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 270:
-#line 3253 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3254 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = createSlashSlashPath((yyvsp[-2].expr), (yyvsp[0].expr), (yyloc), parseInfo);
}
-#line 5816 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5817 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 271:
-#line 3258 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3259 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = NodeSortExpression::wrapAround((yyvsp[0].expr), parseInfo->staticContext);
}
-#line 5824 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5825 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 273:
-#line 3263 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3264 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new CurrentItemStore((yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 5832 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5833 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 274:
-#line 3267 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3268 "querytransformparser.ypp" /* yacc.c:1646 */
{
const xsDouble version = (yyvsp[0].sval).toDouble();
@@ -5883,32 +5884,32 @@ yyreduce:
(yyval.enums.Double) = version;
}
-#line 5844 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5845 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 275:
-#line 3275 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3276 "querytransformparser.ypp" /* yacc.c:1646 */
{
if((yyvsp[-1].enums.Double) < 2)
(yyval.expr) = createCompatStore((yyvsp[0].expr), (yyloc), parseInfo);
else
(yyval.expr) = (yyvsp[0].expr);
}
-#line 5855 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5856 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 276:
-#line 3282 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3283 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 5865 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5866 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 277:
-#line 3289 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3290 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc));
parseInfo->resolvers.push(parseInfo->staticContext->namespaceBindings());
@@ -5918,81 +5919,81 @@ yyreduce:
parseInfo->staticContext->namePool()->allocatePrefix((yyvsp[-3].sval))));
parseInfo->staticContext->setNamespaceBindings(resolver);
}
-#line 5879 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5880 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 278:
-#line 3300 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3301 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->staticContext->setNamespaceBindings(parseInfo->resolvers.pop());
(yyval.expr) = (yyvsp[-1].expr);
}
-#line 5888 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5889 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 279:
-#line 3305 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3306 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new CallTemplate((yyvsp[-3].qName), parseInfo->templateWithParams), (yyloc), parseInfo);
parseInfo->templateWithParametersHandled();
parseInfo->templateCalls.append((yyval.expr));
}
-#line 5898 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5899 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 280:
-#line 3312 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3313 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->startParsingWithParam();
}
-#line 5906 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5907 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 281:
-#line 3316 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3317 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->endParsingWithParam();
}
-#line 5914 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5915 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 282:
-#line 3321 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3322 "querytransformparser.ypp" /* yacc.c:1646 */
{
}
-#line 5921 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5922 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 283:
-#line 3324 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3325 "querytransformparser.ypp" /* yacc.c:1646 */
{
}
-#line 5928 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5929 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 284:
-#line 3327 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3328 "querytransformparser.ypp" /* yacc.c:1646 */
{
}
-#line 5935 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5936 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 285:
-#line 3331 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3332 "querytransformparser.ypp" /* yacc.c:1646 */
{
}
-#line 5942 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5943 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 286:
-#line 3334 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3335 "querytransformparser.ypp" /* yacc.c:1646 */
{
}
-#line 5949 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 5950 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 287:
-#line 3338 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3339 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* Note, this grammar rule is invoked for @c xsl:param @em and @c
* xsl:with-param. */
@@ -6056,84 +6057,84 @@ yyreduce:
}
}
}
-#line 6017 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6018 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 288:
-#line 3403 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3404 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.Bool) = false;
}
-#line 6025 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6026 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 289:
-#line 3407 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3408 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.Bool) = true;
}
-#line 6033 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6034 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 290:
-#line 3412 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3413 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = Expression::Ptr();
}
-#line 6041 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6042 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 291:
-#line 3416 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3417 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = (yyvsp[0].expr);
}
-#line 6049 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6050 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 292:
-#line 3425 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3426 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.pathKind) = Path::RegularPath;
}
-#line 6057 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6058 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 293:
-#line 3429 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3430 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.pathKind) = Path::XSLTForEach;
}
-#line 6065 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6066 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 294:
-#line 3433 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3434 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.pathKind) = Path::ForApplyTemplate;
}
-#line 6073 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6074 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 296:
-#line 3439 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3440 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(GenericPredicate::create((yyvsp[-3].expr), (yyvsp[-1].expr), parseInfo->staticContext, fromYYLTYPE((yyloc), parseInfo)), (yyloc), parseInfo);
}
-#line 6081 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6082 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 299:
-#line 3447 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3448 "querytransformparser.ypp" /* yacc.c:1646 */
{
if((yyvsp[0].enums.axis) == QXmlNodeModelIndex::AxisAttribute)
parseInfo->nodeTestSource = BuiltinTypes::attribute;
}
-#line 6090 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6091 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 300:
-#line 3452 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3453 "querytransformparser.ypp" /* yacc.c:1646 */
{
if((yyvsp[0].itemType))
{
@@ -6158,11 +6159,11 @@ yyreduce:
parseInfo->restoreNodeTestSource();
}
-#line 6119 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6120 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 304:
-#line 3482 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3483 "querytransformparser.ypp" /* yacc.c:1646 */
{
if((yyvsp[-1].enums.axis) == QXmlNodeModelIndex::AxisNamespace)
{
@@ -6205,102 +6206,102 @@ yyreduce:
}
}
}
-#line 6166 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6167 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 305:
-#line 3525 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3526 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestorOrSelf ;}
-#line 6172 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6173 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 306:
-#line 3526 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3527 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestor ;}
-#line 6178 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6179 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 307:
-#line 3527 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3528 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisAttribute ;}
-#line 6184 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6185 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 308:
-#line 3528 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3529 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisChild ;}
-#line 6190 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6191 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 309:
-#line 3529 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3530 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendantOrSelf;}
-#line 6196 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6197 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 310:
-#line 3530 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3531 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendant ;}
-#line 6202 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6203 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 311:
-#line 3531 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3532 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowing ;}
-#line 6208 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6209 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 312:
-#line 3532 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3533 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisPreceding ;}
-#line 6214 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6215 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 313:
-#line 3533 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3534 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowingSibling;}
-#line 6220 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6221 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 314:
-#line 3534 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3535 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisPrecedingSibling;}
-#line 6226 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6227 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 315:
-#line 3535 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3536 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisParent ;}
-#line 6232 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6233 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 316:
-#line 3536 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3537 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisSelf ;}
-#line 6238 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6239 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 317:
-#line 3539 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3540 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->nodeTestSource = BuiltinTypes::attribute;
}
-#line 6246 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6247 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 318:
-#line 3543 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3544 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 6257 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6258 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 319:
-#line 3550 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3551 "querytransformparser.ypp" /* yacc.c:1646 */
{
ItemType::Ptr nodeTest;
@@ -6311,51 +6312,51 @@ yyreduce:
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisChild, nodeTest), (yyloc), parseInfo);
}
-#line 6272 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6273 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 320:
-#line 3561 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3562 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[0].itemType)), (yyloc), parseInfo);
}
-#line 6280 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6281 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 322:
-#line 3568 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3569 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::node), (yyloc), parseInfo);
}
-#line 6288 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6289 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 324:
-#line 3574 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3575 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
}
-#line 6296 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6297 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 325:
-#line 3579 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3580 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = QNameTest::create(parseInfo->nodeTestSource, (yyvsp[0].qName));
}
-#line 6304 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6305 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 327:
-#line 3585 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3586 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = parseInfo->nodeTestSource;
}
-#line 6312 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6313 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 328:
-#line 3589 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3590 "querytransformparser.ypp" /* yacc.c:1646 */
{
const NamePool::Ptr np(parseInfo->staticContext->namePool());
const ReflectYYLTYPE ryy((yyloc), parseInfo);
@@ -6364,30 +6365,30 @@ yyreduce:
(yyval.itemType) = NamespaceNameTest::create(parseInfo->nodeTestSource, ns);
}
-#line 6325 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6326 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 329:
-#line 3598 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3599 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 6335 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6336 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 331:
-#line 3606 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3607 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 6344 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6345 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 339:
-#line 3619 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3620 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new ApplyTemplate(parseInfo->modeFor((yyvsp[-3].qName)),
parseInfo->templateWithParams,
@@ -6396,97 +6397,97 @@ yyreduce:
(yylsp[-4]), parseInfo);
parseInfo->templateWithParametersHandled();
}
-#line 6357 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6358 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 341:
-#line 3630 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3631 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo);
}
-#line 6365 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6366 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 342:
-#line 3635 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3636 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = createNumericLiteral<Double>((yyvsp[0].sval), (yyloc), parseInfo);
}
-#line 6374 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6375 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 343:
-#line 3640 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3641 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = createNumericLiteral<Numeric>((yyvsp[0].sval), (yyloc), parseInfo);
}
-#line 6383 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6384 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 344:
-#line 3646 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3647 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = resolveVariable((yyvsp[0].qName), (yyloc), parseInfo, false);
}
-#line 6392 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6393 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 345:
-#line 3652 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3653 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* See: http://www.w3.org/TR/xpath20/#id-variables */
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(QString(), (yyvsp[0].sval));
}
-#line 6401 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6402 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 346:
-#line 3657 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3658 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = (yyvsp[0].qName);
}
-#line 6409 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6410 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 347:
-#line 3662 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3663 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = (yyvsp[-1].expr);
}
-#line 6418 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6419 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 348:
-#line 3667 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3668 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new EmptySequence, (yyloc), parseInfo);
}
-#line 6427 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6428 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 349:
-#line 3673 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3674 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new ContextItem(), (yyloc), parseInfo);
}
-#line 6435 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6436 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 350:
-#line 3678 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3679 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = (yyvsp[0].expr);
}
-#line 6443 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6444 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 351:
-#line 3683 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3684 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
if(XPathHelper::isReservedNamespace((yyvsp[-3].qName).namespaceURI()) || (yyvsp[-3].qName).namespaceURI() == StandardNamespaces::InternalXSLT)
@@ -6514,46 +6515,46 @@ yyreduce:
parseInfo->userFunctionCallsites.append((yyval.expr));
}
}
-#line 6475 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6476 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 352:
-#line 3712 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3713 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expressionList) = Expression::List();
}
-#line 6483 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6484 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 353:
-#line 3717 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3718 "querytransformparser.ypp" /* yacc.c:1646 */
{
Expression::List list;
list.append((yyvsp[0].expr));
(yyval.expressionList) = list;
}
-#line 6493 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6494 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 355:
-#line 3726 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3727 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
-#line 6501 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6502 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 360:
-#line 3770 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3771 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.tokenizerPosition) = parseInfo->tokenizer->commenceScanOnly();
parseInfo->scanOnlyStack.push(true);
}
-#line 6510 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6511 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 361:
-#line 3779 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3780 "querytransformparser.ypp" /* yacc.c:1646 */
{
++parseInfo->elementConstructorDepth;
Expression::List constructors;
@@ -6697,11 +6698,11 @@ yyreduce:
parseInfo->tokenizer->resumeTokenizationFrom((yyvsp[-1].enums.tokenizerPosition));
}
-#line 6658 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6659 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 362:
-#line 3925 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 3926 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* We add the content constructor after the attribute constructors. This might result
* in nested ExpressionSequences, but it will be optimized away later on. */
@@ -6796,19 +6797,19 @@ yyreduce:
--parseInfo->elementConstructorDepth;
}
-#line 6757 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6758 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 363:
-#line 4021 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4022 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new EmptySequence(), (yyloc), parseInfo);
}
-#line 6765 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6766 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 364:
-#line 4025 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4026 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(!(yyvsp[-1].qName).isLexicallyEqual(parseInfo->tagStack.top()))
{
@@ -6826,60 +6827,60 @@ yyreduce:
else
(yyval.expr) = create(new ExpressionSequence((yyvsp[-3].expressionList)), (yyloc), parseInfo);
}
-#line 6787 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6788 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 365:
-#line 4044 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4045 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.attributeHolders) = AttributeHolderVector();
}
-#line 6795 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6796 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 366:
-#line 4048 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4049 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyvsp[-1].attributeHolders).append((yyvsp[0].attributeHolder));
(yyval.attributeHolders) = (yyvsp[-1].attributeHolders);
}
-#line 6804 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6805 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 367:
-#line 4054 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4055 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.attributeHolder) = qMakePair((yyvsp[-2].sval), (yyvsp[0].expr));
}
-#line 6812 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6813 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 368:
-#line 4059 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4060 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = createDirAttributeValue((yyvsp[-1].expressionList), parseInfo, (yyloc));
}
-#line 6820 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6821 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 369:
-#line 4064 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4065 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = createDirAttributeValue((yyvsp[-1].expressionList), parseInfo, (yyloc));
}
-#line 6828 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6829 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 370:
-#line 4069 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4070 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expressionList) = Expression::List();
}
-#line 6836 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6837 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 371:
-#line 4073 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4074 "querytransformparser.ypp" /* yacc.c:1646 */
{
Expression::Ptr content((yyvsp[-1].expr));
@@ -6889,39 +6890,39 @@ yyreduce:
(yyvsp[0].expressionList).prepend(createSimpleContent(content, (yyloc), parseInfo));
(yyval.expressionList) = (yyvsp[0].expressionList);
}
-#line 6850 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6851 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 372:
-#line 4083 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4084 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyvsp[0].expressionList).prepend(create(new Literal(AtomicString::fromValue((yyvsp[-1].sval))), (yyloc), parseInfo));
(yyval.expressionList) = (yyvsp[0].expressionList);
}
-#line 6859 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6860 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 373:
-#line 4089 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4090 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expressionList) = Expression::List();
parseInfo->isPreviousEnclosedExpr = false;
}
-#line 6868 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6869 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 374:
-#line 4094 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4095 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyvsp[-1].expressionList).append((yyvsp[0].expr));
(yyval.expressionList) = (yyvsp[-1].expressionList);
parseInfo->isPreviousEnclosedExpr = false;
}
-#line 6878 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6879 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 375:
-#line 4100 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4101 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(parseInfo->staticContext->boundarySpacePolicy() == StaticContext::BSPStrip &&
XPathHelper::isWhitespaceOnly((yyvsp[0].sval)))
@@ -6935,21 +6936,21 @@ yyreduce:
parseInfo->isPreviousEnclosedExpr = false;
}
}
-#line 6896 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6897 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 376:
-#line 4114 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4115 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyvsp[-1].expressionList).append(create(new TextNodeConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo));
(yyval.expressionList) = (yyvsp[-1].expressionList);
parseInfo->isPreviousEnclosedExpr = false;
}
-#line 6906 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6907 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 377:
-#line 4120 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4121 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* We insert a text node constructor that send an empty text node between
* the two enclosed expressions, in order to ensure that no space is inserted.
@@ -6965,19 +6966,19 @@ yyreduce:
(yyvsp[-1].expressionList).append(createCopyOf((yyvsp[0].expr), parseInfo, (yyloc)));
(yyval.expressionList) = (yyvsp[-1].expressionList);
}
-#line 6926 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6927 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 378:
-#line 4137 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4138 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new CommentConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo);
}
-#line 6934 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6935 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 379:
-#line 4142 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4143 "querytransformparser.ypp" /* yacc.c:1646 */
{
const ReflectYYLTYPE ryy((yyloc), parseInfo);
NCNameConstructor::validateTargetName<StaticContext::Ptr,
@@ -6989,30 +6990,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 6950 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6951 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 387:
-#line 4163 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4164 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-1].enums.Bool));
(yyval.expr) = create(new DocumentConstructor((yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 6960 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6961 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 388:
-#line 4170 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4171 "querytransformparser.ypp" /* yacc.c:1646 */
{
/* This value is incremented before the action below is executed. */
++parseInfo->elementConstructorDepth;
}
-#line 6969 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 6970 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 389:
-#line 4175 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4176 "querytransformparser.ypp" /* yacc.c:1646 */
{
Q_ASSERT(5);
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-3].enums.Bool));
@@ -7045,27 +7046,27 @@ yyreduce:
--parseInfo->elementConstructorDepth;
(yyval.expr) = create(new ElementConstructor((yyvsp[-2].expr), effExpr, parseInfo->isXSLT()), (yyloc), parseInfo);
}
-#line 7006 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7007 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 390:
-#line 4209 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4210 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.Bool) = false;
}
-#line 7014 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7015 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 391:
-#line 4213 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4214 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.enums.Bool) = true;
}
-#line 7022 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7023 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 392:
-#line 4221 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4222 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-2].enums.Bool));
@@ -7076,29 +7077,29 @@ yyreduce:
else
(yyval.expr) = create(new AttributeConstructor(name, create(new EmptySequence(), (yyloc), parseInfo)), (yyloc), parseInfo);
}
-#line 7037 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7038 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 393:
-#line 4233 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4234 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new TextNodeConstructor(createSimpleContent((yyvsp[0].expr), (yyloc), parseInfo)), (yyloc), parseInfo);
}
-#line 7045 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7046 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 394:
-#line 4238 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4239 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-1].enums.Bool));
(yyval.expr) = create(new CommentConstructor(createSimpleContent((yyvsp[0].expr), (yyloc), parseInfo)), (yyloc), parseInfo);
}
-#line 7055 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7056 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 395:
-#line 4245 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4246 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[-1].expr));
@@ -7109,43 +7110,43 @@ yyreduce:
else
(yyval.expr) = create(new ProcessingInstructionConstructor((yyvsp[-1].expr), create(new EmptySequence(), (yyloc), parseInfo)), (yyloc), parseInfo);
}
-#line 7070 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7071 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 396:
-#line 4256 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4257 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->nodeTestSource = BuiltinTypes::attribute;
}
-#line 7078 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7079 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 397:
-#line 4260 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4261 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->restoreNodeTestSource();
}
-#line 7086 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7087 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 398:
-#line 4263 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4264 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[-1].qName)))), (yyloc), parseInfo);
}
-#line 7094 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7095 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 400:
-#line 4269 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4270 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[0].qName)))), (yyloc), parseInfo);
}
-#line 7102 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7103 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 402:
-#line 4275 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4276 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(BuiltinTypes::xsQName->xdtTypeMatches((yyvsp[0].expr)->staticType()->itemType()))
(yyval.expr) = (yyvsp[0].expr);
@@ -7156,115 +7157,115 @@ yyreduce:
(yyloc), parseInfo);
}
}
-#line 7117 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7118 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 403:
-#line 4290 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4291 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new NCNameConstructor(create(new Literal(AtomicString::fromValue((yyvsp[0].sval))), (yyloc), parseInfo)), (yyloc), parseInfo);
}
-#line 7125 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7126 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 404:
-#line 4294 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4295 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new NCNameConstructor((yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 7133 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7134 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 405:
-#line 4303 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4304 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.expr) = create(new ComputedNamespaceConstructor((yyvsp[-1].expr), (yyvsp[0].expr)), (yyloc), parseInfo);
}
-#line 7141 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7142 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 406:
-#line 4308 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4309 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.sequenceType) = makeGenericSequenceType((yyvsp[0].itemType), Cardinality::exactlyOne());
}
-#line 7149 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7150 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 407:
-#line 4312 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4313 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.sequenceType) = makeGenericSequenceType((yyvsp[-1].itemType), Cardinality::zeroOrOne());
}
-#line 7157 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7158 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 408:
-#line 4317 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4318 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.sequenceType) = CommonSequenceTypes::ZeroOrMoreItems;
}
-#line 7165 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7166 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 409:
-#line 4321 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4322 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.sequenceType) = (yyvsp[0].sequenceType);
}
-#line 7173 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7174 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 410:
-#line 4326 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4327 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.sequenceType) = makeGenericSequenceType((yyvsp[-1].itemType), (yyvsp[0].cardinality));
}
-#line 7181 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7182 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 411:
-#line 4331 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4332 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.sequenceType) = CommonSequenceTypes::Empty;
}
-#line 7189 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7190 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 412:
-#line 4335 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4336 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.cardinality) = Cardinality::exactlyOne();}
-#line 7195 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7196 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 413:
-#line 4336 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4337 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.cardinality) = Cardinality::oneOrMore();}
-#line 7201 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7202 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 414:
-#line 4337 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4338 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.cardinality) = Cardinality::zeroOrMore();}
-#line 7207 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7208 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 415:
-#line 4338 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4339 "querytransformparser.ypp" /* yacc.c:1646 */
{(yyval.cardinality) = Cardinality::zeroOrOne();}
-#line 7213 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7214 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 419:
-#line 4344 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4345 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::item;
}
-#line 7221 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7222 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 420:
-#line 4349 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4350 "querytransformparser.ypp" /* yacc.c:1646 */
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[0].qName)));
@@ -7296,68 +7297,68 @@ yyreduce:
}
}
}
-#line 7257 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7258 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 428:
-#line 4393 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4394 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::node;
}
-#line 7265 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7266 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 429:
-#line 4398 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4399 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::document;
}
-#line 7273 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7274 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 430:
-#line 4403 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4404 "querytransformparser.ypp" /* yacc.c:1646 */
{
// TODO support for document element testing
(yyval.itemType) = BuiltinTypes::document;
}
-#line 7282 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7283 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 433:
-#line 4412 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4413 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::text;
}
-#line 7290 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7291 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 434:
-#line 4417 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4418 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::comment;
}
-#line 7298 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7299 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 435:
-#line 4422 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4423 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::pi;
}
-#line 7306 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7307 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 436:
-#line 4427 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4428 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = LocalNameTest::create(BuiltinTypes::pi, parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[-1].sval)));
}
-#line 7314 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7315 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 437:
-#line 4432 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4433 "querytransformparser.ypp" /* yacc.c:1646 */
{
if(QXmlUtils::isNCName((yyvsp[-1].sval)))
{
@@ -7372,35 +7373,35 @@ yyreduce:
fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 7333 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7334 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 440:
-#line 4451 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4452 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::attribute;
}
-#line 7341 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7342 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 441:
-#line 4456 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4457 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::attribute;
}
-#line 7349 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7350 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 442:
-#line 4461 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4462 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = QNameTest::create(BuiltinTypes::attribute, (yyvsp[-1].qName));
}
-#line 7357 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7358 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 443:
-#line 4465 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4466 "querytransformparser.ypp" /* yacc.c:1646 */
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-1].qName)));
@@ -7412,11 +7413,11 @@ yyreduce:
ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 7373 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7374 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 444:
-#line 4477 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4478 "querytransformparser.ypp" /* yacc.c:1646 */
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-1].qName)));
@@ -7428,11 +7429,11 @@ yyreduce:
ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 7389 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7390 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 445:
-#line 4490 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4491 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute "
"declarations. Note that the schema import "
@@ -7441,35 +7442,35 @@ yyreduce:
ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo));
(yyval.itemType).reset();
}
-#line 7402 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7403 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 446:
-#line 4500 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4501 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::element;
}
-#line 7410 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7411 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 447:
-#line 4505 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4506 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = BuiltinTypes::element;
}
-#line 7418 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7419 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 448:
-#line 4510 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4511 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.itemType) = QNameTest::create(BuiltinTypes::element, (yyvsp[-1].qName));
}
-#line 7426 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7427 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 449:
-#line 4515 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4516 "querytransformparser.ypp" /* yacc.c:1646 */
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-2].qName)));
@@ -7482,11 +7483,11 @@ yyreduce:
ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 7443 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7444 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 450:
-#line 4529 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4530 "querytransformparser.ypp" /* yacc.c:1646 */
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[-2].qName)));
@@ -7499,11 +7500,11 @@ yyreduce:
ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo));
}
}
-#line 7460 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7461 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 453:
-#line 4546 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4547 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute "
"declarations. Note that the schema import "
@@ -7512,72 +7513,72 @@ yyreduce:
ReportContext::XPST0008, fromYYLTYPE((yyloc), parseInfo));
(yyval.itemType).reset();
}
-#line 7473 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7474 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 455:
-#line 4558 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4559 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[0].sval));
}
-#line 7481 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7482 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 457:
-#line 4570 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4571 "querytransformparser.ypp" /* yacc.c:1646 */
{
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 7492 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7493 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 462:
-#line 4584 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4585 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->defaultFunctionNamespace(), (yyvsp[0].sval));
}
-#line 7500 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7501 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 463:
-#line 4588 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4589 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::InternalXSLT, (yyvsp[0].sval));
}
-#line 7508 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7509 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 466:
-#line 4596 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4597 "querytransformparser.ypp" /* yacc.c:1646 */
{
parseInfo->staticContext->error(QtXmlPatterns::tr("The name of an extension expression must be in "
"a namespace."),
ReportContext::XPST0081, fromYYLTYPE((yyloc), parseInfo));
}
-#line 7518 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7519 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 469:
-#line 4606 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4607 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
}
-#line 7526 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7527 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 470:
-#line 4610 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4611 "querytransformparser.ypp" /* yacc.c:1646 */
{
allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
}
-#line 7534 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7535 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 471:
-#line 4615 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4616 "querytransformparser.ypp" /* yacc.c:1646 */
{
const ReflectYYLTYPE ryy((yyloc), parseInfo);
@@ -7589,19 +7590,19 @@ yyreduce:
parseInfo->staticContext->namespaceBindings(), &ryy);
}
-#line 7550 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7551 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
case 472:
-#line 4627 "querytransformparser.ypp" /* yacc.c:1646 */
+#line 4628 "querytransformparser.ypp" /* yacc.c:1646 */
{
(yyval.qName) = parseInfo->staticContext->namePool()->fromClarkName((yyvsp[0].sval));
}
-#line 7558 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7559 "qquerytransformparser.cpp" /* yacc.c:1646 */
break;
-#line 7562 "qquerytransformparser.cpp" /* yacc.c:1646 */
+#line 7563 "qquerytransformparser.cpp" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -7836,7 +7837,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 4631 "querytransformparser.ypp" /* yacc.c:1906 */
+#line 4632 "querytransformparser.ypp" /* yacc.c:1906 */
QString Tokenizer::tokenToString(const Token &token)
diff --git a/src/xmlpatterns/parser/qtokenizer_p.h b/src/xmlpatterns/parser/qtokenizer_p.h
index b13cca5..befc134 100644
--- a/src/xmlpatterns/parser/qtokenizer_p.h
+++ b/src/xmlpatterns/parser/qtokenizer_p.h
@@ -51,74 +51,7 @@
#include <private/qparsercontext_p.h>
#include <private/qtokensource_p.h>
-
-/**
- * @file
- * @short Contains functions and classes used by the parser and tokenizer.
- */
-
-QT_BEGIN_NAMESPACE
-
-namespace QPatternist
-{
- typedef QPair<QString, Expression::Ptr> AttributeHolder;
- typedef QVector<AttributeHolder> AttributeHolderVector;
-
- class OrderSpecTransfer
- {
- public:
- typedef QList<OrderSpecTransfer> List;
- inline OrderSpecTransfer()
- {
- }
-
- inline OrderSpecTransfer(const Expression::Ptr &aExpr,
- const OrderBy::OrderSpec aOrderSpec) : expression(aExpr),
- orderSpec(aOrderSpec)
- {
- Q_ASSERT(expression);
- }
-
- Expression::Ptr expression;
- OrderBy::OrderSpec orderSpec;
- };
-
- /**
- * @short The value the parser, but not the tokenizers, uses for tokens and
- * non-terminals.
- *
- * It is inefficient but ensures nothing leaks, by invoking C++
- * destructors even in the cases the code throws exceptions. This might be
- * able to be done in a more efficient way -- suggestions are welcome.
- */
- class TokenValue
- {
- public:
- QString sval;
-
- Expression::Ptr expr;
- Expression::List expressionList;
-
- Cardinality cardinality;
- ItemType::Ptr itemType;
- SequenceType::Ptr sequenceType;
- FunctionArgument::List functionArguments;
- FunctionArgument::Ptr functionArgument;
- QVector<QXmlName> qNameVector;
- QXmlName qName;
- /**
- * Holds enum values.
- */
- EnumUnion enums;
-
- AttributeHolder attributeHolder;
- AttributeHolderVector attributeHolders;
- OrderSpecTransfer::List orderSpecs;
- OrderSpecTransfer orderSpec;
- };
-}
-
-QT_END_NAMESPACE
+#include <private/qtokenvalue_p.h>
/**
* Macro for the data type of semantic values; int by default.
diff --git a/src/xmlpatterns/parser/qtokensource_p.h b/src/xmlpatterns/parser/qtokensource_p.h
index 7070194..710b7b5 100644
--- a/src/xmlpatterns/parser/qtokensource_p.h
+++ b/src/xmlpatterns/parser/qtokensource_p.h
@@ -44,17 +44,12 @@
#ifndef Patternist_TokenSource_H
#define Patternist_TokenSource_H
-#include <private/qatomiccomparator_p.h>
-#include <private/qatomicmathematician_p.h>
-#include <private/qcombinenodes_p.h>
#include <private/qfunctionargument_p.h>
#include <private/qitem_p.h>
#include <private/qitemtype_p.h>
-#include <private/qorderby_p.h>
-#include <private/qpath_p.h>
+#include <private/qtokenvalue_p.h>
#include <private/qparsercontext_p.h>
#include <private/qquerytransformparser_p.h>
-#include <private/qvalidate_p.h>
QT_BEGIN_NAMESPACE
@@ -63,30 +58,6 @@ template<typename T> class QQueue;
namespace QPatternist
{
/**
- * @short A union of all the enums the parser uses.
- */
- union EnumUnion
- {
- AtomicComparator::Operator valueOperator;
- AtomicMathematician::Operator mathOperator;
- CombineNodes::Operator combinedNodeOp;
- QXmlNodeModelIndex::Axis axis;
- QXmlNodeModelIndex::DocumentOrder nodeOperator;
- StaticContext::BoundarySpacePolicy boundarySpacePolicy;
- StaticContext::ConstructionMode constructionMode;
- StaticContext::OrderingEmptySequence orderingEmptySequence;
- StaticContext::OrderingMode orderingMode;
- OrderBy::OrderSpec::Direction sortDirection;
- Validate::Mode validationMode;
- VariableSlotID slot;
- int tokenizerPosition;
- qint16 zeroer;
- bool Bool;
- xsDouble Double;
- Path::Kind pathKind;
- };
-
- /**
* @short Base class for components that needs to return tokens.
*
* TokenSource represents a stream of Token instances. The end
diff --git a/src/xmlpatterns/parser/qtokenvalue_p.h b/src/xmlpatterns/parser/qtokenvalue_p.h
new file mode 100644
index 0000000..7e0c54a
--- /dev/null
+++ b/src/xmlpatterns/parser/qtokenvalue_p.h
@@ -0,0 +1,163 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtXmlPatterns module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** 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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://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 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_qtokenvalue_p_H
+#define Patternist_qtokenvalue_p_H
+
+#include <QPair>
+#include <QString>
+#include <QList>
+
+#include <private/qatomiccomparator_p.h>
+#include <private/qatomicmathematician_p.h>
+#include <private/qcombinenodes_p.h>
+#include <private/qexpression_p.h>
+#include <private/qfunctionargument_p.h>
+#include <private/qorderby_p.h>
+#include <private/qpath_p.h>
+#include <private/qvalidate_p.h>
+
+/**
+ * @file
+ * @short Contains functions and classes used by the parser and tokenizer.
+ */
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A union of all the enums the parser uses.
+ */
+ union EnumUnion
+ {
+ AtomicComparator::Operator valueOperator;
+ AtomicMathematician::Operator mathOperator;
+ CombineNodes::Operator combinedNodeOp;
+ QXmlNodeModelIndex::Axis axis;
+ QXmlNodeModelIndex::DocumentOrder nodeOperator;
+ StaticContext::BoundarySpacePolicy boundarySpacePolicy;
+ StaticContext::ConstructionMode constructionMode;
+ StaticContext::OrderingEmptySequence orderingEmptySequence;
+ StaticContext::OrderingMode orderingMode;
+ OrderBy::OrderSpec::Direction sortDirection;
+ Validate::Mode validationMode;
+ VariableSlotID slot;
+ int tokenizerPosition;
+ qint16 zeroer;
+ bool Bool;
+ xsDouble Double;
+ Path::Kind pathKind;
+ };
+
+ typedef QPair<QString, Expression::Ptr> AttributeHolder;
+ typedef QVector<AttributeHolder> AttributeHolderVector;
+
+ class OrderSpecTransfer
+ {
+ public:
+ typedef QList<OrderSpecTransfer> List;
+ inline OrderSpecTransfer()
+ {
+ }
+
+ inline OrderSpecTransfer(const Expression::Ptr &aExpr,
+ const OrderBy::OrderSpec aOrderSpec) : expression(aExpr),
+ orderSpec(aOrderSpec)
+ {
+ Q_ASSERT(expression);
+ }
+
+ Expression::Ptr expression;
+ OrderBy::OrderSpec orderSpec;
+ };
+
+ /**
+ * @short The value the parser, but not the tokenizers, uses for tokens and
+ * non-terminals.
+ *
+ * It is inefficient but ensures nothing leaks, by invoking C++
+ * destructors even in the cases the code throws exceptions. This might be
+ * able to be done in a more efficient way -- suggestions are welcome.
+ */
+ class TokenValue
+ {
+ public:
+ QString sval;
+
+ Expression::Ptr expr;
+ Expression::List expressionList;
+
+ Cardinality cardinality;
+ ItemType::Ptr itemType;
+ SequenceType::Ptr sequenceType;
+ FunctionArgument::List functionArguments;
+ FunctionArgument::Ptr functionArgument;
+ QVector<QXmlName> qNameVector;
+ QXmlName qName;
+ /**
+ * Holds enum values.
+ */
+ EnumUnion enums;
+
+ AttributeHolder attributeHolder;
+ AttributeHolderVector attributeHolders;
+ OrderSpecTransfer::List orderSpecs;
+ OrderSpecTransfer orderSpec;
+ };
+}
+
+struct YYLTYPE
+{
+ int first_line;
+ int first_column;
+ int last_line;
+ int last_column;
+};
+#ifndef YYLTYPE_IS_DECLARED
+# define YYLTYPE_IS_DECLARED
+#endif
+
+QT_END_NAMESPACE
+
+#endif // Patternist_qtokenvalue_p_H
diff --git a/src/xmlpatterns/parser/querytransformparser.ypp b/src/xmlpatterns/parser/querytransformparser.ypp
index c40bbe5..edd2823 100644
--- a/src/xmlpatterns/parser/querytransformparser.ypp
+++ b/src/xmlpatterns/parser/querytransformparser.ypp
@@ -193,8 +193,9 @@ namespace QPatternist
*/
#define YYERROR_VERBOSE 1
-#undef YYLTYPE_IS_TRIVIAL
#define YYLTYPE_IS_TRIVIAL 0
+#define YYINITDEPTH 1
+#define yyoverflow parseInfo->handleStackOverflow
/* Suppresses `warning: "YYENABLE_NLS" is not defined`
* @c YYENABLE_NLS enables Bison internationalization, and we don't