Merge lp:~zorba-coders/zorba/new-jsoniq-update into lp:zorba

Proposed by Ghislain Fourny
Status: Merged
Merged at revision: 11623
Proposed branch: lp:~zorba-coders/zorba/new-jsoniq-update
Merge into: lp:zorba
Diff against target: 38761 lines (+10813/-11063)
72 files modified
src/compiler/parser/jsoniq_parser.cpp (+5545/-6233)
src/compiler/parser/parser.y (+191/-120)
src/compiler/parser/xquery_parser.cpp (+4749/-4665)
src/compiler/parsetree/parsenodes.cpp (+3/-3)
src/compiler/parsetree/parsenodes.h (+17/-11)
test/rbkt/Queries/zorba/jsoniq/arr_delete_01.jq (+6/-0)
test/rbkt/Queries/zorba/jsoniq/arr_delete_02.jq (+3/-0)
test/rbkt/Queries/zorba/jsoniq/arr_delete_03.jq (+3/-0)
test/rbkt/Queries/zorba/jsoniq/arr_delete_04.jq (+3/-0)
test/rbkt/Queries/zorba/jsoniq/arr_delete_05.jq (+3/-0)
test/rbkt/Queries/zorba/jsoniq/arr_delete_06.jq (+8/-0)
test/rbkt/Queries/zorba/jsoniq/arr_delete_07.jq (+1/-0)
test/rbkt/Queries/zorba/jsoniq/arr_delete_08.jq (+3/-0)
test/rbkt/Queries/zorba/jsoniq/arr_delete_09.jq (+7/-0)
test/rbkt/Queries/zorba/jsoniq/arr_replace_01.jq (+13/-0)
test/rbkt/Queries/zorba/jsoniq/arr_replace_01.xq (+4/-4)
test/rbkt/Queries/zorba/jsoniq/arr_update_01.jq (+12/-0)
test/rbkt/Queries/zorba/jsoniq/arr_update_01.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/arr_update_02.jq (+13/-0)
test/rbkt/Queries/zorba/jsoniq/arr_update_02.xq (+2/-2)
test/rbkt/Queries/zorba/jsoniq/collection-and-index/foaf-collection-update.xq (+2/-2)
test/rbkt/Queries/zorba/jsoniq/collection-and-index/foaf-index-point-maintenance.xq (+2/-2)
test/rbkt/Queries/zorba/jsoniq/collection-and-index/foaf-json-xml-index-point-maintenance.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/jnty0007-6.xq (+2/-2)
test/rbkt/Queries/zorba/jsoniq/jnty0007-7.xq (+2/-2)
test/rbkt/Queries/zorba/jsoniq/jnty0008-4.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/jnty0008-5.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/jnup0009-1.xq (+3/-3)
test/rbkt/Queries/zorba/jsoniq/jnup0009-2.xq (+3/-3)
test/rbkt/Queries/zorba/jsoniq/obj_delete_01.jq (+7/-0)
test/rbkt/Queries/zorba/jsoniq/obj_delete_02.jq (+10/-0)
test/rbkt/Queries/zorba/jsoniq/obj_delete_03.jq (+6/-0)
test/rbkt/Queries/zorba/jsoniq/obj_delete_05.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_delete_06.jq (+12/-0)
test/rbkt/Queries/zorba/jsoniq/obj_delete_07.jq (+3/-0)
test/rbkt/Queries/zorba/jsoniq/obj_delete_08.jq (+3/-0)
test/rbkt/Queries/zorba/jsoniq/obj_delete_09.jq (+7/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_01.jq (+8/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_02.jq (+1/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_03.jq (+6/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_04.jq (+8/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_05.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_06.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_07.jq (+7/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_08.jq (+7/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_09.jq (+9/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_10.jq (+9/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_11.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_12.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_13.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_14.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_15.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_insert_16.jq (+8/-0)
test/rbkt/Queries/zorba/jsoniq/obj_rename_01.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_rename_02.jq (+3/-0)
test/rbkt/Queries/zorba/jsoniq/obj_rename_03.jq (+3/-0)
test/rbkt/Queries/zorba/jsoniq/obj_rename_04.jq (+1/-0)
test/rbkt/Queries/zorba/jsoniq/obj_rename_05.jq (+1/-0)
test/rbkt/Queries/zorba/jsoniq/obj_rename_06.jq (+5/-0)
test/rbkt/Queries/zorba/jsoniq/obj_replace_01.jq (+6/-0)
test/rbkt/Queries/zorba/jsoniq/obj_replace_01.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/obj_replace_02.jq (+1/-0)
test/rbkt/Queries/zorba/jsoniq/obj_replace_02.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/obj_replace_03.jq (+1/-0)
test/rbkt/Queries/zorba/jsoniq/obj_replace_03.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/obj_replace_04.jq (+6/-0)
test/rbkt/Queries/zorba/jsoniq/obj_replace_04.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/obj_replace_05.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/obj_update_01.jq (+9/-0)
test/rbkt/Queries/zorba/jsoniq/obj_update_01.xq (+1/-1)
test/rbkt/Queries/zorba/jsoniq/obj_update_02.jq (+10/-0)
test/rbkt/Queries/zorba/jsoniq/obj_update_02.xq (+1/-1)
To merge this branch: bzr merge lp:~zorba-coders/zorba/new-jsoniq-update
Reviewer Review Type Date Requested Status
Ghislain Fourny Approve
Matthias Brantner Approve
Review via email: mp+185295@code.launchpad.net

Commit message

Introducing new update syntax in the JSONiq parser.
- Made json keyword mandatory to avoid conflicts.
- Turned "replace json value of" into "replace value of json" to make consistent with XML updates, for BOTH parsers.
- New target syntax: delete $obj.foo, delete $arr[[1]], etc.

Description of the change

New JSONiq syntax:
- Made json keyword mandatory to avoid conflicts.
- Turned "replace json value of" into "replace value of json" to make consistent with XML updates.
- New target syntax: delete $obj.foo, delete $arr[[1]], etc.

To post a comment you must log in.
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Progress dashboard at http://jenkins.lambda.nu/view/ValidationQueue

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Voting criteria failed for the following merge proposals:

https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295 :
Votes: {'Pending': 1, 'Needs commit message': 1}

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Stage "CommitZorba" failed.

Check console output at http://jenkins.lambda.nu/job/CommitZorba/177/console to view the results.

Revision history for this message
Matthias Brantner (matthias-brantner) wrote :

Looks great. I'll approve and let you decide on one question:

Is it really necessary to make the expressions in the parsenodes non-const? Couldn't you use a unique pointer or auto_ptr in the parser that is passed
to convert_postfix_to_target_and_selector and only released when the JSON expression is created?

review: Approve
Revision history for this message
Ghislain Fourny (gislenius) wrote :

Hi Matthias,

I am not sure I understand what you are suggesting.

The reason for non-const is that temporary parse nodes (in that case a lookup expression node) use regular pointers that they own to child parse nodes, i.e., the destructor deletes the object pointed to at the end. However, these child parse nodes are still used by the final parsenodes (the updating expression nodes).

So one has to release these pointers (set them to NULL) to avoid that destruction.

With a unique pointer to temporary parsenodes released after the creation of the final parsenode, there would still be the problem that the temporary parsenodes would delete parsenodes that are actually used by the final parsenodes.

However, I will now attempt to simplify the external API to address this, and provide release functions instead.

Does it make sense?

Does it make sense?

Revision history for this message
Ghislain Fourny (gislenius) wrote :

After looking more in depth, I realized that there is an inconsistency across parsenodes. Some of them have const exprnode* pointers on their children (like JSONObjectLookup had), some others regular exprnode* pointers (like JSONObjectLookup has now). The latter seem to correspond to places that the parser edits (which is the case also here). So, I think that this change to JSONObjectLookup does not break the current design of parse node classes but stays within common practice.

Rather than just fix this class, I think that a discussion for a general fix in the entire parse node API makes more sense.

Actions taken:
- I am leaving the API of the class as it is.
- I cleaned up the API by replacing set_ functions with release_ functions.

HTH

11377. By Ghislain Fourny

Clean up.

Revision history for this message
Ghislain Fourny (gislenius) :
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Progress dashboard at http://jenkins.lambda.nu/view/ValidationQueue

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Stage "BuildZorbaUbuntu" failed.

Check compiler output at http://jenkins.lambda.nu/job/BuildZorbaUbuntu/336/parsed_console to view the results.

11378. By Ghislain Fourny

Regenerating.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Progress dashboard at http://jenkins.lambda.nu/view/ValidationQueue

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Voting criteria failed for the following merge proposals:

https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295 :
Votes: {'Approve': 2, 'Needs commit message': 1}

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Stage "CommitZorba" failed.

Check console output at http://jenkins.lambda.nu/job/CommitZorba/178/console to view the results.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Progress dashboard at http://jenkins.lambda.nu/view/ValidationQueue

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Stage "TestZorbaUbuntu" failed.
1 tests failed (8490 total tests run).

Check test results at http://jenkins.lambda.nu/job/TestZorbaUbuntu/296/testReport/ to view the results.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Progress dashboard at http://jenkins.lambda.nu/view/ValidationQueue

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Stage "TestZorbaUbuntu" failed.
2 tests failed (8490 total tests run).

Check test results at http://jenkins.lambda.nu/job/TestZorbaUbuntu/297/testReport/ to view the results.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Progress dashboard at http://jenkins.lambda.nu/view/ValidationQueue

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Stage "TestZorbaUbuntu" failed.
1 tests failed (8490 total tests run).

Check test results at http://jenkins.lambda.nu/job/TestZorbaUbuntu/298/testReport/ to view the results.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295

Progress dashboard at http://jenkins.lambda.nu/view/ValidationQueue

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue succeeded - proposal merged!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/compiler/parser/jsoniq_parser.cpp'
2--- src/compiler/parser/jsoniq_parser.cpp 2013-09-12 08:50:38 +0000
3+++ src/compiler/parser/jsoniq_parser.cpp 2013-09-13 14:41:22 +0000
4@@ -111,9 +111,104 @@
5 RCHelper::removeReference( ref );
6 }
7 }
8-
9-/* Line 284 of lalr1.cc */
10-#line 117 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
11+/* Line 284 of lalr1.cc */
12+#line 1042 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
13+
14+namespace {
15+bool convert_postfix_to_target_and_selector(
16+ exprnode* aPostfixExpr,
17+ rchandle<exprnode>* aTargetExpr,
18+ rchandle<exprnode>* aSelectorExpr,
19+ string* anError,
20+ bool allowArray = true)
21+{
22+ rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
23+ dynamic_cast<DynamicFunctionInvocation*>(aPostfixExpr);
24+ rchandle<FilterExpr> lFilterExpr = dynamic_cast<FilterExpr*>(aPostfixExpr);
25+ rchandle<JSONObjectLookup> lObjectLookup = dynamic_cast<JSONObjectLookup*>(aPostfixExpr);
26+
27+
28+ if (lDynamicFunctionInvocation != NULL) {
29+ if (lDynamicFunctionInvocation->getArgList()->size() != 1)
30+ {
31+ *anError = "An object or array lookup with exactly one argument is expected. Zero or more than one argument were found.";
32+ return false;
33+ }
34+ *aTargetExpr = lDynamicFunctionInvocation->getPrimaryExpr(),
35+ *aSelectorExpr = lDynamicFunctionInvocation->getArgList()->operator[](0);
36+ return true;
37+ }
38+
39+
40+ else if (lObjectLookup != NULL)
41+ {
42+ *aTargetExpr = lObjectLookup->get_object_expr();
43+ lObjectLookup->release_object_expr();
44+ *aSelectorExpr = lObjectLookup->get_selector_expr();
45+ lObjectLookup->release_selector_expr();
46+ return true;
47+ }
48+
49+ else if (!allowArray && lFilterExpr != NULL)
50+ {
51+ *anError = "An object lookup is expected.";
52+ return false;
53+ }
54+ else if (allowArray && lFilterExpr != NULL)
55+ {
56+ rchandle<exprnode> lPrimary = lFilterExpr->get_primary();
57+ rchandle<PredicateList> lPredicateList = lFilterExpr->get_pred_list();
58+ ulong lSize = lPredicateList->size();
59+
60+
61+ if (lSize < 1)
62+ {
63+ *anError = "An object or array lookup with exactly one argument is expected. No argument was found.";
64+ return false;
65+ }
66+ rchandle<JSONArrayConstructor> lConstructor =
67+ dynamic_cast<JSONArrayConstructor*>(lPredicateList->operator[](lSize - 1).getp());
68+ if (lConstructor == NULL)
69+ {
70+ *anError = "An object or array lookup is expected.";
71+ return false;
72+ }
73+ *aSelectorExpr = lConstructor->get_expr();
74+ if (aSelectorExpr == NULL)
75+ {
76+ *anError = "An object or array lookup with exactly one argument is expected. No argument was found.";
77+ return false;
78+ }
79+ lConstructor->set_expr(NULL);
80+
81+
82+ *aTargetExpr = lPrimary;
83+ if (lSize > 1)
84+ {
85+ rchandle<PredicateList> lNewPredicateList =
86+ new PredicateList(lPredicateList->get_location());
87+ for (int i = 0; i < lSize - 1; ++i)
88+ {
89+ lNewPredicateList->push_back(lPredicateList->operator[](i));
90+ }
91+ *aTargetExpr = new FilterExpr(
92+ lFilterExpr->get_location(),
93+ lPrimary,
94+ lNewPredicateList);
95+ }
96+ return true;
97+ }
98+
99+ else
100+ {
101+ *anError = "An object or array lookup is expected.";
102+ return false;
103+ }
104+};
105+}
106+
107+/* Line 284 of lalr1.cc */
108+#line 212 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
109
110
111 # ifndef YY_NULL
112@@ -208,7 +303,7 @@
113
114 namespace zorba {
115 /* Line 352 of lalr1.cc */
116-#line 212 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
117+#line 307 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
118
119 /* Return YYSTR after stripping away unnecessary quotes and
120 backslashes, so that it's suitable for yyerror. The heuristic is
121@@ -314,2002 +409,2002 @@
122 #line 902 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
123 { delete ((*yyvaluep).decval); };
124 /* Line 453 of lalr1.cc */
125-#line 318 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
126+#line 413 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
127 break;
128 case 126: /* "'DOUBLE'" */
129 /* Line 453 of lalr1.cc */
130 #line 901 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
131 { delete ((*yyvaluep).dval); };
132 /* Line 453 of lalr1.cc */
133-#line 325 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
134+#line 420 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
135 break;
136 case 151: /* "'INTEGER'" */
137 /* Line 453 of lalr1.cc */
138 #line 900 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
139 { delete ((*yyvaluep).ival); };
140 /* Line 453 of lalr1.cc */
141-#line 332 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
142+#line 427 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
143 break;
144 case 344: /* VersionDecl */
145 /* Line 453 of lalr1.cc */
146 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
147 { release_hack( ((*yyvaluep).node) ); };
148 /* Line 453 of lalr1.cc */
149-#line 339 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
150+#line 434 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
151 break;
152 case 345: /* MainModule */
153 /* Line 453 of lalr1.cc */
154 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
155 { release_hack( ((*yyvaluep).node) ); };
156 /* Line 453 of lalr1.cc */
157-#line 346 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
158+#line 441 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
159 break;
160 case 346: /* LibraryModule */
161 /* Line 453 of lalr1.cc */
162 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
163 { release_hack( ((*yyvaluep).node) ); };
164 /* Line 453 of lalr1.cc */
165-#line 353 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
166+#line 448 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
167 break;
168 case 347: /* ModuleDecl */
169 /* Line 453 of lalr1.cc */
170 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
171 { release_hack( ((*yyvaluep).node) ); };
172 /* Line 453 of lalr1.cc */
173-#line 360 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
174+#line 455 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
175 break;
176 case 348: /* SIND_DeclList */
177 /* Line 453 of lalr1.cc */
178 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
179 { release_hack( ((*yyvaluep).node) ); };
180 /* Line 453 of lalr1.cc */
181-#line 367 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
182+#line 462 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
183 break;
184 case 349: /* SIND_Decl */
185 /* Line 453 of lalr1.cc */
186 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
187 { release_hack( ((*yyvaluep).node) ); };
188 /* Line 453 of lalr1.cc */
189-#line 374 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
190+#line 469 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
191 break;
192 case 350: /* Setter */
193 /* Line 453 of lalr1.cc */
194 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
195 { release_hack( ((*yyvaluep).node) ); };
196 /* Line 453 of lalr1.cc */
197-#line 381 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
198+#line 476 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
199 break;
200 case 351: /* BoundarySpaceDecl */
201 /* Line 453 of lalr1.cc */
202 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
203 { release_hack( ((*yyvaluep).node) ); };
204 /* Line 453 of lalr1.cc */
205-#line 388 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
206+#line 483 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
207 break;
208 case 352: /* DefaultCollationDecl */
209 /* Line 453 of lalr1.cc */
210 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
211 { release_hack( ((*yyvaluep).node) ); };
212 /* Line 453 of lalr1.cc */
213-#line 395 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
214+#line 490 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
215 break;
216 case 353: /* BaseURIDecl */
217 /* Line 453 of lalr1.cc */
218 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
219 { release_hack( ((*yyvaluep).node) ); };
220 /* Line 453 of lalr1.cc */
221-#line 402 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
222+#line 497 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
223 break;
224 case 354: /* ConstructionDecl */
225 /* Line 453 of lalr1.cc */
226 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
227 { release_hack( ((*yyvaluep).node) ); };
228 /* Line 453 of lalr1.cc */
229-#line 409 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
230+#line 504 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
231 break;
232 case 355: /* OrderingModeDecl */
233 /* Line 453 of lalr1.cc */
234 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
235 { release_hack( ((*yyvaluep).node) ); };
236 /* Line 453 of lalr1.cc */
237-#line 416 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
238+#line 511 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
239 break;
240 case 356: /* EmptyOrderDecl */
241 /* Line 453 of lalr1.cc */
242 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
243 { release_hack( ((*yyvaluep).node) ); };
244 /* Line 453 of lalr1.cc */
245-#line 423 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
246+#line 518 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
247 break;
248 case 357: /* CopyNamespacesDecl */
249 /* Line 453 of lalr1.cc */
250 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
251 { release_hack( ((*yyvaluep).node) ); };
252 /* Line 453 of lalr1.cc */
253-#line 430 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
254+#line 525 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
255 break;
256 case 358: /* Import */
257 /* Line 453 of lalr1.cc */
258 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
259 { release_hack( ((*yyvaluep).node) ); };
260 /* Line 453 of lalr1.cc */
261-#line 437 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
262+#line 532 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
263 break;
264 case 359: /* SchemaImport */
265 /* Line 453 of lalr1.cc */
266 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
267 { release_hack( ((*yyvaluep).node) ); };
268 /* Line 453 of lalr1.cc */
269-#line 444 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
270+#line 539 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
271 break;
272 case 360: /* URILiteralList */
273 /* Line 453 of lalr1.cc */
274 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
275 { release_hack( ((*yyvaluep).node) ); };
276 /* Line 453 of lalr1.cc */
277-#line 451 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
278+#line 546 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
279 break;
280 case 361: /* SchemaPrefix */
281 /* Line 453 of lalr1.cc */
282 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
283 { release_hack( ((*yyvaluep).node) ); };
284 /* Line 453 of lalr1.cc */
285-#line 458 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
286+#line 553 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
287 break;
288 case 362: /* ModuleImport */
289 /* Line 453 of lalr1.cc */
290 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
291 { release_hack( ((*yyvaluep).node) ); };
292 /* Line 453 of lalr1.cc */
293-#line 465 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
294+#line 560 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
295 break;
296 case 363: /* NamespaceDecl */
297 /* Line 453 of lalr1.cc */
298 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
299 { release_hack( ((*yyvaluep).node) ); };
300 /* Line 453 of lalr1.cc */
301-#line 472 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
302+#line 567 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
303 break;
304 case 364: /* DefaultNamespaceDecl */
305 /* Line 453 of lalr1.cc */
306 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
307 { release_hack( ((*yyvaluep).node) ); };
308 /* Line 453 of lalr1.cc */
309-#line 479 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
310+#line 574 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
311 break;
312 case 365: /* VFO_DeclList */
313 /* Line 453 of lalr1.cc */
314 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
315 { release_hack( ((*yyvaluep).node) ); };
316 /* Line 453 of lalr1.cc */
317-#line 486 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
318+#line 581 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
319 break;
320 case 366: /* VFO_Decl */
321 /* Line 453 of lalr1.cc */
322 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
323 { release_hack( ((*yyvaluep).node) ); };
324 /* Line 453 of lalr1.cc */
325-#line 493 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
326+#line 588 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
327 break;
328 case 367: /* DecimalFormatDecl */
329 /* Line 453 of lalr1.cc */
330 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
331 { release_hack( ((*yyvaluep).node) ); };
332 /* Line 453 of lalr1.cc */
333-#line 500 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
334+#line 595 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
335 break;
336 case 368: /* DecimalFormatParamList */
337 /* Line 453 of lalr1.cc */
338 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
339 { delete ((*yyvaluep).vstrpair); };
340 /* Line 453 of lalr1.cc */
341-#line 507 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
342+#line 602 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
343 break;
344 case 369: /* DecimalFormatParam */
345 /* Line 453 of lalr1.cc */
346 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
347 { delete ((*yyvaluep).strpair); };
348 /* Line 453 of lalr1.cc */
349-#line 514 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
350+#line 609 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
351 break;
352 case 371: /* OptionDecl */
353 /* Line 453 of lalr1.cc */
354 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
355 { release_hack( ((*yyvaluep).node) ); };
356 /* Line 453 of lalr1.cc */
357-#line 521 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
358+#line 616 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
359 break;
360 case 372: /* FTOptionDecl */
361 /* Line 453 of lalr1.cc */
362 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
363 { release_hack( ((*yyvaluep).node) ); };
364 /* Line 453 of lalr1.cc */
365-#line 528 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
366+#line 623 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
367 break;
368 case 373: /* CtxItemDecl */
369 /* Line 453 of lalr1.cc */
370 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
371 { release_hack( ((*yyvaluep).node) ); };
372 /* Line 453 of lalr1.cc */
373-#line 535 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
374+#line 630 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
375 break;
376 case 374: /* CtxItemDecl2 */
377 /* Line 453 of lalr1.cc */
378 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
379 { release_hack( ((*yyvaluep).node) ); };
380 /* Line 453 of lalr1.cc */
381-#line 542 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
382+#line 637 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
383 break;
384 case 375: /* CtxItemDecl3 */
385 /* Line 453 of lalr1.cc */
386 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
387 { release_hack( ((*yyvaluep).node) ); };
388 /* Line 453 of lalr1.cc */
389-#line 549 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
390+#line 644 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
391 break;
392 case 376: /* CtxItemDecl4 */
393 /* Line 453 of lalr1.cc */
394 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
395 { release_hack( ((*yyvaluep).node) ); };
396 /* Line 453 of lalr1.cc */
397-#line 556 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
398+#line 651 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
399 break;
400 case 377: /* VarDecl */
401 /* Line 453 of lalr1.cc */
402 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
403 { release_hack( ((*yyvaluep).node) ); };
404 /* Line 453 of lalr1.cc */
405-#line 563 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
406+#line 658 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
407 break;
408 case 378: /* VarNameAndType */
409 /* Line 453 of lalr1.cc */
410 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
411 { delete ((*yyvaluep).varnametype); };
412 /* Line 453 of lalr1.cc */
413-#line 570 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
414+#line 665 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
415 break;
416 case 379: /* AnnotationList */
417 /* Line 453 of lalr1.cc */
418 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
419 { release_hack( ((*yyvaluep).node) ); };
420 /* Line 453 of lalr1.cc */
421-#line 577 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
422+#line 672 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
423 break;
424 case 380: /* Annotation */
425 /* Line 453 of lalr1.cc */
426 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
427 { release_hack( ((*yyvaluep).node) ); };
428 /* Line 453 of lalr1.cc */
429-#line 584 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
430+#line 679 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
431 break;
432 case 381: /* AnnotationLiteralList */
433 /* Line 453 of lalr1.cc */
434 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
435 { release_hack( ((*yyvaluep).node) ); };
436 /* Line 453 of lalr1.cc */
437-#line 591 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
438+#line 686 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
439 break;
440 case 382: /* FunctionDecl */
441 /* Line 453 of lalr1.cc */
442 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
443 { release_hack( ((*yyvaluep).node) ); };
444 /* Line 453 of lalr1.cc */
445-#line 598 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
446+#line 693 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
447 break;
448 case 383: /* FunctionDecl2 */
449 /* Line 453 of lalr1.cc */
450 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
451 { release_hack( ((*yyvaluep).node) ); };
452 /* Line 453 of lalr1.cc */
453-#line 605 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
454+#line 700 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
455 break;
456 case 384: /* FunctionDeclSimple */
457 /* Line 453 of lalr1.cc */
458 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
459 { release_hack( ((*yyvaluep).node) ); };
460 /* Line 453 of lalr1.cc */
461-#line 612 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
462+#line 707 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
463 break;
464 case 385: /* FunctionDeclUpdating */
465 /* Line 453 of lalr1.cc */
466 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
467 { release_hack( ((*yyvaluep).node) ); };
468 /* Line 453 of lalr1.cc */
469-#line 619 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
470+#line 714 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
471 break;
472 case 386: /* FunctionSig */
473 /* Line 453 of lalr1.cc */
474 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
475 { delete ((*yyvaluep).fnsig); };
476 /* Line 453 of lalr1.cc */
477-#line 626 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
478+#line 721 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
479 break;
480 case 387: /* ParamList */
481 /* Line 453 of lalr1.cc */
482 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
483 { release_hack( ((*yyvaluep).node) ); };
484 /* Line 453 of lalr1.cc */
485-#line 633 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
486+#line 728 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
487 break;
488 case 388: /* Param */
489 /* Line 453 of lalr1.cc */
490 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
491 { release_hack( ((*yyvaluep).node) ); };
492 /* Line 453 of lalr1.cc */
493-#line 640 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
494+#line 735 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
495 break;
496 case 389: /* CollectionDecl */
497 /* Line 453 of lalr1.cc */
498 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
499 { release_hack( ((*yyvaluep).node) ); };
500 /* Line 453 of lalr1.cc */
501-#line 647 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
502+#line 742 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
503 break;
504 case 391: /* IndexDecl */
505 /* Line 453 of lalr1.cc */
506 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
507 { release_hack( ((*yyvaluep).node) ); };
508 /* Line 453 of lalr1.cc */
509-#line 654 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
510+#line 749 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
511 break;
512 case 392: /* IndexKeyList */
513 /* Line 453 of lalr1.cc */
514 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
515 { release_hack( ((*yyvaluep).node) ); };
516 /* Line 453 of lalr1.cc */
517-#line 661 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
518+#line 756 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
519 break;
520 case 393: /* IndexKeySpec */
521 /* Line 453 of lalr1.cc */
522 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
523 { release_hack( ((*yyvaluep).node) ); };
524 /* Line 453 of lalr1.cc */
525-#line 668 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
526+#line 763 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
527 break;
528 case 394: /* IntegrityConstraintDecl */
529 /* Line 453 of lalr1.cc */
530 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
531 { release_hack( ((*yyvaluep).node) ); };
532 /* Line 453 of lalr1.cc */
533-#line 675 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
534+#line 770 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
535 break;
536 case 395: /* QueryBody */
537 /* Line 453 of lalr1.cc */
538 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
539 { release_hack( ((*yyvaluep).expr) ); };
540 /* Line 453 of lalr1.cc */
541-#line 682 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
542+#line 777 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
543 break;
544 case 396: /* StatementsAndOptionalExprTop */
545 /* Line 453 of lalr1.cc */
546 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
547 { release_hack( ((*yyvaluep).expr) ); };
548 /* Line 453 of lalr1.cc */
549-#line 689 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
550+#line 784 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
551 break;
552 case 397: /* StatementsAndOptionalExpr */
553 /* Line 453 of lalr1.cc */
554 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
555 { release_hack( ((*yyvaluep).expr) ); };
556 /* Line 453 of lalr1.cc */
557-#line 696 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
558+#line 791 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
559 break;
560 case 398: /* StatementsAndExpr */
561 /* Line 453 of lalr1.cc */
562 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
563 { release_hack( ((*yyvaluep).expr) ); };
564 /* Line 453 of lalr1.cc */
565-#line 703 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
566+#line 798 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
567 break;
568 case 399: /* Statements */
569 /* Line 453 of lalr1.cc */
570 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
571 { release_hack( ((*yyvaluep).expr) ); };
572 /* Line 453 of lalr1.cc */
573-#line 710 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
574+#line 805 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
575 break;
576 case 400: /* Statement */
577 /* Line 453 of lalr1.cc */
578 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
579 { release_hack( ((*yyvaluep).expr) ); };
580 /* Line 453 of lalr1.cc */
581-#line 717 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
582+#line 812 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
583 break;
584 case 401: /* BlockStatement */
585 /* Line 453 of lalr1.cc */
586 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
587 { release_hack( ((*yyvaluep).expr) ); };
588 /* Line 453 of lalr1.cc */
589-#line 724 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
590+#line 819 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
591 break;
592 case 402: /* BlockExpr */
593 /* Line 453 of lalr1.cc */
594 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
595 { release_hack( ((*yyvaluep).expr) ); };
596 /* Line 453 of lalr1.cc */
597-#line 731 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
598+#line 826 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
599 break;
600 case 403: /* EnclosedStatementsAndOptionalExpr */
601 /* Line 453 of lalr1.cc */
602 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
603 { release_hack( ((*yyvaluep).expr) ); };
604 /* Line 453 of lalr1.cc */
605-#line 738 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
606+#line 833 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
607 break;
608 case 404: /* VarDeclStatement */
609 /* Line 453 of lalr1.cc */
610 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
611 { release_hack( ((*yyvaluep).expr) ); };
612 /* Line 453 of lalr1.cc */
613-#line 745 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
614+#line 840 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
615 break;
616 case 407: /* AssignStatement */
617 /* Line 453 of lalr1.cc */
618 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
619 { release_hack( ((*yyvaluep).expr) ); };
620 /* Line 453 of lalr1.cc */
621-#line 752 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
622+#line 847 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
623 break;
624 case 408: /* ApplyStatement */
625 /* Line 453 of lalr1.cc */
626 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
627 { release_hack( ((*yyvaluep).expr) ); };
628 /* Line 453 of lalr1.cc */
629-#line 759 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
630+#line 854 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
631 break;
632 case 409: /* ExitStatement */
633 /* Line 453 of lalr1.cc */
634 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
635 { release_hack( ((*yyvaluep).expr) ); };
636 /* Line 453 of lalr1.cc */
637-#line 766 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
638+#line 861 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
639 break;
640 case 410: /* WhileStatement */
641 /* Line 453 of lalr1.cc */
642 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
643 { release_hack( ((*yyvaluep).expr) ); };
644 /* Line 453 of lalr1.cc */
645-#line 773 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
646+#line 868 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
647 break;
648 case 411: /* FlowCtlStatement */
649 /* Line 453 of lalr1.cc */
650 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
651 { release_hack( ((*yyvaluep).expr) ); };
652 /* Line 453 of lalr1.cc */
653-#line 780 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
654+#line 875 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
655 break;
656 case 412: /* FLWORStatement */
657 /* Line 453 of lalr1.cc */
658 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
659 { release_hack( ((*yyvaluep).expr) ); };
660 /* Line 453 of lalr1.cc */
661-#line 787 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
662+#line 882 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
663 break;
664 case 413: /* ReturnStatement */
665 /* Line 453 of lalr1.cc */
666 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
667 { release_hack( ((*yyvaluep).expr) ); };
668 /* Line 453 of lalr1.cc */
669-#line 794 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
670+#line 889 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
671 break;
672 case 414: /* IfStatement */
673 /* Line 453 of lalr1.cc */
674 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
675 { release_hack( ((*yyvaluep).expr) ); };
676 /* Line 453 of lalr1.cc */
677-#line 801 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
678+#line 896 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
679 break;
680 case 415: /* TryStatement */
681 /* Line 453 of lalr1.cc */
682 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
683 { release_hack( ((*yyvaluep).expr) ); };
684 /* Line 453 of lalr1.cc */
685-#line 808 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
686+#line 903 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
687 break;
688 case 416: /* CatchListStatement */
689 /* Line 453 of lalr1.cc */
690 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
691 { release_hack( ((*yyvaluep).expr) ); };
692 /* Line 453 of lalr1.cc */
693-#line 815 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
694+#line 910 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
695 break;
696 case 417: /* CatchStatement */
697 /* Line 453 of lalr1.cc */
698 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
699 { release_hack( ((*yyvaluep).expr) ); };
700 /* Line 453 of lalr1.cc */
701-#line 822 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
702+#line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
703 break;
704 case 418: /* VoidStatement */
705 /* Line 453 of lalr1.cc */
706 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
707 { release_hack( ((*yyvaluep).expr) ); };
708 /* Line 453 of lalr1.cc */
709-#line 829 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
710+#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
711 break;
712 case 419: /* Expr */
713 /* Line 453 of lalr1.cc */
714 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
715 { release_hack( ((*yyvaluep).expr) ); };
716 /* Line 453 of lalr1.cc */
717-#line 836 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
718+#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
719 break;
720 case 420: /* ExprSingle */
721 /* Line 453 of lalr1.cc */
722 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
723 { release_hack( ((*yyvaluep).expr) ); };
724 /* Line 453 of lalr1.cc */
725-#line 843 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
726+#line 938 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
727 break;
728 case 421: /* ExprSimple */
729 /* Line 453 of lalr1.cc */
730 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
731 { release_hack( ((*yyvaluep).expr) ); };
732 /* Line 453 of lalr1.cc */
733-#line 850 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
734+#line 945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
735 break;
736 case 422: /* FLWORExpr */
737 /* Line 453 of lalr1.cc */
738 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
739 { release_hack( ((*yyvaluep).expr) ); };
740 /* Line 453 of lalr1.cc */
741-#line 857 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
742+#line 952 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
743 break;
744 case 423: /* ReturnExpr */
745 /* Line 453 of lalr1.cc */
746 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
747 { release_hack( ((*yyvaluep).expr) ); };
748 /* Line 453 of lalr1.cc */
749-#line 864 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
750+#line 959 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
751 break;
752 case 427: /* FLWORWinCond */
753 /* Line 453 of lalr1.cc */
754 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
755 { release_hack( ((*yyvaluep).node) ); };
756 /* Line 453 of lalr1.cc */
757-#line 871 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
758+#line 966 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
759 break;
760 case 428: /* WindowClause */
761 /* Line 453 of lalr1.cc */
762 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
763 { release_hack( ((*yyvaluep).node) ); };
764 /* Line 453 of lalr1.cc */
765-#line 878 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
766+#line 973 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
767 break;
768 case 429: /* CountClause */
769 /* Line 453 of lalr1.cc */
770 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
771 { release_hack( ((*yyvaluep).node) ); };
772 /* Line 453 of lalr1.cc */
773-#line 885 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
774+#line 980 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
775 break;
776 case 430: /* ForLetWinClause */
777 /* Line 453 of lalr1.cc */
778 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
779 { release_hack( ((*yyvaluep).node) ); };
780 /* Line 453 of lalr1.cc */
781-#line 892 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
782+#line 987 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
783 break;
784 case 432: /* FLWORClauseList */
785 /* Line 453 of lalr1.cc */
786 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
787 { release_hack( ((*yyvaluep).node) ); };
788 /* Line 453 of lalr1.cc */
789-#line 899 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
790+#line 994 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
791 break;
792 case 433: /* ForClause */
793 /* Line 453 of lalr1.cc */
794 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
795 { release_hack( ((*yyvaluep).node) ); };
796 /* Line 453 of lalr1.cc */
797-#line 906 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
798+#line 1001 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
799 break;
800 case 435: /* VarInDeclList */
801 /* Line 453 of lalr1.cc */
802 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
803 { release_hack( ((*yyvaluep).node) ); };
804 /* Line 453 of lalr1.cc */
805-#line 913 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
806+#line 1008 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
807 break;
808 case 436: /* VarInDecl */
809 /* Line 453 of lalr1.cc */
810 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
811 { release_hack( ((*yyvaluep).node) ); };
812 /* Line 453 of lalr1.cc */
813-#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
814+#line 1015 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
815 break;
816 case 437: /* PositionalVar */
817 /* Line 453 of lalr1.cc */
818 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
819 { release_hack( ((*yyvaluep).node) ); };
820 /* Line 453 of lalr1.cc */
821-#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
822+#line 1022 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
823 break;
824 case 438: /* FTScoreVar */
825 /* Line 453 of lalr1.cc */
826 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
827 { release_hack( ((*yyvaluep).node) ); };
828 /* Line 453 of lalr1.cc */
829-#line 934 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
830+#line 1029 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
831 break;
832 case 439: /* LetClause */
833 /* Line 453 of lalr1.cc */
834 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
835 { release_hack( ((*yyvaluep).node) ); };
836 /* Line 453 of lalr1.cc */
837-#line 941 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
838+#line 1036 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
839 break;
840 case 440: /* VarGetsDeclList */
841 /* Line 453 of lalr1.cc */
842 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
843 { release_hack( ((*yyvaluep).node) ); };
844 /* Line 453 of lalr1.cc */
845-#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
846+#line 1043 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
847 break;
848 case 441: /* VarGetsDecl */
849 /* Line 453 of lalr1.cc */
850 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
851 { release_hack( ((*yyvaluep).node) ); };
852 /* Line 453 of lalr1.cc */
853-#line 955 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
854+#line 1050 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
855 break;
856 case 442: /* WindowVarDecl */
857 /* Line 453 of lalr1.cc */
858 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
859 { release_hack( ((*yyvaluep).node) ); };
860 /* Line 453 of lalr1.cc */
861-#line 962 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
862+#line 1057 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
863 break;
864 case 443: /* WindowVars */
865 /* Line 453 of lalr1.cc */
866 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
867 { release_hack( ((*yyvaluep).node) ); };
868 /* Line 453 of lalr1.cc */
869-#line 969 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
870+#line 1064 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
871 break;
872 case 444: /* WindowVars3 */
873 /* Line 453 of lalr1.cc */
874 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
875 { release_hack( ((*yyvaluep).node) ); };
876 /* Line 453 of lalr1.cc */
877-#line 976 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
878+#line 1071 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
879 break;
880 case 445: /* WindowVars2 */
881 /* Line 453 of lalr1.cc */
882 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
883 { release_hack( ((*yyvaluep).node) ); };
884 /* Line 453 of lalr1.cc */
885-#line 983 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
886+#line 1078 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
887 break;
888 case 446: /* WhereClause */
889 /* Line 453 of lalr1.cc */
890 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
891 { release_hack( ((*yyvaluep).node) ); };
892 /* Line 453 of lalr1.cc */
893-#line 990 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
894+#line 1085 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
895 break;
896 case 447: /* GroupByClause */
897 /* Line 453 of lalr1.cc */
898 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
899 { release_hack( ((*yyvaluep).node) ); };
900 /* Line 453 of lalr1.cc */
901-#line 997 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
902+#line 1092 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
903 break;
904 case 448: /* GroupSpecList */
905 /* Line 453 of lalr1.cc */
906 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
907 { release_hack( ((*yyvaluep).node) ); };
908 /* Line 453 of lalr1.cc */
909-#line 1004 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
910+#line 1099 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
911 break;
912 case 449: /* GroupSpec */
913 /* Line 453 of lalr1.cc */
914 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
915 { release_hack( ((*yyvaluep).node) ); };
916 /* Line 453 of lalr1.cc */
917-#line 1011 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
918+#line 1106 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
919 break;
920 case 450: /* GroupCollationSpec */
921 /* Line 453 of lalr1.cc */
922 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
923 { release_hack( ((*yyvaluep).node) ); };
924 /* Line 453 of lalr1.cc */
925-#line 1018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
926+#line 1113 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
927 break;
928 case 451: /* OrderByClause */
929 /* Line 453 of lalr1.cc */
930 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
931 { release_hack( ((*yyvaluep).node) ); };
932 /* Line 453 of lalr1.cc */
933-#line 1025 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
934+#line 1120 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
935 break;
936 case 452: /* OrderSpecList */
937 /* Line 453 of lalr1.cc */
938 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
939 { release_hack( ((*yyvaluep).node) ); };
940 /* Line 453 of lalr1.cc */
941-#line 1032 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
942+#line 1127 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
943 break;
944 case 453: /* OrderSpec */
945 /* Line 453 of lalr1.cc */
946 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
947 { release_hack( ((*yyvaluep).node) ); };
948 /* Line 453 of lalr1.cc */
949-#line 1039 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
950+#line 1134 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
951 break;
952 case 454: /* OrderModifier */
953 /* Line 453 of lalr1.cc */
954 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
955 { release_hack( ((*yyvaluep).node) ); };
956 /* Line 453 of lalr1.cc */
957-#line 1046 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
958+#line 1141 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
959 break;
960 case 455: /* OrderDirSpec */
961 /* Line 453 of lalr1.cc */
962 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
963 { release_hack( ((*yyvaluep).node) ); };
964 /* Line 453 of lalr1.cc */
965-#line 1053 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
966+#line 1148 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
967 break;
968 case 456: /* OrderEmptySpec */
969 /* Line 453 of lalr1.cc */
970 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
971 { release_hack( ((*yyvaluep).node) ); };
972 /* Line 453 of lalr1.cc */
973-#line 1060 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
974+#line 1155 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
975 break;
976 case 457: /* OrderCollationSpec */
977 /* Line 453 of lalr1.cc */
978 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
979 { release_hack( ((*yyvaluep).node) ); };
980 /* Line 453 of lalr1.cc */
981-#line 1067 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
982+#line 1162 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
983 break;
984 case 458: /* QuantifiedExpr */
985 /* Line 453 of lalr1.cc */
986 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
987 { release_hack( ((*yyvaluep).expr) ); };
988 /* Line 453 of lalr1.cc */
989-#line 1074 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
990+#line 1169 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
991 break;
992 case 459: /* QVarInDeclList */
993 /* Line 453 of lalr1.cc */
994 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
995 { release_hack( ((*yyvaluep).node) ); };
996 /* Line 453 of lalr1.cc */
997-#line 1081 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
998+#line 1176 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
999 break;
1000 case 460: /* QVarInDecl */
1001 /* Line 453 of lalr1.cc */
1002 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1003 { release_hack( ((*yyvaluep).node) ); };
1004 /* Line 453 of lalr1.cc */
1005-#line 1088 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1006+#line 1183 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1007 break;
1008 case 461: /* SwitchExpr */
1009 /* Line 453 of lalr1.cc */
1010 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1011 { release_hack( ((*yyvaluep).expr) ); };
1012 /* Line 453 of lalr1.cc */
1013-#line 1095 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1014+#line 1190 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1015 break;
1016 case 462: /* SwitchCaseClauseList */
1017 /* Line 453 of lalr1.cc */
1018 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1019 { release_hack( ((*yyvaluep).node) ); };
1020 /* Line 453 of lalr1.cc */
1021-#line 1102 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1022+#line 1197 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1023 break;
1024 case 463: /* SwitchCaseClause */
1025 /* Line 453 of lalr1.cc */
1026 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1027 { release_hack( ((*yyvaluep).node) ); };
1028 /* Line 453 of lalr1.cc */
1029-#line 1109 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1030+#line 1204 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1031 break;
1032 case 464: /* SwitchCaseOperandList */
1033 /* Line 453 of lalr1.cc */
1034 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1035 { release_hack( ((*yyvaluep).node) ); };
1036 /* Line 453 of lalr1.cc */
1037-#line 1116 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1038+#line 1211 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1039 break;
1040 case 465: /* SwitchStatement */
1041 /* Line 453 of lalr1.cc */
1042 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1043 { release_hack( ((*yyvaluep).expr) ); };
1044 /* Line 453 of lalr1.cc */
1045-#line 1123 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1046+#line 1218 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1047 break;
1048 case 468: /* TypeswitchExpr */
1049 /* Line 453 of lalr1.cc */
1050 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1051 { release_hack( ((*yyvaluep).expr) ); };
1052 /* Line 453 of lalr1.cc */
1053-#line 1130 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1054+#line 1225 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1055 break;
1056 case 469: /* TypeswitchStatement */
1057 /* Line 453 of lalr1.cc */
1058 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1059 { release_hack( ((*yyvaluep).expr) ); };
1060 /* Line 453 of lalr1.cc */
1061-#line 1137 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1062+#line 1232 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1063 break;
1064 case 470: /* CaseClauseList */
1065 /* Line 453 of lalr1.cc */
1066 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1067 { release_hack( ((*yyvaluep).node) ); };
1068 /* Line 453 of lalr1.cc */
1069-#line 1144 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1070+#line 1239 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1071 break;
1072 case 471: /* CaseClause */
1073 /* Line 453 of lalr1.cc */
1074 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1075 { release_hack( ((*yyvaluep).node) ); };
1076 /* Line 453 of lalr1.cc */
1077-#line 1151 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1078+#line 1246 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1079 break;
1080 case 474: /* SequenceTypeList */
1081 /* Line 453 of lalr1.cc */
1082 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1083 { release_hack( ((*yyvaluep).node) ); };
1084 /* Line 453 of lalr1.cc */
1085-#line 1158 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1086+#line 1253 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1087 break;
1088 case 475: /* IfExpr */
1089 /* Line 453 of lalr1.cc */
1090 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1091 { release_hack( ((*yyvaluep).expr) ); };
1092 /* Line 453 of lalr1.cc */
1093-#line 1165 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1094+#line 1260 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1095 break;
1096 case 476: /* OrExpr */
1097 /* Line 453 of lalr1.cc */
1098 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1099 { release_hack( ((*yyvaluep).expr) ); };
1100 /* Line 453 of lalr1.cc */
1101-#line 1172 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1102+#line 1267 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1103 break;
1104 case 477: /* AndExpr */
1105 /* Line 453 of lalr1.cc */
1106 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1107 { release_hack( ((*yyvaluep).expr) ); };
1108 /* Line 453 of lalr1.cc */
1109-#line 1179 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1110+#line 1274 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1111 break;
1112 case 478: /* NotExpr */
1113 /* Line 453 of lalr1.cc */
1114 #line 935 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1115 { release_hack( ((*yyvaluep).expr) ); };
1116 /* Line 453 of lalr1.cc */
1117-#line 1186 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1118+#line 1281 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1119 break;
1120 case 479: /* ComparisonExpr */
1121 /* Line 453 of lalr1.cc */
1122 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1123 { release_hack( ((*yyvaluep).expr) ); };
1124 /* Line 453 of lalr1.cc */
1125-#line 1193 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1126+#line 1288 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1127 break;
1128 case 481: /* FTContainsExpr */
1129 /* Line 453 of lalr1.cc */
1130 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1131 { release_hack( ((*yyvaluep).expr) ); };
1132 /* Line 453 of lalr1.cc */
1133-#line 1200 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1134+#line 1295 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1135 break;
1136 case 482: /* StringConcatExpr */
1137 /* Line 453 of lalr1.cc */
1138 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1139 { release_hack( ((*yyvaluep).expr) ); };
1140 /* Line 453 of lalr1.cc */
1141-#line 1207 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1142+#line 1302 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1143 break;
1144 case 483: /* opt_FTIgnoreOption */
1145 /* Line 453 of lalr1.cc */
1146 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1147 { release_hack( ((*yyvaluep).node) ); };
1148 /* Line 453 of lalr1.cc */
1149-#line 1214 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1150+#line 1309 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1151 break;
1152 case 484: /* RangeExpr */
1153 /* Line 453 of lalr1.cc */
1154 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1155 { release_hack( ((*yyvaluep).expr) ); };
1156 /* Line 453 of lalr1.cc */
1157-#line 1221 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1158+#line 1316 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1159 break;
1160 case 485: /* AdditiveExpr */
1161 /* Line 453 of lalr1.cc */
1162 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1163 { release_hack( ((*yyvaluep).expr) ); };
1164 /* Line 453 of lalr1.cc */
1165-#line 1228 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1166+#line 1323 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1167 break;
1168 case 486: /* MultiplicativeExpr */
1169 /* Line 453 of lalr1.cc */
1170 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1171 { release_hack( ((*yyvaluep).expr) ); };
1172 /* Line 453 of lalr1.cc */
1173-#line 1235 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1174+#line 1330 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1175 break;
1176 case 487: /* UnionExpr */
1177 /* Line 453 of lalr1.cc */
1178 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1179 { release_hack( ((*yyvaluep).expr) ); };
1180 /* Line 453 of lalr1.cc */
1181-#line 1242 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1182+#line 1337 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1183 break;
1184 case 488: /* IntersectExceptExpr */
1185 /* Line 453 of lalr1.cc */
1186 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1187 { release_hack( ((*yyvaluep).expr) ); };
1188 /* Line 453 of lalr1.cc */
1189-#line 1249 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1190+#line 1344 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1191 break;
1192 case 489: /* InstanceofExpr */
1193 /* Line 453 of lalr1.cc */
1194 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1195 { release_hack( ((*yyvaluep).expr) ); };
1196 /* Line 453 of lalr1.cc */
1197-#line 1256 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1198+#line 1351 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1199 break;
1200 case 490: /* TreatExpr */
1201 /* Line 453 of lalr1.cc */
1202 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1203 { release_hack( ((*yyvaluep).expr) ); };
1204 /* Line 453 of lalr1.cc */
1205-#line 1263 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1206+#line 1358 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1207 break;
1208 case 491: /* CastableExpr */
1209 /* Line 453 of lalr1.cc */
1210 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1211 { release_hack( ((*yyvaluep).expr) ); };
1212 /* Line 453 of lalr1.cc */
1213-#line 1270 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1214+#line 1365 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1215 break;
1216 case 492: /* CastExpr */
1217 /* Line 453 of lalr1.cc */
1218 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1219 { release_hack( ((*yyvaluep).expr) ); };
1220 /* Line 453 of lalr1.cc */
1221-#line 1277 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1222+#line 1372 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1223 break;
1224 case 493: /* SingleType */
1225 /* Line 453 of lalr1.cc */
1226 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1227 { release_hack( ((*yyvaluep).node) ); };
1228 /* Line 453 of lalr1.cc */
1229-#line 1284 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1230+#line 1379 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1231 break;
1232 case 494: /* UnaryExpr */
1233 /* Line 453 of lalr1.cc */
1234 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1235 { release_hack( ((*yyvaluep).expr) ); };
1236 /* Line 453 of lalr1.cc */
1237-#line 1291 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1238+#line 1386 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1239 break;
1240 case 495: /* SignList */
1241 /* Line 453 of lalr1.cc */
1242 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1243 { release_hack( ((*yyvaluep).node) ); };
1244 /* Line 453 of lalr1.cc */
1245-#line 1298 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1246+#line 1393 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1247 break;
1248 case 496: /* ValueExpr */
1249 /* Line 453 of lalr1.cc */
1250 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1251 { release_hack( ((*yyvaluep).expr) ); };
1252 /* Line 453 of lalr1.cc */
1253-#line 1305 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1254+#line 1400 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1255 break;
1256 case 497: /* SimpleMapExpr */
1257 /* Line 453 of lalr1.cc */
1258 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1259 { release_hack( ((*yyvaluep).expr) ); };
1260 /* Line 453 of lalr1.cc */
1261-#line 1312 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1262+#line 1407 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1263 break;
1264 case 498: /* ValueComp */
1265 /* Line 453 of lalr1.cc */
1266 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1267 { release_hack( ((*yyvaluep).node) ); };
1268 /* Line 453 of lalr1.cc */
1269-#line 1319 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1270+#line 1414 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1271 break;
1272 case 499: /* NodeComp */
1273 /* Line 453 of lalr1.cc */
1274 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1275 { release_hack( ((*yyvaluep).node) ); };
1276 /* Line 453 of lalr1.cc */
1277-#line 1326 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1278+#line 1421 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1279 break;
1280 case 500: /* ValidateExpr */
1281 /* Line 453 of lalr1.cc */
1282 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1283 { release_hack( ((*yyvaluep).expr) ); };
1284 /* Line 453 of lalr1.cc */
1285-#line 1333 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1286+#line 1428 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1287 break;
1288 case 501: /* ExtensionExpr */
1289 /* Line 453 of lalr1.cc */
1290 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1291 { release_hack( ((*yyvaluep).expr) ); };
1292 /* Line 453 of lalr1.cc */
1293-#line 1340 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1294+#line 1435 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1295 break;
1296 case 502: /* Pragma_list */
1297 /* Line 453 of lalr1.cc */
1298 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1299 { release_hack( ((*yyvaluep).node) ); };
1300 /* Line 453 of lalr1.cc */
1301-#line 1347 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1302+#line 1442 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1303 break;
1304 case 503: /* Pragma */
1305 /* Line 453 of lalr1.cc */
1306 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1307 { release_hack( ((*yyvaluep).node) ); };
1308 /* Line 453 of lalr1.cc */
1309-#line 1354 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1310+#line 1449 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1311 break;
1312 case 504: /* PathExpr */
1313 /* Line 453 of lalr1.cc */
1314 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1315 { release_hack( ((*yyvaluep).expr) ); };
1316 /* Line 453 of lalr1.cc */
1317-#line 1361 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1318+#line 1456 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1319 break;
1320 case 506: /* RelativePathExpr */
1321 /* Line 453 of lalr1.cc */
1322 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1323 { release_hack( ((*yyvaluep).expr) ); };
1324 /* Line 453 of lalr1.cc */
1325-#line 1368 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1326+#line 1463 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1327 break;
1328 case 507: /* StepExpr */
1329 /* Line 453 of lalr1.cc */
1330 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1331 { release_hack( ((*yyvaluep).expr) ); };
1332 /* Line 453 of lalr1.cc */
1333-#line 1375 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1334+#line 1470 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1335 break;
1336 case 508: /* AxisStep */
1337 /* Line 453 of lalr1.cc */
1338 #line 945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1339 { release_hack( ((*yyvaluep).expr) ); };
1340 /* Line 453 of lalr1.cc */
1341-#line 1382 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1342+#line 1477 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1343 break;
1344 case 509: /* ForwardStep */
1345 /* Line 453 of lalr1.cc */
1346 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1347 { release_hack( ((*yyvaluep).node) ); };
1348 /* Line 453 of lalr1.cc */
1349-#line 1389 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1350+#line 1484 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1351 break;
1352 case 510: /* ForwardAxis */
1353 /* Line 453 of lalr1.cc */
1354 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1355 { release_hack( ((*yyvaluep).node) ); };
1356 /* Line 453 of lalr1.cc */
1357-#line 1396 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1358+#line 1491 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1359 break;
1360 case 511: /* AbbrevForwardStep */
1361 /* Line 453 of lalr1.cc */
1362 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1363 { release_hack( ((*yyvaluep).node) ); };
1364 /* Line 453 of lalr1.cc */
1365-#line 1403 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1366+#line 1498 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1367 break;
1368 case 512: /* ReverseStep */
1369 /* Line 453 of lalr1.cc */
1370 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1371 { release_hack( ((*yyvaluep).node) ); };
1372 /* Line 453 of lalr1.cc */
1373-#line 1410 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1374+#line 1505 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1375 break;
1376 case 513: /* ReverseAxis */
1377 /* Line 453 of lalr1.cc */
1378 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1379 { release_hack( ((*yyvaluep).node) ); };
1380 /* Line 453 of lalr1.cc */
1381-#line 1417 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1382+#line 1512 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1383 break;
1384 case 514: /* NodeTest */
1385 /* Line 453 of lalr1.cc */
1386 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1387 { release_hack( ((*yyvaluep).node) ); };
1388 /* Line 453 of lalr1.cc */
1389-#line 1424 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1390+#line 1519 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1391 break;
1392 case 515: /* NameTest */
1393 /* Line 453 of lalr1.cc */
1394 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1395 { release_hack( ((*yyvaluep).node) ); };
1396 /* Line 453 of lalr1.cc */
1397-#line 1431 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1398+#line 1526 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1399 break;
1400 case 516: /* Wildcard */
1401 /* Line 453 of lalr1.cc */
1402 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1403 { release_hack( ((*yyvaluep).node) ); };
1404 /* Line 453 of lalr1.cc */
1405-#line 1438 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1406+#line 1533 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1407 break;
1408 case 517: /* PostfixExpr */
1409 /* Line 453 of lalr1.cc */
1410 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1411 { release_hack( ((*yyvaluep).expr) ); };
1412 /* Line 453 of lalr1.cc */
1413-#line 1445 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1414+#line 1540 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1415 break;
1416 case 518: /* PredicateList */
1417 /* Line 453 of lalr1.cc */
1418 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1419 { release_hack( ((*yyvaluep).node) ); };
1420 /* Line 453 of lalr1.cc */
1421-#line 1452 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1422+#line 1547 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1423 break;
1424 case 519: /* Predicate */
1425 /* Line 453 of lalr1.cc */
1426 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1427 { release_hack( ((*yyvaluep).expr) ); };
1428 /* Line 453 of lalr1.cc */
1429-#line 1459 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1430+#line 1554 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1431 break;
1432 case 520: /* PrimaryExpr */
1433 /* Line 453 of lalr1.cc */
1434 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1435 { release_hack( ((*yyvaluep).expr) ); };
1436 /* Line 453 of lalr1.cc */
1437-#line 1466 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1438+#line 1561 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1439 break;
1440 case 521: /* Literal */
1441 /* Line 453 of lalr1.cc */
1442 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1443 { release_hack( ((*yyvaluep).expr) ); };
1444 /* Line 453 of lalr1.cc */
1445-#line 1473 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1446+#line 1568 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1447 break;
1448 case 522: /* NumericLiteral */
1449 /* Line 453 of lalr1.cc */
1450 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1451 { release_hack( ((*yyvaluep).expr) ); };
1452 /* Line 453 of lalr1.cc */
1453-#line 1480 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1454+#line 1575 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1455 break;
1456 case 523: /* VarRef */
1457 /* Line 453 of lalr1.cc */
1458 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1459 { release_hack( ((*yyvaluep).expr) ); };
1460 /* Line 453 of lalr1.cc */
1461-#line 1487 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1462+#line 1582 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1463 break;
1464 case 524: /* ParenthesizedExpr */
1465 /* Line 453 of lalr1.cc */
1466 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1467 { release_hack( ((*yyvaluep).expr) ); };
1468 /* Line 453 of lalr1.cc */
1469-#line 1494 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1470+#line 1589 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1471 break;
1472 case 525: /* ContextItemExpr */
1473 /* Line 453 of lalr1.cc */
1474 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1475 { release_hack( ((*yyvaluep).expr) ); };
1476 /* Line 453 of lalr1.cc */
1477-#line 1501 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1478+#line 1596 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1479 break;
1480 case 526: /* OrderedExpr */
1481 /* Line 453 of lalr1.cc */
1482 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1483 { release_hack( ((*yyvaluep).expr) ); };
1484 /* Line 453 of lalr1.cc */
1485-#line 1508 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1486+#line 1603 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1487 break;
1488 case 527: /* UnorderedExpr */
1489 /* Line 453 of lalr1.cc */
1490 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1491 { release_hack( ((*yyvaluep).expr) ); };
1492 /* Line 453 of lalr1.cc */
1493-#line 1515 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1494+#line 1610 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1495 break;
1496 case 528: /* FunctionCall */
1497 /* Line 453 of lalr1.cc */
1498 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1499 { release_hack( ((*yyvaluep).expr) ); };
1500 /* Line 453 of lalr1.cc */
1501-#line 1522 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1502+#line 1617 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1503 break;
1504 case 529: /* ArgList */
1505 /* Line 453 of lalr1.cc */
1506 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1507 { release_hack( ((*yyvaluep).node) ); };
1508 /* Line 453 of lalr1.cc */
1509-#line 1529 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1510+#line 1624 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1511 break;
1512 case 533: /* Constructor */
1513 /* Line 453 of lalr1.cc */
1514 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1515 { release_hack( ((*yyvaluep).expr) ); };
1516 /* Line 453 of lalr1.cc */
1517-#line 1536 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1518+#line 1631 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1519 break;
1520 case 534: /* DirectConstructor */
1521 /* Line 453 of lalr1.cc */
1522 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1523 { release_hack( ((*yyvaluep).expr) ); };
1524 /* Line 453 of lalr1.cc */
1525-#line 1543 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1526+#line 1638 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1527 break;
1528 case 535: /* DirElemConstructor */
1529 /* Line 453 of lalr1.cc */
1530 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1531 { release_hack( ((*yyvaluep).expr) ); };
1532 /* Line 453 of lalr1.cc */
1533-#line 1550 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1534+#line 1645 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1535 break;
1536 case 536: /* DirElemContentList */
1537 /* Line 453 of lalr1.cc */
1538 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1539 { release_hack( ((*yyvaluep).node) ); };
1540 /* Line 453 of lalr1.cc */
1541-#line 1557 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1542+#line 1652 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1543 break;
1544 case 537: /* DirAttributeList */
1545 /* Line 453 of lalr1.cc */
1546 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1547 { release_hack( ((*yyvaluep).node) ); };
1548 /* Line 453 of lalr1.cc */
1549-#line 1564 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1550+#line 1659 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1551 break;
1552 case 538: /* DirAttr */
1553 /* Line 453 of lalr1.cc */
1554 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1555 { release_hack( ((*yyvaluep).node) ); };
1556 /* Line 453 of lalr1.cc */
1557-#line 1571 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1558+#line 1666 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1559 break;
1560 case 540: /* DirAttributeValue */
1561 /* Line 453 of lalr1.cc */
1562 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1563 { release_hack( ((*yyvaluep).node) ); };
1564 /* Line 453 of lalr1.cc */
1565-#line 1578 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1566+#line 1673 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1567 break;
1568 case 541: /* opt_QuoteAttrContentList */
1569 /* Line 453 of lalr1.cc */
1570 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1571 { release_hack( ((*yyvaluep).node) ); };
1572 /* Line 453 of lalr1.cc */
1573-#line 1585 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1574+#line 1680 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1575 break;
1576 case 542: /* QuoteAttrContentList */
1577 /* Line 453 of lalr1.cc */
1578 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1579 { release_hack( ((*yyvaluep).node) ); };
1580 /* Line 453 of lalr1.cc */
1581-#line 1592 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1582+#line 1687 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1583 break;
1584 case 543: /* opt_AposAttrContentList */
1585 /* Line 453 of lalr1.cc */
1586 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1587 { release_hack( ((*yyvaluep).node) ); };
1588 /* Line 453 of lalr1.cc */
1589-#line 1599 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1590+#line 1694 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1591 break;
1592 case 544: /* AposAttrContentList */
1593 /* Line 453 of lalr1.cc */
1594 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1595 { release_hack( ((*yyvaluep).node) ); };
1596 /* Line 453 of lalr1.cc */
1597-#line 1606 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1598+#line 1701 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1599 break;
1600 case 545: /* QuoteAttrValueContent */
1601 /* Line 453 of lalr1.cc */
1602 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1603 { release_hack( ((*yyvaluep).node) ); };
1604 /* Line 453 of lalr1.cc */
1605-#line 1613 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1606+#line 1708 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1607 break;
1608 case 546: /* AposAttrValueContent */
1609 /* Line 453 of lalr1.cc */
1610 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1611 { release_hack( ((*yyvaluep).node) ); };
1612 /* Line 453 of lalr1.cc */
1613-#line 1620 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1614+#line 1715 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1615 break;
1616 case 547: /* DirElemContent */
1617 /* Line 453 of lalr1.cc */
1618 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1619 { release_hack( ((*yyvaluep).expr) ); };
1620 /* Line 453 of lalr1.cc */
1621-#line 1627 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1622+#line 1722 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1623 break;
1624 case 548: /* CommonContent */
1625 /* Line 453 of lalr1.cc */
1626 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1627 { release_hack( ((*yyvaluep).expr) ); };
1628 /* Line 453 of lalr1.cc */
1629-#line 1634 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1630+#line 1729 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1631 break;
1632 case 549: /* DirCommentConstructor */
1633 /* Line 453 of lalr1.cc */
1634 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1635 { release_hack( ((*yyvaluep).expr) ); };
1636 /* Line 453 of lalr1.cc */
1637-#line 1641 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1638+#line 1736 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1639 break;
1640 case 550: /* DirPIConstructor */
1641 /* Line 453 of lalr1.cc */
1642 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1643 { release_hack( ((*yyvaluep).expr) ); };
1644 /* Line 453 of lalr1.cc */
1645-#line 1648 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1646+#line 1743 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1647 break;
1648 case 551: /* CDataSection */
1649 /* Line 453 of lalr1.cc */
1650 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1651 { release_hack( ((*yyvaluep).expr) ); };
1652 /* Line 453 of lalr1.cc */
1653-#line 1655 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1654+#line 1750 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1655 break;
1656 case 552: /* ComputedConstructor */
1657 /* Line 453 of lalr1.cc */
1658 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1659 { release_hack( ((*yyvaluep).expr) ); };
1660 /* Line 453 of lalr1.cc */
1661-#line 1662 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1662+#line 1757 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1663 break;
1664 case 553: /* CompDocConstructor */
1665 /* Line 453 of lalr1.cc */
1666 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1667 { release_hack( ((*yyvaluep).expr) ); };
1668 /* Line 453 of lalr1.cc */
1669-#line 1669 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1670+#line 1764 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1671 break;
1672 case 554: /* CompElemConstructor */
1673 /* Line 453 of lalr1.cc */
1674 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1675 { release_hack( ((*yyvaluep).expr) ); };
1676 /* Line 453 of lalr1.cc */
1677-#line 1676 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1678+#line 1771 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1679 break;
1680 case 555: /* CompAttrConstructor */
1681 /* Line 453 of lalr1.cc */
1682 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1683 { release_hack( ((*yyvaluep).expr) ); };
1684 /* Line 453 of lalr1.cc */
1685-#line 1683 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1686+#line 1778 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1687 break;
1688 case 556: /* CompTextConstructor */
1689 /* Line 453 of lalr1.cc */
1690 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1691 { release_hack( ((*yyvaluep).expr) ); };
1692 /* Line 453 of lalr1.cc */
1693-#line 1690 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1694+#line 1785 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1695 break;
1696 case 557: /* CompCommentConstructor */
1697 /* Line 453 of lalr1.cc */
1698 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1699 { release_hack( ((*yyvaluep).expr) ); };
1700 /* Line 453 of lalr1.cc */
1701-#line 1697 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1702+#line 1792 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1703 break;
1704 case 558: /* CompPIConstructor */
1705 /* Line 453 of lalr1.cc */
1706 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1707 { release_hack( ((*yyvaluep).expr) ); };
1708 /* Line 453 of lalr1.cc */
1709-#line 1704 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1710+#line 1799 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1711 break;
1712 case 559: /* CompNamespaceConstructor */
1713 /* Line 453 of lalr1.cc */
1714 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1715 { release_hack( ((*yyvaluep).expr) ); };
1716 /* Line 453 of lalr1.cc */
1717-#line 1711 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1718+#line 1806 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1719 break;
1720 case 560: /* TypeDeclaration */
1721 /* Line 453 of lalr1.cc */
1722 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1723 { release_hack( ((*yyvaluep).node) ); };
1724 /* Line 453 of lalr1.cc */
1725-#line 1718 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1726+#line 1813 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1727 break;
1728 case 561: /* SequenceType */
1729 /* Line 453 of lalr1.cc */
1730 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1731 { release_hack( ((*yyvaluep).node) ); };
1732 /* Line 453 of lalr1.cc */
1733-#line 1725 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1734+#line 1820 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1735 break;
1736 case 562: /* OccurrenceIndicator */
1737 /* Line 453 of lalr1.cc */
1738 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1739 { release_hack( ((*yyvaluep).node) ); };
1740 /* Line 453 of lalr1.cc */
1741-#line 1732 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1742+#line 1827 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1743 break;
1744 case 563: /* ItemType */
1745 /* Line 453 of lalr1.cc */
1746 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1747 { release_hack( ((*yyvaluep).node) ); };
1748 /* Line 453 of lalr1.cc */
1749-#line 1739 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1750+#line 1834 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1751 break;
1752 case 564: /* TypeList */
1753 /* Line 453 of lalr1.cc */
1754 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1755 { release_hack( ((*yyvaluep).node) ); };
1756 /* Line 453 of lalr1.cc */
1757-#line 1746 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1758+#line 1841 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1759 break;
1760 case 565: /* GeneralizedAtomicType */
1761 /* Line 453 of lalr1.cc */
1762 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1763 { release_hack( ((*yyvaluep).node) ); };
1764 /* Line 453 of lalr1.cc */
1765-#line 1753 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1766+#line 1848 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1767 break;
1768 case 566: /* SimpleType */
1769 /* Line 453 of lalr1.cc */
1770 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1771 { release_hack( ((*yyvaluep).node) ); };
1772 /* Line 453 of lalr1.cc */
1773-#line 1760 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1774+#line 1855 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1775 break;
1776 case 567: /* KindTest */
1777 /* Line 453 of lalr1.cc */
1778 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1779 { release_hack( ((*yyvaluep).node) ); };
1780 /* Line 453 of lalr1.cc */
1781-#line 1767 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1782+#line 1862 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1783 break;
1784 case 568: /* AnyKindTest */
1785 /* Line 453 of lalr1.cc */
1786 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1787 { release_hack( ((*yyvaluep).node) ); };
1788 /* Line 453 of lalr1.cc */
1789-#line 1774 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1790+#line 1869 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1791 break;
1792 case 570: /* DocumentTest */
1793 /* Line 453 of lalr1.cc */
1794 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1795 { release_hack( ((*yyvaluep).node) ); };
1796 /* Line 453 of lalr1.cc */
1797-#line 1781 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1798+#line 1876 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1799 break;
1800 case 571: /* NamespaceTest */
1801 /* Line 453 of lalr1.cc */
1802 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1803 { release_hack( ((*yyvaluep).node) ); };
1804 /* Line 453 of lalr1.cc */
1805-#line 1788 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1806+#line 1883 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1807 break;
1808 case 572: /* TextTest */
1809 /* Line 453 of lalr1.cc */
1810 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1811 { release_hack( ((*yyvaluep).node) ); };
1812 /* Line 453 of lalr1.cc */
1813-#line 1795 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1814+#line 1890 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1815 break;
1816 case 573: /* CommentTest */
1817 /* Line 453 of lalr1.cc */
1818 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1819 { release_hack( ((*yyvaluep).node) ); };
1820 /* Line 453 of lalr1.cc */
1821-#line 1802 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1822+#line 1897 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1823 break;
1824 case 574: /* PITest */
1825 /* Line 453 of lalr1.cc */
1826 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1827 { release_hack( ((*yyvaluep).node) ); };
1828 /* Line 453 of lalr1.cc */
1829-#line 1809 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1830+#line 1904 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1831 break;
1832 case 575: /* AttributeTest */
1833 /* Line 453 of lalr1.cc */
1834 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1835 { release_hack( ((*yyvaluep).node) ); };
1836 /* Line 453 of lalr1.cc */
1837-#line 1816 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1838+#line 1911 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1839 break;
1840 case 576: /* SchemaAttributeTest */
1841 /* Line 453 of lalr1.cc */
1842 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1843 { release_hack( ((*yyvaluep).node) ); };
1844 /* Line 453 of lalr1.cc */
1845-#line 1823 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1846+#line 1918 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1847 break;
1848 case 577: /* ElementTest */
1849 /* Line 453 of lalr1.cc */
1850 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1851 { release_hack( ((*yyvaluep).node) ); };
1852 /* Line 453 of lalr1.cc */
1853-#line 1830 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1854+#line 1925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1855 break;
1856 case 578: /* SchemaElementTest */
1857 /* Line 453 of lalr1.cc */
1858 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1859 { release_hack( ((*yyvaluep).node) ); };
1860 /* Line 453 of lalr1.cc */
1861-#line 1837 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1862+#line 1932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1863 break;
1864 case 579: /* TypeName */
1865 /* Line 453 of lalr1.cc */
1866 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1867 { release_hack( ((*yyvaluep).node) ); };
1868 /* Line 453 of lalr1.cc */
1869-#line 1844 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1870+#line 1939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1871 break;
1872 case 580: /* TypeName_WITH_HOOK */
1873 /* Line 453 of lalr1.cc */
1874 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1875 { release_hack( ((*yyvaluep).node) ); };
1876 /* Line 453 of lalr1.cc */
1877-#line 1851 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1878+#line 1946 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1879 break;
1880 case 581: /* StringLiteral */
1881 /* Line 453 of lalr1.cc */
1882 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1883 { release_hack( ((*yyvaluep).expr) ); };
1884 /* Line 453 of lalr1.cc */
1885-#line 1858 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1886+#line 1953 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1887 break;
1888 case 583: /* AnyFunctionTest */
1889 /* Line 453 of lalr1.cc */
1890 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1891 { release_hack( ((*yyvaluep).node) ); };
1892 /* Line 453 of lalr1.cc */
1893-#line 1865 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1894+#line 1960 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1895 break;
1896 case 584: /* TypedFunctionTest */
1897 /* Line 453 of lalr1.cc */
1898 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1899 { release_hack( ((*yyvaluep).node) ); };
1900 /* Line 453 of lalr1.cc */
1901-#line 1872 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1902+#line 1967 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1903 break;
1904 case 587: /* InsertExpr */
1905 /* Line 453 of lalr1.cc */
1906 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1907 { release_hack( ((*yyvaluep).expr) ); };
1908 /* Line 453 of lalr1.cc */
1909-#line 1879 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1910+#line 1974 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1911 break;
1912 case 588: /* DeleteExpr */
1913 /* Line 453 of lalr1.cc */
1914 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1915 { release_hack( ((*yyvaluep).expr) ); };
1916 /* Line 453 of lalr1.cc */
1917-#line 1886 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1918+#line 1981 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1919 break;
1920 case 589: /* ReplaceExpr */
1921 /* Line 453 of lalr1.cc */
1922 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1923 { release_hack( ((*yyvaluep).expr) ); };
1924 /* Line 453 of lalr1.cc */
1925-#line 1893 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1926+#line 1988 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1927 break;
1928 case 590: /* RenameExpr */
1929 /* Line 453 of lalr1.cc */
1930 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1931 { release_hack( ((*yyvaluep).expr) ); };
1932 /* Line 453 of lalr1.cc */
1933-#line 1900 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1934+#line 1995 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1935 break;
1936 case 591: /* TransformExpr */
1937 /* Line 453 of lalr1.cc */
1938 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1939 { release_hack( ((*yyvaluep).expr) ); };
1940 /* Line 453 of lalr1.cc */
1941-#line 1907 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1942+#line 2002 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1943 break;
1944 case 592: /* VarNameList */
1945 /* Line 453 of lalr1.cc */
1946 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1947 { release_hack( ((*yyvaluep).expr) ); };
1948 /* Line 453 of lalr1.cc */
1949-#line 1914 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1950+#line 2009 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1951 break;
1952 case 593: /* VarNameDecl */
1953 /* Line 453 of lalr1.cc */
1954 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1955 { release_hack( ((*yyvaluep).expr) ); };
1956 /* Line 453 of lalr1.cc */
1957-#line 1921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1958+#line 2016 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1959 break;
1960 case 594: /* TryExpr */
1961 /* Line 453 of lalr1.cc */
1962 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1963 { release_hack( ((*yyvaluep).expr) ); };
1964 /* Line 453 of lalr1.cc */
1965-#line 1928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1966+#line 2023 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1967 break;
1968 case 595: /* CatchListExpr */
1969 /* Line 453 of lalr1.cc */
1970 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1971 { release_hack( ((*yyvaluep).expr) ); };
1972 /* Line 453 of lalr1.cc */
1973-#line 1935 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1974+#line 2030 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1975 break;
1976 case 596: /* CatchExpr */
1977 /* Line 453 of lalr1.cc */
1978 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1979 { release_hack( ((*yyvaluep).expr) ); };
1980 /* Line 453 of lalr1.cc */
1981-#line 1942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1982+#line 2037 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1983 break;
1984 case 597: /* BracedExpr */
1985 /* Line 453 of lalr1.cc */
1986 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1987 { release_hack( ((*yyvaluep).expr) ); };
1988 /* Line 453 of lalr1.cc */
1989-#line 1949 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1990+#line 2044 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1991 break;
1992 case 598: /* NameTestList */
1993 /* Line 453 of lalr1.cc */
1994 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1995 { delete ((*yyvaluep).name_test_list); };
1996 /* Line 453 of lalr1.cc */
1997-#line 1956 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1998+#line 2051 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1999 break;
2000 case 599: /* FTSelection */
2001 /* Line 453 of lalr1.cc */
2002 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2003 { release_hack( ((*yyvaluep).node) ); };
2004 /* Line 453 of lalr1.cc */
2005-#line 1963 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2006+#line 2058 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2007 break;
2008 case 602: /* FTOr */
2009 /* Line 453 of lalr1.cc */
2010 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2011 { release_hack( ((*yyvaluep).node) ); };
2012 /* Line 453 of lalr1.cc */
2013-#line 1970 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2014+#line 2065 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2015 break;
2016 case 603: /* FTAnd */
2017 /* Line 453 of lalr1.cc */
2018 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2019 { release_hack( ((*yyvaluep).node) ); };
2020 /* Line 453 of lalr1.cc */
2021-#line 1977 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2022+#line 2072 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2023 break;
2024 case 604: /* FTMildNot */
2025 /* Line 453 of lalr1.cc */
2026 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2027 { release_hack( ((*yyvaluep).node) ); };
2028 /* Line 453 of lalr1.cc */
2029-#line 1984 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2030+#line 2079 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2031 break;
2032 case 605: /* FTUnaryNot */
2033 /* Line 453 of lalr1.cc */
2034 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2035 { release_hack( ((*yyvaluep).node) ); };
2036 /* Line 453 of lalr1.cc */
2037-#line 1991 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2038+#line 2086 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2039 break;
2040 case 606: /* FTPrimaryWithOptions */
2041 /* Line 453 of lalr1.cc */
2042 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2043 { release_hack( ((*yyvaluep).node) ); };
2044 /* Line 453 of lalr1.cc */
2045-#line 1998 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2046+#line 2093 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2047 break;
2048 case 607: /* opt_FTMatchOptions */
2049 /* Line 453 of lalr1.cc */
2050 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2051 { release_hack( ((*yyvaluep).node) ); };
2052 /* Line 453 of lalr1.cc */
2053-#line 2005 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2054+#line 2100 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2055 break;
2056 case 609: /* FTWeight */
2057 /* Line 453 of lalr1.cc */
2058 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2059 { release_hack( ((*yyvaluep).node) ); };
2060 /* Line 453 of lalr1.cc */
2061-#line 2012 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2062+#line 2107 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2063 break;
2064 case 610: /* FTPrimary */
2065 /* Line 453 of lalr1.cc */
2066 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2067 { release_hack( ((*yyvaluep).node) ); };
2068 /* Line 453 of lalr1.cc */
2069-#line 2019 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2070+#line 2114 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2071 break;
2072 case 611: /* opt_FTTimes */
2073 /* Line 453 of lalr1.cc */
2074 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2075 { release_hack( ((*yyvaluep).node) ); };
2076 /* Line 453 of lalr1.cc */
2077-#line 2026 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2078+#line 2121 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2079 break;
2080 case 612: /* FTExtensionSelection */
2081 /* Line 453 of lalr1.cc */
2082 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2083 { release_hack( ((*yyvaluep).node) ); };
2084 /* Line 453 of lalr1.cc */
2085-#line 2033 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2086+#line 2128 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2087 break;
2088 case 614: /* FTWords */
2089 /* Line 453 of lalr1.cc */
2090 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2091 { release_hack( ((*yyvaluep).node) ); };
2092 /* Line 453 of lalr1.cc */
2093-#line 2040 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2094+#line 2135 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2095 break;
2096 case 615: /* FTWordsValue */
2097 /* Line 453 of lalr1.cc */
2098 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2099 { release_hack( ((*yyvaluep).node) ); };
2100 /* Line 453 of lalr1.cc */
2101-#line 2047 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2102+#line 2142 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2103 break;
2104 case 617: /* FTAnyallOption */
2105 /* Line 453 of lalr1.cc */
2106 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2107 { release_hack( ((*yyvaluep).node) ); };
2108 /* Line 453 of lalr1.cc */
2109-#line 2054 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2110+#line 2149 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2111 break;
2112 case 620: /* FTPosFilter */
2113 /* Line 453 of lalr1.cc */
2114 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2115 { release_hack( ((*yyvaluep).node) ); };
2116 /* Line 453 of lalr1.cc */
2117-#line 2061 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2118+#line 2156 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2119 break;
2120 case 621: /* FTOrder */
2121 /* Line 453 of lalr1.cc */
2122 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2123 { release_hack( ((*yyvaluep).node) ); };
2124 /* Line 453 of lalr1.cc */
2125-#line 2068 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2126+#line 2163 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2127 break;
2128 case 622: /* FTWindow */
2129 /* Line 453 of lalr1.cc */
2130 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2131 { release_hack( ((*yyvaluep).node) ); };
2132 /* Line 453 of lalr1.cc */
2133-#line 2075 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2134+#line 2170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2135 break;
2136 case 623: /* FTDistance */
2137 /* Line 453 of lalr1.cc */
2138 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2139 { release_hack( ((*yyvaluep).node) ); };
2140 /* Line 453 of lalr1.cc */
2141-#line 2082 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2142+#line 2177 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2143 break;
2144 case 624: /* FTUnit */
2145 /* Line 453 of lalr1.cc */
2146 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2147 { release_hack( ((*yyvaluep).node) ); };
2148 /* Line 453 of lalr1.cc */
2149-#line 2089 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2150+#line 2184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2151 break;
2152 case 625: /* FTMatchOptions */
2153 /* Line 453 of lalr1.cc */
2154 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2155 { release_hack( ((*yyvaluep).node) ); };
2156 /* Line 453 of lalr1.cc */
2157-#line 2096 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2158+#line 2191 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2159 break;
2160 case 626: /* FTMatchOption */
2161 /* Line 453 of lalr1.cc */
2162 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2163 { release_hack( ((*yyvaluep).node) ); };
2164 /* Line 453 of lalr1.cc */
2165-#line 2103 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2166+#line 2198 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2167 break;
2168 case 627: /* FTCaseOption */
2169 /* Line 453 of lalr1.cc */
2170 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2171 { release_hack( ((*yyvaluep).node) ); };
2172 /* Line 453 of lalr1.cc */
2173-#line 2110 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2174+#line 2205 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2175 break;
2176 case 628: /* FTDiacriticsOption */
2177 /* Line 453 of lalr1.cc */
2178 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2179 { release_hack( ((*yyvaluep).node) ); };
2180 /* Line 453 of lalr1.cc */
2181-#line 2117 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2182+#line 2212 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2183 break;
2184 case 629: /* FTExtensionOption */
2185 /* Line 453 of lalr1.cc */
2186 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2187 { release_hack( ((*yyvaluep).node) ); };
2188 /* Line 453 of lalr1.cc */
2189-#line 2124 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2190+#line 2219 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2191 break;
2192 case 630: /* FTStemOption */
2193 /* Line 453 of lalr1.cc */
2194 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2195 { release_hack( ((*yyvaluep).node) ); };
2196 /* Line 453 of lalr1.cc */
2197-#line 2131 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2198+#line 2226 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2199 break;
2200 case 631: /* FTThesaurusOption */
2201 /* Line 453 of lalr1.cc */
2202 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2203 { release_hack( ((*yyvaluep).node) ); };
2204 /* Line 453 of lalr1.cc */
2205-#line 2138 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2206+#line 2233 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2207 break;
2208 case 635: /* FTThesaurusID */
2209 /* Line 453 of lalr1.cc */
2210 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2211 { release_hack( ((*yyvaluep).node) ); };
2212 /* Line 453 of lalr1.cc */
2213-#line 2145 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2214+#line 2240 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2215 break;
2216 case 638: /* FTStopWordOption */
2217 /* Line 453 of lalr1.cc */
2218 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2219 { release_hack( ((*yyvaluep).node) ); };
2220 /* Line 453 of lalr1.cc */
2221-#line 2152 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2222+#line 2247 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2223 break;
2224 case 639: /* FTStopWords */
2225 /* Line 453 of lalr1.cc */
2226 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2227 { release_hack( ((*yyvaluep).node) ); };
2228 /* Line 453 of lalr1.cc */
2229-#line 2159 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2230+#line 2254 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2231 break;
2232 case 643: /* FTStopWordsInclExcl */
2233 /* Line 453 of lalr1.cc */
2234 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2235 { release_hack( ((*yyvaluep).node) ); };
2236 /* Line 453 of lalr1.cc */
2237-#line 2166 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2238+#line 2261 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2239 break;
2240 case 644: /* FTLanguageOption */
2241 /* Line 453 of lalr1.cc */
2242 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2243 { release_hack( ((*yyvaluep).node) ); };
2244 /* Line 453 of lalr1.cc */
2245-#line 2173 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2246+#line 2268 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2247 break;
2248 case 645: /* FTWildCardOption */
2249 /* Line 453 of lalr1.cc */
2250 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2251 { release_hack( ((*yyvaluep).node) ); };
2252 /* Line 453 of lalr1.cc */
2253-#line 2180 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2254+#line 2275 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2255 break;
2256 case 646: /* FTContent */
2257 /* Line 453 of lalr1.cc */
2258 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2259 { release_hack( ((*yyvaluep).node) ); };
2260 /* Line 453 of lalr1.cc */
2261-#line 2187 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2262+#line 2282 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2263 break;
2264 case 647: /* FTTimes */
2265 /* Line 453 of lalr1.cc */
2266 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2267 { release_hack( ((*yyvaluep).node) ); };
2268 /* Line 453 of lalr1.cc */
2269-#line 2194 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2270+#line 2289 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2271 break;
2272 case 648: /* FTRange */
2273 /* Line 453 of lalr1.cc */
2274 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2275 { release_hack( ((*yyvaluep).node) ); };
2276 /* Line 453 of lalr1.cc */
2277-#line 2201 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2278+#line 2296 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2279 break;
2280 case 649: /* FTScope */
2281 /* Line 453 of lalr1.cc */
2282 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2283 { release_hack( ((*yyvaluep).node) ); };
2284 /* Line 453 of lalr1.cc */
2285-#line 2208 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2286+#line 2303 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2287 break;
2288 case 650: /* FTBigUnit */
2289 /* Line 453 of lalr1.cc */
2290 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2291 { release_hack( ((*yyvaluep).node) ); };
2292 /* Line 453 of lalr1.cc */
2293-#line 2215 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2294+#line 2310 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2295 break;
2296 case 651: /* FTIgnoreOption */
2297 /* Line 453 of lalr1.cc */
2298 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2299 { release_hack( ((*yyvaluep).node) ); };
2300 /* Line 453 of lalr1.cc */
2301-#line 2222 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2302+#line 2317 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2303 break;
2304 case 652: /* JSONArrayConstructor */
2305 /* Line 453 of lalr1.cc */
2306 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2307 { release_hack( ((*yyvaluep).expr) ); };
2308 /* Line 453 of lalr1.cc */
2309-#line 2229 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2310+#line 2324 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2311 break;
2312 case 653: /* JSONSimpleObjectUnion */
2313 /* Line 453 of lalr1.cc */
2314 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2315 { release_hack( ((*yyvaluep).expr) ); };
2316 /* Line 453 of lalr1.cc */
2317-#line 2236 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2318+#line 2331 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2319 break;
2320 case 654: /* JSONAccumulatorObjectUnion */
2321 /* Line 453 of lalr1.cc */
2322 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2323 { release_hack( ((*yyvaluep).expr) ); };
2324 /* Line 453 of lalr1.cc */
2325-#line 2243 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2326+#line 2338 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2327 break;
2328 case 655: /* JSONObjectConstructor */
2329 /* Line 453 of lalr1.cc */
2330 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2331 { release_hack( ((*yyvaluep).expr) ); };
2332 /* Line 453 of lalr1.cc */
2333-#line 2250 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2334+#line 2345 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2335 break;
2336 case 656: /* JSONPairList */
2337 /* Line 453 of lalr1.cc */
2338 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2339 { release_hack( ((*yyvaluep).node) ); };
2340 /* Line 453 of lalr1.cc */
2341-#line 2257 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2342+#line 2352 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2343 break;
2344 case 657: /* JSONInsertExpr */
2345 /* Line 453 of lalr1.cc */
2346 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2347 { release_hack( ((*yyvaluep).expr) ); };
2348 /* Line 453 of lalr1.cc */
2349-#line 2264 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2350+#line 2359 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2351 break;
2352 case 658: /* JSONAppendExpr */
2353 /* Line 453 of lalr1.cc */
2354 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2355 { release_hack( ((*yyvaluep).expr) ); };
2356 /* Line 453 of lalr1.cc */
2357-#line 2271 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2358+#line 2366 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2359 break;
2360 case 659: /* JSONDeleteExpr */
2361 /* Line 453 of lalr1.cc */
2362 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2363 { release_hack( ((*yyvaluep).expr) ); };
2364 /* Line 453 of lalr1.cc */
2365-#line 2278 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2366+#line 2373 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2367 break;
2368 case 660: /* JSONRenameExpr */
2369 /* Line 453 of lalr1.cc */
2370 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2371 { release_hack( ((*yyvaluep).expr) ); };
2372 /* Line 453 of lalr1.cc */
2373-#line 2285 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2374+#line 2380 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2375 break;
2376 case 661: /* JSONReplaceExpr */
2377 /* Line 453 of lalr1.cc */
2378 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2379 { release_hack( ((*yyvaluep).expr) ); };
2380 /* Line 453 of lalr1.cc */
2381-#line 2292 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2382+#line 2387 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2383 break;
2384 case 664: /* QNAME */
2385 /* Line 453 of lalr1.cc */
2386 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2387 { release_hack( ((*yyvaluep).expr) ); };
2388 /* Line 453 of lalr1.cc */
2389-#line 2299 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2390+#line 2394 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2391 break;
2392 case 665: /* FUNCTION_NAME */
2393 /* Line 453 of lalr1.cc */
2394 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2395 { release_hack( ((*yyvaluep).expr) ); };
2396 /* Line 453 of lalr1.cc */
2397-#line 2306 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2398+#line 2401 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2399 break;
2400 case 666: /* EQNAME */
2401 /* Line 453 of lalr1.cc */
2402 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2403 { release_hack( ((*yyvaluep).expr) ); };
2404 /* Line 453 of lalr1.cc */
2405-#line 2313 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2406+#line 2408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2407 break;
2408
2409 default:
2410@@ -2404,7 +2499,7 @@
2411 yylloc.begin.filename = yylloc.end.filename = &(driver.theFilename2);
2412 }
2413 /* Line 538 of lalr1.cc */
2414-#line 2408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2415+#line 2503 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2416
2417 /* Initialize the stacks. The initial state will be pushed in
2418 yynewstate, since the latter expects the semantical and the
2419@@ -2522,7 +2617,7 @@
2420 {
2421 case 3:
2422 /* Line 661 of lalr1.cc */
2423-#line 1052 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2424+#line 1149 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2425 {
2426 (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
2427 }
2428@@ -2530,7 +2625,7 @@
2429
2430 case 4:
2431 /* Line 661 of lalr1.cc */
2432-#line 1056 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2433+#line 1153 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2434 {
2435 (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
2436 }
2437@@ -2538,7 +2633,7 @@
2438
2439 case 5:
2440 /* Line 661 of lalr1.cc */
2441-#line 1060 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2442+#line 1157 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2443 {
2444 (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
2445 }
2446@@ -2546,7 +2641,7 @@
2447
2448 case 6:
2449 /* Line 661 of lalr1.cc */
2450-#line 1068 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2451+#line 1165 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2452 {
2453 (yyval.node) = NULL;
2454 }
2455@@ -2554,7 +2649,7 @@
2456
2457 case 7:
2458 /* Line 661 of lalr1.cc */
2459-#line 1074 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2460+#line 1171 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2461 {
2462 (yyval.node) = NULL; YYABORT;
2463 }
2464@@ -2562,7 +2657,7 @@
2465
2466 case 8:
2467 /* Line 661 of lalr1.cc */
2468-#line 1078 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2469+#line 1175 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2470 {
2471 (yyval.node) = NULL; YYABORT;
2472 }
2473@@ -2570,7 +2665,7 @@
2474
2475 case 9:
2476 /* Line 661 of lalr1.cc */
2477-#line 1087 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2478+#line 1184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2479 {
2480 (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
2481 driver.set_expr( (yyval.node) );
2482@@ -2579,7 +2674,7 @@
2483
2484 case 10:
2485 /* Line 661 of lalr1.cc */
2486-#line 1093 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2487+#line 1190 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2488 {
2489 MainModule* mm = dynamic_cast<MainModule*>((yysemantic_stack_[(2) - (2)].node));
2490 mm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
2491@@ -2590,7 +2685,7 @@
2492
2493 case 11:
2494 /* Line 661 of lalr1.cc */
2495-#line 1101 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2496+#line 1198 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2497 {
2498 (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
2499 driver.set_expr( (yyval.node) );
2500@@ -2599,7 +2694,7 @@
2501
2502 case 12:
2503 /* Line 661 of lalr1.cc */
2504-#line 1107 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2505+#line 1204 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2506 {
2507 LibraryModule* lm = dynamic_cast<LibraryModule*>((yysemantic_stack_[(2) - (2)].node));
2508 lm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
2509@@ -2610,7 +2705,7 @@
2510
2511 case 13:
2512 /* Line 661 of lalr1.cc */
2513-#line 1118 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2514+#line 1215 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2515 {
2516 (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), "utf-8", VersionDecl::jsoniq );
2517 }
2518@@ -2618,7 +2713,7 @@
2519
2520 case 14:
2521 /* Line 661 of lalr1.cc */
2522-#line 1123 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2523+#line 1220 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2524 {
2525 (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)), VersionDecl::jsoniq );
2526 }
2527@@ -2626,7 +2721,7 @@
2528
2529 case 15:
2530 /* Line 661 of lalr1.cc */
2531-#line 1132 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2532+#line 1229 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2533 {
2534 Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (1)].node)), NULL);
2535
2536@@ -2636,7 +2731,7 @@
2537
2538 case 16:
2539 /* Line 661 of lalr1.cc */
2540-#line 1139 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2541+#line 1236 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2542 {
2543 Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (1)].node)));
2544
2545@@ -2646,7 +2741,7 @@
2546
2547 case 17:
2548 /* Line 661 of lalr1.cc */
2549-#line 1146 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2550+#line 1243 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2551 {
2552 Prolog* prolog = new Prolog(LOC((yyloc)),
2553 static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (1)].node)),
2554@@ -2658,7 +2753,7 @@
2555
2556 case 18:
2557 /* Line 661 of lalr1.cc */
2558-#line 1155 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2559+#line 1252 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2560 {
2561 (yyval.node) = new MainModule( LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(1) - (1)].expr)), NULL );
2562 }
2563@@ -2666,7 +2761,7 @@
2564
2565 case 19:
2566 /* Line 661 of lalr1.cc */
2567-#line 1162 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2568+#line 1259 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2569 {
2570 (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr);
2571 (yylocation_stack_[(3) - (1)]).step();
2572@@ -2677,7 +2772,7 @@
2573
2574 case 20:
2575 /* Line 661 of lalr1.cc */
2576-#line 1170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2577+#line 1267 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2578 {
2579 (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr);
2580 (yylocation_stack_[(3) - (1)]).step();
2581@@ -2688,7 +2783,7 @@
2582
2583 case 21:
2584 /* Line 661 of lalr1.cc */
2585-#line 1178 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2586+#line 1275 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2587 {
2588 (yyval.node) = (yysemantic_stack_[(5) - (1)].node); (yyval.node) = (yysemantic_stack_[(5) - (3)].node); (yyval.node) = (yysemantic_stack_[(5) - (5)].expr);
2589 (yylocation_stack_[(5) - (3)]).step();
2590@@ -2699,7 +2794,7 @@
2591
2592 case 22:
2593 /* Line 661 of lalr1.cc */
2594-#line 1186 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2595+#line 1283 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2596 {
2597 (yyval.node) = (yysemantic_stack_[(5) - (1)].node); (yyval.node) = (yysemantic_stack_[(5) - (3)].node); (yyval.node) = (yysemantic_stack_[(5) - (5)].expr);
2598 (yylocation_stack_[(5) - (1)]).step();
2599@@ -2710,7 +2805,7 @@
2600
2601 case 23:
2602 /* Line 661 of lalr1.cc */
2603-#line 1197 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2604+#line 1294 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2605 {
2606 (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(1) - (1)].node)), NULL);
2607 }
2608@@ -2718,7 +2813,7 @@
2609
2610 case 24:
2611 /* Line 661 of lalr1.cc */
2612-#line 1202 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2613+#line 1299 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2614 {
2615 Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (2)].node)), NULL);
2616
2617@@ -2728,7 +2823,7 @@
2618
2619 case 25:
2620 /* Line 661 of lalr1.cc */
2621-#line 1209 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2622+#line 1306 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2623 {
2624 Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (2)].node)));
2625
2626@@ -2738,7 +2833,7 @@
2627
2628 case 26:
2629 /* Line 661 of lalr1.cc */
2630-#line 1216 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2631+#line 1313 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2632 {
2633 Prolog* prolog = new Prolog(LOC((yyloc)),
2634 static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (2)].node)),
2635@@ -2750,7 +2845,7 @@
2636
2637 case 27:
2638 /* Line 661 of lalr1.cc */
2639-#line 1228 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2640+#line 1325 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2641 {
2642 ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(6) - (3)].expr), (yylocation_stack_[(6) - (3)]));
2643 (yyval.node) = new ModuleDecl( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
2644@@ -2760,7 +2855,7 @@
2645
2646 case 28:
2647 /* Line 661 of lalr1.cc */
2648-#line 1238 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2649+#line 1335 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2650 {
2651 SIND_DeclList *sdl = new SIND_DeclList( LOC((yyloc)) );
2652 sdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
2653@@ -2770,7 +2865,7 @@
2654
2655 case 29:
2656 /* Line 661 of lalr1.cc */
2657-#line 1245 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2658+#line 1342 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2659 {
2660 ((SIND_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
2661 (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
2662@@ -2779,7 +2874,7 @@
2663
2664 case 30:
2665 /* Line 661 of lalr1.cc */
2666-#line 1252 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2667+#line 1349 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2668 {
2669
2670 (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
2671@@ -2791,7 +2886,7 @@
2672
2673 case 44:
2674 /* Line 661 of lalr1.cc */
2675-#line 1287 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2676+#line 1384 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2677 {
2678 (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::preserve_space);
2679 }
2680@@ -2799,7 +2894,7 @@
2681
2682 case 45:
2683 /* Line 661 of lalr1.cc */
2684-#line 1292 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2685+#line 1389 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2686 {
2687 (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::strip_space);
2688 }
2689@@ -2807,7 +2902,7 @@
2690
2691 case 46:
2692 /* Line 661 of lalr1.cc */
2693-#line 1300 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2694+#line 1397 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2695 {
2696 (yyval.node) = new DefaultCollationDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)) );
2697 }
2698@@ -2815,7 +2910,7 @@
2699
2700 case 47:
2701 /* Line 661 of lalr1.cc */
2702-#line 1308 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2703+#line 1405 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2704 {
2705 (yyval.node) = new BaseURIDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
2706 }
2707@@ -2823,7 +2918,7 @@
2708
2709 case 48:
2710 /* Line 661 of lalr1.cc */
2711-#line 1316 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2712+#line 1413 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2713 {
2714 (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_preserve);
2715 }
2716@@ -2831,7 +2926,7 @@
2717
2718 case 49:
2719 /* Line 661 of lalr1.cc */
2720-#line 1321 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2721+#line 1418 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2722 {
2723 (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_strip);
2724 }
2725@@ -2839,7 +2934,7 @@
2726
2727 case 50:
2728 /* Line 661 of lalr1.cc */
2729-#line 1329 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2730+#line 1426 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2731 {
2732 (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::ordered);
2733 }
2734@@ -2847,7 +2942,7 @@
2735
2736 case 51:
2737 /* Line 661 of lalr1.cc */
2738-#line 1334 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2739+#line 1431 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2740 {
2741 (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::unordered);
2742 }
2743@@ -2855,7 +2950,7 @@
2744
2745 case 52:
2746 /* Line 661 of lalr1.cc */
2747-#line 1342 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2748+#line 1439 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2749 {
2750 (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_greatest);
2751 }
2752@@ -2863,7 +2958,7 @@
2753
2754 case 53:
2755 /* Line 661 of lalr1.cc */
2756-#line 1347 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2757+#line 1444 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2758 {
2759 (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_least);
2760 }
2761@@ -2871,7 +2966,7 @@
2762
2763 case 54:
2764 /* Line 661 of lalr1.cc */
2765-#line 1355 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2766+#line 1452 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2767 {
2768 (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, true);
2769 }
2770@@ -2879,7 +2974,7 @@
2771
2772 case 55:
2773 /* Line 661 of lalr1.cc */
2774-#line 1360 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2775+#line 1457 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2776 {
2777 (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, false);
2778 }
2779@@ -2887,7 +2982,7 @@
2780
2781 case 56:
2782 /* Line 661 of lalr1.cc */
2783-#line 1365 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2784+#line 1462 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2785 {
2786 (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, true);
2787 }
2788@@ -2895,7 +2990,7 @@
2789
2790 case 57:
2791 /* Line 661 of lalr1.cc */
2792-#line 1370 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2793+#line 1467 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2794 {
2795 (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, false);
2796 }
2797@@ -2903,7 +2998,7 @@
2798
2799 case 60:
2800 /* Line 661 of lalr1.cc */
2801-#line 1383 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2802+#line 1480 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2803 {
2804 (yyval.node) = (yyval.node);
2805 error((yylocation_stack_[(3) - (2)]), "syntax error, \"import\" should be followed by either \"schema\" or \"module\"");
2806@@ -2913,7 +3008,7 @@
2807
2808 case 61:
2809 /* Line 661 of lalr1.cc */
2810-#line 1393 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2811+#line 1490 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2812 {
2813 (yyval.node) = new SchemaImport( LOC((yyloc)), NULL, SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL );
2814 }
2815@@ -2921,7 +3016,7 @@
2816
2817 case 62:
2818 /* Line 661 of lalr1.cc */
2819-#line 1398 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2820+#line 1495 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2821 {
2822 (yyval.node) = new SchemaImport(LOC((yyloc)),
2823 dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(4) - (3)].node)),
2824@@ -2932,7 +3027,7 @@
2825
2826 case 63:
2827 /* Line 661 of lalr1.cc */
2828-#line 1406 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2829+#line 1503 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2830 {
2831 (yyval.node) = new SchemaImport(LOC((yyloc)),
2832 NULL,
2833@@ -2943,7 +3038,7 @@
2834
2835 case 64:
2836 /* Line 661 of lalr1.cc */
2837-#line 1414 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2838+#line 1511 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2839 {
2840 (yyval.node) = new SchemaImport(LOC((yyloc)),
2841 dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(6) - (3)].node)),
2842@@ -2954,7 +3049,7 @@
2843
2844 case 65:
2845 /* Line 661 of lalr1.cc */
2846-#line 1425 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2847+#line 1522 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2848 {
2849 URILiteralList *ull = new URILiteralList( LOC((yyloc)));
2850 ull->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
2851@@ -2964,7 +3059,7 @@
2852
2853 case 66:
2854 /* Line 661 of lalr1.cc */
2855-#line 1432 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2856+#line 1529 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2857 {
2858 if ( URILiteralList *ull = dynamic_cast<URILiteralList*>((yysemantic_stack_[(3) - (1)].node)) )
2859 ull->push_back( SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
2860@@ -2975,7 +3070,7 @@
2861
2862 case 67:
2863 /* Line 661 of lalr1.cc */
2864-#line 1443 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2865+#line 1540 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2866 {
2867 ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(3) - (2)].expr), (yylocation_stack_[(3) - (2)]));
2868 (yyval.node) = new SchemaPrefix( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)));
2869@@ -2984,7 +3079,7 @@
2870
2871 case 68:
2872 /* Line 661 of lalr1.cc */
2873-#line 1449 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2874+#line 1546 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2875 {
2876 (yyval.node) = new SchemaPrefix( LOC((yyloc)), true );
2877 }
2878@@ -2992,7 +3087,7 @@
2879
2880 case 69:
2881 /* Line 661 of lalr1.cc */
2882-#line 1457 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2883+#line 1554 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2884 {
2885 (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL);
2886
2887@@ -3002,7 +3097,7 @@
2888
2889 case 70:
2890 /* Line 661 of lalr1.cc */
2891-#line 1464 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2892+#line 1561 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2893 {
2894 ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(6) - (4)].expr), (yylocation_stack_[(6) - (4)]));
2895 (yyval.node) = new ModuleImport(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)), SYMTAB((yysemantic_stack_[(6) - (6)].sval)), NULL);
2896@@ -3012,7 +3107,7 @@
2897
2898 case 71:
2899 /* Line 661 of lalr1.cc */
2900-#line 1471 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2901+#line 1568 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2902 {
2903 (yyval.node) = new ModuleImport(LOC((yyloc)),
2904 SYMTAB((yysemantic_stack_[(5) - (3)].sval)),
2905@@ -3024,7 +3119,7 @@
2906
2907 case 72:
2908 /* Line 661 of lalr1.cc */
2909-#line 1480 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2910+#line 1577 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2911 {
2912 ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(8) - (4)].expr), (yylocation_stack_[(8) - (4)]));
2913 (yyval.node) = new ModuleImport(LOC((yyloc)),
2914@@ -3038,7 +3133,7 @@
2915
2916 case 73:
2917 /* Line 661 of lalr1.cc */
2918-#line 1494 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2919+#line 1591 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2920 {
2921 ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(5) - (3)].expr), (yylocation_stack_[(5) - (3)]));
2922 (yyval.node) = new NamespaceDecl( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)), SYMTAB((yysemantic_stack_[(5) - (5)].sval)) );
2923@@ -3047,7 +3142,7 @@
2924
2925 case 74:
2926 /* Line 661 of lalr1.cc */
2927-#line 1503 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2928+#line 1600 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2929 {
2930 (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
2931 ParseConstants::ns_element_default,
2932@@ -3057,7 +3152,7 @@
2933
2934 case 75:
2935 /* Line 661 of lalr1.cc */
2936-#line 1510 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2937+#line 1607 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2938 {
2939 (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
2940 ParseConstants::ns_function_default,
2941@@ -3067,7 +3162,7 @@
2942
2943 case 76:
2944 /* Line 661 of lalr1.cc */
2945-#line 1520 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2946+#line 1617 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2947 {
2948 VFO_DeclList *vdl = new VFO_DeclList( LOC((yyloc)));
2949 vdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
2950@@ -3077,7 +3172,7 @@
2951
2952 case 77:
2953 /* Line 661 of lalr1.cc */
2954-#line 1527 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2955+#line 1624 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2956 {
2957 ((VFO_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
2958 (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
2959@@ -3086,7 +3181,7 @@
2960
2961 case 78:
2962 /* Line 661 of lalr1.cc */
2963-#line 1534 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2964+#line 1631 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2965 {
2966 (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
2967 (yylocation_stack_[(3) - (1)]).step();
2968@@ -3097,7 +3192,7 @@
2969
2970 case 87:
2971 /* Line 661 of lalr1.cc */
2972-#line 1557 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2973+#line 1654 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2974 {
2975 (yyval.node) = new DecimalFormatNode(LOC((yyloc)), (yysemantic_stack_[(4) - (4)].vstrpair));
2976 delete (yysemantic_stack_[(4) - (4)].vstrpair);
2977@@ -3106,7 +3201,7 @@
2978
2979 case 88:
2980 /* Line 661 of lalr1.cc */
2981-#line 1563 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2982+#line 1660 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2983 {
2984 (yyval.node) = new DecimalFormatNode(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), (yysemantic_stack_[(4) - (4)].vstrpair));
2985 delete (yysemantic_stack_[(4) - (4)].vstrpair);
2986@@ -3115,7 +3210,7 @@
2987
2988 case 89:
2989 /* Line 661 of lalr1.cc */
2990-#line 1572 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2991+#line 1669 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2992 {
2993 (yyval.vstrpair) = new vector<string_pair_t>();
2994 (yyval.vstrpair)->push_back( *(yysemantic_stack_[(1) - (1)].strpair) );
2995@@ -3125,7 +3220,7 @@
2996
2997 case 90:
2998 /* Line 661 of lalr1.cc */
2999-#line 1579 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3000+#line 1676 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3001 {
3002 (yysemantic_stack_[(2) - (1)].vstrpair)->push_back( *(yysemantic_stack_[(2) - (2)].strpair) );
3003 delete (yysemantic_stack_[(2) - (2)].strpair);
3004@@ -3135,7 +3230,7 @@
3005
3006 case 91:
3007 /* Line 661 of lalr1.cc */
3008-#line 1589 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3009+#line 1686 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3010 {
3011 StringLiteral *sl = static_cast<StringLiteral*>((yysemantic_stack_[(3) - (3)].expr));
3012 (yyval.strpair) = new string_pair_t( (yysemantic_stack_[(3) - (1)].strval), sl->get_strval().str() );
3013@@ -3145,67 +3240,67 @@
3014
3015 case 92:
3016 /* Line 661 of lalr1.cc */
3017-#line 1598 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3018+#line 1695 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3019 { (yyval.strval) = "decimal-separator"; }
3020 break;
3021
3022 case 93:
3023 /* Line 661 of lalr1.cc */
3024-#line 1599 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3025+#line 1696 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3026 { (yyval.strval) = "digit"; }
3027 break;
3028
3029 case 94:
3030 /* Line 661 of lalr1.cc */
3031-#line 1600 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3032+#line 1697 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3033 { (yyval.strval) = "grouping-separator"; }
3034 break;
3035
3036 case 95:
3037 /* Line 661 of lalr1.cc */
3038-#line 1601 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3039+#line 1698 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3040 { (yyval.strval) = "infinity"; }
3041 break;
3042
3043 case 96:
3044 /* Line 661 of lalr1.cc */
3045-#line 1602 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3046+#line 1699 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3047 { (yyval.strval) = "minus-sign"; }
3048 break;
3049
3050 case 97:
3051 /* Line 661 of lalr1.cc */
3052-#line 1603 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3053+#line 1700 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3054 { (yyval.strval) = "NaN"; }
3055 break;
3056
3057 case 98:
3058 /* Line 661 of lalr1.cc */
3059-#line 1604 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3060+#line 1701 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3061 { (yyval.strval) = "pattern-separator"; }
3062 break;
3063
3064 case 99:
3065 /* Line 661 of lalr1.cc */
3066-#line 1605 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3067+#line 1702 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3068 { (yyval.strval) = "percent"; }
3069 break;
3070
3071 case 100:
3072 /* Line 661 of lalr1.cc */
3073-#line 1606 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3074+#line 1703 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3075 { (yyval.strval) = "per-mille"; }
3076 break;
3077
3078 case 101:
3079 /* Line 661 of lalr1.cc */
3080-#line 1607 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3081+#line 1704 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3082 { (yyval.strval) = "zero-digit"; }
3083 break;
3084
3085 case 102:
3086 /* Line 661 of lalr1.cc */
3087-#line 1613 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3088+#line 1710 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3089 {
3090 (yyval.node) = new OptionDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)));
3091
3092@@ -3224,7 +3319,7 @@
3093
3094 case 103:
3095 /* Line 661 of lalr1.cc */
3096-#line 1632 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3097+#line 1729 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3098 {
3099 (yyval.node) = new FTOptionDecl( LOC((yyloc)), dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (3)].node)) );
3100 }
3101@@ -3232,7 +3327,7 @@
3102
3103 case 104:
3104 /* Line 661 of lalr1.cc */
3105-#line 1640 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3106+#line 1737 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3107 {
3108 (yyval.node) = (yysemantic_stack_[(4) - (4)].node);
3109 }
3110@@ -3240,7 +3335,7 @@
3111
3112 case 105:
3113 /* Line 661 of lalr1.cc */
3114-#line 1648 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3115+#line 1745 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3116 {
3117 CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(3) - (3)].node));
3118 d->theType = (yysemantic_stack_[(3) - (2)].node);
3119@@ -3250,7 +3345,7 @@
3120
3121 case 106:
3122 /* Line 661 of lalr1.cc */
3123-#line 1655 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3124+#line 1752 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3125 {
3126 (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
3127 }
3128@@ -3258,7 +3353,7 @@
3129
3130 case 107:
3131 /* Line 661 of lalr1.cc */
3132-#line 1663 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3133+#line 1760 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3134 {
3135 CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(1) - (1)].node));
3136 d->theIsExternal = false;
3137@@ -3268,7 +3363,7 @@
3138
3139 case 108:
3140 /* Line 661 of lalr1.cc */
3141-#line 1670 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3142+#line 1767 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3143 {
3144 (yyval.node) = new CtxItemDecl(LOC((yyloc)), NULL);
3145 }
3146@@ -3276,7 +3371,7 @@
3147
3148 case 109:
3149 /* Line 661 of lalr1.cc */
3150-#line 1675 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3151+#line 1772 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3152 {
3153 (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
3154 }
3155@@ -3284,7 +3379,7 @@
3156
3157 case 110:
3158 /* Line 661 of lalr1.cc */
3159-#line 1683 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3160+#line 1780 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3161 {
3162 (yyval.node) = new CtxItemDecl(LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
3163 }
3164@@ -3292,7 +3387,7 @@
3165
3166 case 111:
3167 /* Line 661 of lalr1.cc */
3168-#line 1691 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3169+#line 1788 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3170 {
3171 std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(4) - (2)].varnametype)));
3172
3173@@ -3309,7 +3404,7 @@
3174
3175 case 112:
3176 /* Line 661 of lalr1.cc */
3177-#line 1705 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3178+#line 1802 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3179 {
3180 std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(3) - (2)].varnametype)));
3181
3182@@ -3326,7 +3421,7 @@
3183
3184 case 113:
3185 /* Line 661 of lalr1.cc */
3186-#line 1719 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3187+#line 1816 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3188 {
3189 std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(5) - (2)].varnametype)));
3190
3191@@ -3343,7 +3438,7 @@
3192
3193 case 114:
3194 /* Line 661 of lalr1.cc */
3195-#line 1736 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3196+#line 1833 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3197 {
3198 (yyval.varnametype) = new VarNameAndType(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL, NULL);
3199 }
3200@@ -3351,7 +3446,7 @@
3201
3202 case 115:
3203 /* Line 661 of lalr1.cc */
3204-#line 1741 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3205+#line 1838 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3206 {
3207 (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
3208 static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)),
3209@@ -3362,7 +3457,7 @@
3210
3211 case 116:
3212 /* Line 661 of lalr1.cc */
3213-#line 1749 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3214+#line 1846 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3215 {
3216 (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
3217 static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
3218@@ -3373,7 +3468,7 @@
3219
3220 case 117:
3221 /* Line 661 of lalr1.cc */
3222-#line 1757 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3223+#line 1854 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3224 {
3225 (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
3226 static_cast<QName*>((yysemantic_stack_[(5) - (4)].expr)),
3227@@ -3384,7 +3479,7 @@
3228
3229 case 118:
3230 /* Line 661 of lalr1.cc */
3231-#line 1768 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3232+#line 1865 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3233 {
3234 (yyval.node) = new AnnotationListParsenode(LOC((yyloc)), static_cast<AnnotationParsenode*>((yysemantic_stack_[(1) - (1)].node)));
3235 }
3236@@ -3392,7 +3487,7 @@
3237
3238 case 119:
3239 /* Line 661 of lalr1.cc */
3240-#line 1773 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3241+#line 1870 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3242 {
3243 static_cast<AnnotationListParsenode*>((yysemantic_stack_[(2) - (1)].node))->push_back(static_cast<AnnotationParsenode*>((yysemantic_stack_[(2) - (2)].node)));
3244 (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
3245@@ -3401,7 +3496,7 @@
3246
3247 case 120:
3248 /* Line 661 of lalr1.cc */
3249-#line 1782 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3250+#line 1879 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3251 {
3252 (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))), NULL);
3253 }
3254@@ -3409,7 +3504,7 @@
3255
3256 case 121:
3257 /* Line 661 of lalr1.cc */
3258-#line 1787 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3259+#line 1884 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3260 {
3261 (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
3262 new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval))),
3263@@ -3419,7 +3514,7 @@
3264
3265 case 122:
3266 /* Line 661 of lalr1.cc */
3267-#line 1794 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3268+#line 1891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3269 {
3270 (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), true), NULL);
3271 }
3272@@ -3427,7 +3522,7 @@
3273
3274 case 123:
3275 /* Line 661 of lalr1.cc */
3276-#line 1799 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3277+#line 1896 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3278 {
3279 (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
3280 new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval)), true),
3281@@ -3437,7 +3532,7 @@
3282
3283 case 124:
3284 /* Line 661 of lalr1.cc */
3285-#line 1809 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3286+#line 1906 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3287 {
3288 (yyval.node) = new AnnotationLiteralListParsenode(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr));
3289 }
3290@@ -3445,7 +3540,7 @@
3291
3292 case 125:
3293 /* Line 661 of lalr1.cc */
3294-#line 1814 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3295+#line 1911 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3296 {
3297 static_cast<AnnotationLiteralListParsenode*>((yysemantic_stack_[(3) - (1)].node))->push_back((yysemantic_stack_[(3) - (3)].expr));
3298 (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
3299@@ -3454,7 +3549,7 @@
3300
3301 case 126:
3302 /* Line 661 of lalr1.cc */
3303-#line 1823 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3304+#line 1920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3305 {
3306 static_cast<FunctionDecl*>((yysemantic_stack_[(2) - (2)].node))->setComment( SYMTAB((yysemantic_stack_[(2) - (1)].sval)) );
3307 (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
3308@@ -3463,7 +3558,7 @@
3309
3310 case 127:
3311 /* Line 661 of lalr1.cc */
3312-#line 1829 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3313+#line 1926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3314 {
3315 FunctionDecl* fdecl = static_cast<FunctionDecl*>((yysemantic_stack_[(3) - (3)].node));
3316
3317@@ -3476,7 +3571,7 @@
3318
3319 case 130:
3320 /* Line 661 of lalr1.cc */
3321-#line 1848 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3322+#line 1945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3323 {
3324 exprnode* body = (yysemantic_stack_[(4) - (4)].expr);
3325 if (body == NULL)
3326@@ -3495,7 +3590,7 @@
3327
3328 case 131:
3329 /* Line 661 of lalr1.cc */
3330-#line 1863 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3331+#line 1960 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3332 {
3333 (yyval.node) = new FunctionDecl(LOC ((yyloc)),
3334 static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
3335@@ -3510,7 +3605,7 @@
3336
3337 case 132:
3338 /* Line 661 of lalr1.cc */
3339-#line 1878 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3340+#line 1975 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3341 {
3342 exprnode* body = (yysemantic_stack_[(5) - (5)].expr);
3343 if (body == NULL)
3344@@ -3529,7 +3624,7 @@
3345
3346 case 133:
3347 /* Line 661 of lalr1.cc */
3348-#line 1894 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3349+#line 1991 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3350 {
3351 (yyval.node) = new FunctionDecl(LOC((yyloc)),
3352 static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
3353@@ -3544,7 +3639,7 @@
3354
3355 case 134:
3356 /* Line 661 of lalr1.cc */
3357-#line 1909 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3358+#line 2006 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3359 {
3360 (yyval.fnsig) = new FunctionSig(NULL);
3361 }
3362@@ -3552,7 +3647,7 @@
3363
3364 case 135:
3365 /* Line 661 of lalr1.cc */
3366-#line 1914 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3367+#line 2011 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3368 {
3369 (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (2)].node)));
3370 }
3371@@ -3560,7 +3655,7 @@
3372
3373 case 136:
3374 /* Line 661 of lalr1.cc */
3375-#line 1919 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3376+#line 2016 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3377 {
3378 (yyval.fnsig) = new FunctionSig(NULL, dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node)));
3379 }
3380@@ -3568,7 +3663,7 @@
3381
3382 case 137:
3383 /* Line 661 of lalr1.cc */
3384-#line 1924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3385+#line 2021 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3386 {
3387 (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(5) - (2)].node)), dynamic_cast<SequenceType*>((yysemantic_stack_[(5) - (5)].node)));
3388 }
3389@@ -3576,7 +3671,7 @@
3390
3391 case 138:
3392 /* Line 661 of lalr1.cc */
3393-#line 1932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3394+#line 2029 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3395 {
3396 ParamList *pl = new ParamList( LOC((yyloc)) );
3397 pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(1) - (1)].node)) );
3398@@ -3586,7 +3681,7 @@
3399
3400 case 139:
3401 /* Line 661 of lalr1.cc */
3402-#line 1939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3403+#line 2036 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3404 {
3405 if ( ParamList *pl = dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (1)].node)) )
3406 pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(3) - (3)].node)) );
3407@@ -3597,7 +3692,7 @@
3408
3409 case 140:
3410 /* Line 661 of lalr1.cc */
3411-#line 1950 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3412+#line 2047 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3413 {
3414 (yyval.node) = new Param(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL);
3415 }
3416@@ -3605,7 +3700,7 @@
3417
3418 case 141:
3419 /* Line 661 of lalr1.cc */
3420-#line 1955 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3421+#line 2052 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3422 {
3423 (yyval.node) = new Param(LOC((yyloc)),
3424 static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
3425@@ -3615,7 +3710,7 @@
3426
3427 case 142:
3428 /* Line 661 of lalr1.cc */
3429-#line 1965 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3430+#line 2062 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3431 {
3432 (yyval.node) = new CollectionDecl( LOC((yyloc)),
3433 static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)),
3434@@ -3628,7 +3723,7 @@
3435
3436 case 143:
3437 /* Line 661 of lalr1.cc */
3438-#line 1974 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3439+#line 2071 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3440 {
3441 (yyval.node) = new CollectionDecl( LOC((yyloc)),
3442 static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
3443@@ -3641,7 +3736,7 @@
3444
3445 case 144:
3446 /* Line 661 of lalr1.cc */
3447-#line 1983 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3448+#line 2080 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3449 {
3450 (yyval.node) = new CollectionDecl( LOC((yyloc)),
3451 static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
3452@@ -3654,7 +3749,7 @@
3453
3454 case 145:
3455 /* Line 661 of lalr1.cc */
3456-#line 1992 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3457+#line 2089 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3458 {
3459 (yyval.node) = new CollectionDecl( LOC((yyloc)),
3460 static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)),
3461@@ -3667,7 +3762,7 @@
3462
3463 case 146:
3464 /* Line 661 of lalr1.cc */
3465-#line 2004 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3466+#line 2101 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3467 {
3468 (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
3469 }
3470@@ -3675,7 +3770,7 @@
3471
3472 case 147:
3473 /* Line 661 of lalr1.cc */
3474-#line 2008 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3475+#line 2105 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3476 {
3477 (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
3478 (yysemantic_stack_[(2) - (1)].node),
3479@@ -3685,7 +3780,7 @@
3480
3481 case 148:
3482 /* Line 661 of lalr1.cc */
3483-#line 2014 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3484+#line 2111 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3485 {
3486 (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
3487 }
3488@@ -3693,7 +3788,7 @@
3489
3490 case 149:
3491 /* Line 661 of lalr1.cc */
3492-#line 2018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3493+#line 2115 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3494 {
3495 (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
3496 (yysemantic_stack_[(2) - (1)].node),
3497@@ -3704,7 +3799,7 @@
3498
3499 case 150:
3500 /* Line 661 of lalr1.cc */
3501-#line 2028 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3502+#line 2125 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3503 {
3504 (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
3505 static_cast<QName*>((yysemantic_stack_[(8) - (3)].expr)),
3506@@ -3718,7 +3813,7 @@
3507
3508 case 151:
3509 /* Line 661 of lalr1.cc */
3510-#line 2038 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3511+#line 2135 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3512 {
3513 (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
3514 static_cast<QName*>((yysemantic_stack_[(9) - (4)].expr)),
3515@@ -3732,7 +3827,7 @@
3516
3517 case 152:
3518 /* Line 661 of lalr1.cc */
3519-#line 2051 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3520+#line 2148 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3521 {
3522 IndexKeyList* keyList = new IndexKeyList(LOC((yyloc)));
3523 keyList->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(1) - (1)].node)));
3524@@ -3742,7 +3837,7 @@
3525
3526 case 153:
3527 /* Line 661 of lalr1.cc */
3528-#line 2057 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3529+#line 2154 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3530 {
3531 dynamic_cast<IndexKeyList*>((yysemantic_stack_[(3) - (1)].node))->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(3) - (3)].node)));
3532 (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
3533@@ -3751,7 +3846,7 @@
3534
3535 case 154:
3536 /* Line 661 of lalr1.cc */
3537-#line 2066 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3538+#line 2163 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3539 {
3540 (yyval.node) = new IndexKeySpec(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL, NULL);
3541 }
3542@@ -3759,7 +3854,7 @@
3543
3544 case 155:
3545 /* Line 661 of lalr1.cc */
3546-#line 2071 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3547+#line 2168 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3548 {
3549 (yyval.node) = new IndexKeySpec(LOC((yyloc)),
3550 (yysemantic_stack_[(2) - (1)].expr),
3551@@ -3770,7 +3865,7 @@
3552
3553 case 156:
3554 /* Line 661 of lalr1.cc */
3555-#line 2078 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3556+#line 2175 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3557 {
3558 (yyval.node) = new IndexKeySpec(LOC((yyloc)),
3559 (yysemantic_stack_[(2) - (1)].expr),
3560@@ -3781,7 +3876,7 @@
3561
3562 case 157:
3563 /* Line 661 of lalr1.cc */
3564-#line 2085 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3565+#line 2182 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3566 {
3567 (yyval.node) = new IndexKeySpec(LOC((yyloc)),
3568 (yysemantic_stack_[(3) - (1)].expr),
3569@@ -3792,7 +3887,7 @@
3570
3571 case 158:
3572 /* Line 661 of lalr1.cc */
3573-#line 2097 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3574+#line 2194 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3575 {
3576 (yyval.node) = new ICCollSimpleCheck(LOC((yyloc)),
3577 static_cast<QName*>((yysemantic_stack_[(11) - (4)].expr)),
3578@@ -3804,7 +3899,7 @@
3579
3580 case 159:
3581 /* Line 661 of lalr1.cc */
3582-#line 2107 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3583+#line 2204 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3584 {
3585 (yyval.node) = new ICCollUniqueKeyCheck(LOC((yyloc)),
3586 static_cast<QName*>((yysemantic_stack_[(14) - (4)].expr)),
3587@@ -3816,7 +3911,7 @@
3588
3589 case 160:
3590 /* Line 661 of lalr1.cc */
3591-#line 2117 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3592+#line 2214 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3593 {
3594 (yyval.node) = new ICCollForeachNode(LOC((yyloc)),
3595 static_cast<QName*>((yysemantic_stack_[(13) - (4)].expr)),
3596@@ -3828,7 +3923,7 @@
3597
3598 case 161:
3599 /* Line 661 of lalr1.cc */
3600-#line 2128 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3601+#line 2225 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3602 {
3603 (yyval.node) = new ICForeignKey( LOC((yyloc)),
3604 static_cast<QName*>((yysemantic_stack_[(22) - (4)].expr)),
3605@@ -3843,7 +3938,7 @@
3606
3607 case 162:
3608 /* Line 661 of lalr1.cc */
3609-#line 2144 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3610+#line 2241 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3611 {
3612 if ((yysemantic_stack_[(1) - (1)].expr) == NULL)
3613 {
3614@@ -3863,7 +3958,7 @@
3615
3616 case 163:
3617 /* Line 661 of lalr1.cc */
3618-#line 2164 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3619+#line 2261 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3620 {
3621 (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
3622 }
3623@@ -3871,7 +3966,7 @@
3624
3625 case 164:
3626 /* Line 661 of lalr1.cc */
3627-#line 2168 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3628+#line 2265 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3629 {
3630 (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
3631 }
3632@@ -3879,7 +3974,7 @@
3633
3634 case 165:
3635 /* Line 661 of lalr1.cc */
3636-#line 2172 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3637+#line 2269 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3638 {
3639 (yyval.expr) = NULL;
3640 }
3641@@ -3887,7 +3982,7 @@
3642
3643 case 166:
3644 /* Line 661 of lalr1.cc */
3645-#line 2180 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3646+#line 2277 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3647 {
3648 (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
3649 }
3650@@ -3895,7 +3990,7 @@
3651
3652 case 167:
3653 /* Line 661 of lalr1.cc */
3654-#line 2184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3655+#line 2281 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3656 {
3657 (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
3658 }
3659@@ -3903,7 +3998,7 @@
3660
3661 case 168:
3662 /* Line 661 of lalr1.cc */
3663-#line 2188 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3664+#line 2285 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3665 {
3666 (yyval.expr) = NULL;
3667 }
3668@@ -3911,7 +4006,7 @@
3669
3670 case 169:
3671 /* Line 661 of lalr1.cc */
3672-#line 2196 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3673+#line 2293 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3674 {
3675 (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
3676 }
3677@@ -3919,7 +4014,7 @@
3678
3679 case 170:
3680 /* Line 661 of lalr1.cc */
3681-#line 2201 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3682+#line 2298 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3683 {
3684 BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
3685
3686@@ -3931,7 +4026,7 @@
3687
3688 case 171:
3689 /* Line 661 of lalr1.cc */
3690-#line 2213 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3691+#line 2310 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3692 {
3693 BlockBody* blk = new BlockBody(LOC((yyloc)));
3694 blk->add((yysemantic_stack_[(1) - (1)].expr));
3695@@ -3941,7 +4036,7 @@
3696
3697 case 172:
3698 /* Line 661 of lalr1.cc */
3699-#line 2220 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3700+#line 2317 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3701 {
3702 BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
3703
3704@@ -3953,7 +4048,7 @@
3705
3706 case 173:
3707 /* Line 661 of lalr1.cc */
3708-#line 2230 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3709+#line 2327 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3710 {
3711 (yyval.expr) = (yysemantic_stack_[(4) - (1)].expr);
3712 (yyval.expr) = (yysemantic_stack_[(4) - (2)].expr);
3713@@ -3968,7 +4063,7 @@
3714
3715 case 187:
3716 /* Line 661 of lalr1.cc */
3717-#line 2263 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3718+#line 2360 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3719 {
3720 (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
3721 }
3722@@ -3976,7 +4071,7 @@
3723
3724 case 188:
3725 /* Line 661 of lalr1.cc */
3726-#line 2271 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3727+#line 2368 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3728 {
3729 BlockBody* block = dynamic_cast<BlockBody*>((yysemantic_stack_[(3) - (2)].expr));
3730
3731@@ -4008,7 +4103,7 @@
3732
3733 case 189:
3734 /* Line 661 of lalr1.cc */
3735-#line 2303 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3736+#line 2400 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3737 {
3738 (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
3739 }
3740@@ -4016,7 +4111,7 @@
3741
3742 case 190:
3743 /* Line 661 of lalr1.cc */
3744-#line 2311 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3745+#line 2408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3746 {
3747 (yyval.expr) = (yysemantic_stack_[(2) - (1)].expr);
3748 }
3749@@ -4024,7 +4119,7 @@
3750
3751 case 191:
3752 /* Line 661 of lalr1.cc */
3753-#line 2319 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3754+#line 2416 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3755 {
3756 VarDeclStmt* vdecl = static_cast<VarDeclStmt*>((yysemantic_stack_[(3) - (1)].expr));
3757 vdecl->add((yysemantic_stack_[(3) - (3)].node));
3758@@ -4034,7 +4129,7 @@
3759
3760 case 192:
3761 /* Line 661 of lalr1.cc */
3762-#line 2326 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3763+#line 2423 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3764 {
3765 VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)), NULL);
3766 vdecl->add((yysemantic_stack_[(2) - (2)].node));
3767@@ -4044,7 +4139,7 @@
3768
3769 case 193:
3770 /* Line 661 of lalr1.cc */
3771-#line 2333 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3772+#line 2430 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3773 {
3774 VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)),
3775 static_cast<AnnotationListParsenode*>((yysemantic_stack_[(3) - (1)].node)));
3776@@ -4055,7 +4150,7 @@
3777
3778 case 194:
3779 /* Line 661 of lalr1.cc */
3780-#line 2344 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3781+#line 2441 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3782 {
3783 LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
3784 static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)),
3785@@ -4068,7 +4163,7 @@
3786
3787 case 195:
3788 /* Line 661 of lalr1.cc */
3789-#line 2353 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3790+#line 2450 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3791 {
3792 LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
3793 static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
3794@@ -4081,7 +4176,7 @@
3795
3796 case 196:
3797 /* Line 661 of lalr1.cc */
3798-#line 2362 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3799+#line 2459 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3800 {
3801 LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
3802 static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
3803@@ -4094,7 +4189,7 @@
3804
3805 case 197:
3806 /* Line 661 of lalr1.cc */
3807-#line 2371 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3808+#line 2468 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3809 {
3810 LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
3811 static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
3812@@ -4107,7 +4202,7 @@
3813
3814 case 198:
3815 /* Line 661 of lalr1.cc */
3816-#line 2384 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3817+#line 2481 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3818 {
3819 (yyval.expr) = new AssignExpr(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)), (yysemantic_stack_[(5) - (4)].expr));
3820 }
3821@@ -4115,7 +4210,7 @@
3822
3823 case 199:
3824 /* Line 661 of lalr1.cc */
3825-#line 2392 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3826+#line 2489 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3827 {
3828 (yyval.expr) = new ApplyExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr));
3829 }
3830@@ -4123,7 +4218,7 @@
3831
3832 case 200:
3833 /* Line 661 of lalr1.cc */
3834-#line 2400 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3835+#line 2497 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3836 {
3837 (yyval.expr) = new ExitExpr(LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr));
3838 }
3839@@ -4131,7 +4226,7 @@
3840
3841 case 201:
3842 /* Line 661 of lalr1.cc */
3843-#line 2408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3844+#line 2505 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3845 {
3846 BlockBody* bb = dynamic_cast<BlockBody *>((yysemantic_stack_[(5) - (5)].expr));
3847 if (bb == NULL)
3848@@ -4146,7 +4241,7 @@
3849
3850 case 202:
3851 /* Line 661 of lalr1.cc */
3852-#line 2423 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3853+#line 2520 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3854 {
3855 (yyval.expr) = new FlowCtlStatement(LOC((yyloc)), FlowCtlStatement::BREAK);
3856 }
3857@@ -4154,7 +4249,7 @@
3858
3859 case 203:
3860 /* Line 661 of lalr1.cc */
3861-#line 2428 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3862+#line 2525 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3863 {
3864 (yyval.expr) = new FlowCtlStatement( LOC((yyloc)), FlowCtlStatement::CONTINUE );
3865 }
3866@@ -4162,7 +4257,7 @@
3867
3868 case 204:
3869 /* Line 661 of lalr1.cc */
3870-#line 2436 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3871+#line 2533 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3872 {
3873 ReturnExpr* re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
3874 (yyval.expr) = new FLWORExpr(LOC((yyloc)),
3875@@ -4176,7 +4271,7 @@
3876
3877 case 205:
3878 /* Line 661 of lalr1.cc */
3879-#line 2450 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3880+#line 2547 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3881 {
3882 exprnode* retExpr = (yysemantic_stack_[(2) - (2)].expr);
3883
3884@@ -4193,7 +4288,7 @@
3885
3886 case 206:
3887 /* Line 661 of lalr1.cc */
3888-#line 2467 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3889+#line 2564 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3890 {
3891 exprnode* thenExpr = (yysemantic_stack_[(8) - (6)].expr);
3892 exprnode* elseExpr = (yysemantic_stack_[(8) - (8)].expr);
3893@@ -4218,7 +4313,7 @@
3894
3895 case 207:
3896 /* Line 661 of lalr1.cc */
3897-#line 2492 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3898+#line 2589 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3899 {
3900 (yyval.expr) = new TryExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), (yysemantic_stack_[(3) - (3)].expr));
3901 }
3902@@ -4226,7 +4321,7 @@
3903
3904 case 208:
3905 /* Line 661 of lalr1.cc */
3906-#line 2500 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3907+#line 2597 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3908 {
3909 CatchListExpr* cle = new CatchListExpr( LOC((yyloc)) );
3910 cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
3911@@ -4236,7 +4331,7 @@
3912
3913 case 209:
3914 /* Line 661 of lalr1.cc */
3915-#line 2507 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3916+#line 2604 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3917 {
3918 CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
3919 if ( cle )
3920@@ -4247,7 +4342,7 @@
3921
3922 case 210:
3923 /* Line 661 of lalr1.cc */
3924-#line 2518 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3925+#line 2615 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3926 {
3927 (yyval.expr) = new CatchExpr(LOC((yyloc)), *(yysemantic_stack_[(3) - (2)].name_test_list), (yysemantic_stack_[(3) - (3)].expr));
3928 delete (yysemantic_stack_[(3) - (2)].name_test_list);
3929@@ -4256,7 +4351,7 @@
3930
3931 case 211:
3932 /* Line 661 of lalr1.cc */
3933-#line 2527 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3934+#line 2624 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3935 {
3936 (yyval.expr) = new BlockBody(LOC((yyloc)));
3937 }
3938@@ -4264,7 +4359,7 @@
3939
3940 case 212:
3941 /* Line 661 of lalr1.cc */
3942-#line 2535 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3943+#line 2632 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3944 {
3945 (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
3946 }
3947@@ -4272,7 +4367,7 @@
3948
3949 case 213:
3950 /* Line 661 of lalr1.cc */
3951-#line 2540 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3952+#line 2637 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3953 {
3954 Expr* expr = dynamic_cast<Expr*>((yysemantic_stack_[(3) - (1)].expr));
3955 if ( !expr )
3956@@ -4287,7 +4382,7 @@
3957
3958 case 214:
3959 /* Line 661 of lalr1.cc */
3960-#line 2553 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3961+#line 2650 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3962 {
3963 (yyval.expr) = (yysemantic_stack_[(3) - (1)].expr);
3964 (yyval.expr) = (yysemantic_stack_[(3) - (3)].expr);
3965@@ -4304,7 +4399,7 @@
3966
3967 case 233:
3968 /* Line 661 of lalr1.cc */
3969-#line 2600 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3970+#line 2697 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3971 {
3972 ReturnExpr *re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
3973 (yyval.expr) = new FLWORExpr(LOC((yyloc)),
3974@@ -4318,7 +4413,7 @@
3975
3976 case 234:
3977 /* Line 661 of lalr1.cc */
3978-#line 2614 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3979+#line 2711 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3980 {
3981 (yyval.expr) = new ReturnExpr( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr) );
3982 }
3983@@ -4326,14 +4421,14 @@
3984
3985 case 236:
3986 /* Line 661 of lalr1.cc */
3987-#line 2626 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3988+#line 2723 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3989 {
3990 }
3991 break;
3992
3993 case 237:
3994 /* Line 661 of lalr1.cc */
3995-#line 2633 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3996+#line 2730 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
3997 {
3998 (yyval.strval) = parser::the_sliding;
3999 }
4000@@ -4341,7 +4436,7 @@
4001
4002 case 238:
4003 /* Line 661 of lalr1.cc */
4004-#line 2638 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4005+#line 2735 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4006 {
4007 (yyval.strval) = parser::the_tumbling;
4008 }
4009@@ -4349,7 +4444,7 @@
4010
4011 case 239:
4012 /* Line 661 of lalr1.cc */
4013-#line 2646 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4014+#line 2743 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4015 {
4016 (yyval.strval) = parser::the_start;
4017 }
4018@@ -4357,7 +4452,7 @@
4019
4020 case 240:
4021 /* Line 661 of lalr1.cc */
4022-#line 2651 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4023+#line 2748 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4024 {
4025 (yyval.strval) = parser::the_end;
4026 }
4027@@ -4365,7 +4460,7 @@
4028
4029 case 241:
4030 /* Line 661 of lalr1.cc */
4031-#line 2656 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4032+#line 2753 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4033 {
4034 (yyval.strval) = parser::the_only_end;
4035 }
4036@@ -4373,7 +4468,7 @@
4037
4038 case 242:
4039 /* Line 661 of lalr1.cc */
4040-#line 2664 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4041+#line 2761 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4042 {
4043 (yyval.node) = new FLWORWinCond(LOC((yyloc)),
4044 dynamic_cast<WindowVars*>((yysemantic_stack_[(4) - (2)].node)),
4045@@ -4385,7 +4480,7 @@
4046
4047 case 243:
4048 /* Line 661 of lalr1.cc */
4049-#line 2673 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4050+#line 2770 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4051 {
4052 (yyval.node) = new FLWORWinCond(LOC((yyloc)),
4053 NULL,
4054@@ -4397,7 +4492,7 @@
4055
4056 case 244:
4057 /* Line 661 of lalr1.cc */
4058-#line 2685 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4059+#line 2782 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4060 {
4061 (yyval.node) = new WindowClause (LOC ((yyloc)),
4062 ((yysemantic_stack_[(5) - (2)].strval) == parser::the_tumbling ?
4063@@ -4411,7 +4506,7 @@
4064
4065 case 245:
4066 /* Line 661 of lalr1.cc */
4067-#line 2695 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4068+#line 2792 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4069 {
4070 (yyval.node) = new WindowClause (LOC ((yyloc)),
4071 ((yysemantic_stack_[(4) - (2)].strval) == parser::the_tumbling ?
4072@@ -4424,7 +4519,7 @@
4073
4074 case 246:
4075 /* Line 661 of lalr1.cc */
4076-#line 2708 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4077+#line 2805 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4078 {
4079 (yyval.node) = new CountClause(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
4080 }
4081@@ -4432,7 +4527,7 @@
4082
4083 case 255:
4084 /* Line 661 of lalr1.cc */
4085-#line 2732 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4086+#line 2829 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4087 {
4088 FLWORClauseList *fcl = new FLWORClauseList( LOC((yyloc)) );
4089 fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(1) - (1)].node)) );
4090@@ -4442,7 +4537,7 @@
4091
4092 case 256:
4093 /* Line 661 of lalr1.cc */
4094-#line 2739 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4095+#line 2836 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4096 {
4097 FLWORClauseList *fcl = dynamic_cast<FLWORClauseList*>((yysemantic_stack_[(2) - (1)].node));
4098 fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(2) - (2)].node)) );
4099@@ -4452,7 +4547,7 @@
4100
4101 case 257:
4102 /* Line 661 of lalr1.cc */
4103-#line 2749 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4104+#line 2846 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4105 {
4106 (yyval.node) = new ForClause(LOC((yyloc)), dynamic_cast<VarInDeclList*>((yysemantic_stack_[(3) - (3)].node)));
4107 }
4108@@ -4460,7 +4555,7 @@
4109
4110 case 258:
4111 /* Line 661 of lalr1.cc */
4112-#line 2754 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4113+#line 2851 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4114 {
4115 (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
4116 error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected qualified name \""
4117@@ -4472,7 +4567,7 @@
4118
4119 case 259:
4120 /* Line 661 of lalr1.cc */
4121-#line 2763 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4122+#line 2860 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4123 {
4124 (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
4125 error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected qualified name \""
4126@@ -4484,7 +4579,7 @@
4127
4128 case 260:
4129 /* Line 661 of lalr1.cc */
4130-#line 2772 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4131+#line 2869 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4132 {
4133 (yyval.node) = NULL;
4134 error((yylocation_stack_[(2) - (2)]), "");
4135@@ -4494,7 +4589,7 @@
4136
4137 case 262:
4138 /* Line 661 of lalr1.cc */
4139-#line 2786 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4140+#line 2883 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4141 {
4142
4143 }
4144@@ -4502,7 +4597,7 @@
4145
4146 case 263:
4147 /* Line 661 of lalr1.cc */
4148-#line 2794 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4149+#line 2891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4150 {
4151 VarInDeclList* vdl = new VarInDeclList( LOC((yyloc)) );
4152 vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
4153@@ -4512,7 +4607,7 @@
4154
4155 case 264:
4156 /* Line 661 of lalr1.cc */
4157-#line 2801 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4158+#line 2898 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4159 {
4160 if ( VarInDeclList* vdl = dynamic_cast<VarInDeclList*>((yysemantic_stack_[(4) - (1)].node)) )
4161 vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
4162@@ -4522,7 +4617,7 @@
4163
4164 case 265:
4165 /* Line 661 of lalr1.cc */
4166-#line 2809 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4167+#line 2906 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4168 {
4169 (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
4170 error((yylocation_stack_[(3) - (3)]), "syntax error, unexpected QName \""
4171@@ -4534,7 +4629,7 @@
4172
4173 case 266:
4174 /* Line 661 of lalr1.cc */
4175-#line 2821 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4176+#line 2918 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4177 {
4178 (yyval.node) = new VarInDecl(LOC((yyloc)),
4179 static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)),
4180@@ -4548,7 +4643,7 @@
4181
4182 case 267:
4183 /* Line 661 of lalr1.cc */
4184-#line 2831 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4185+#line 2928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4186 {
4187 (yyval.node) = new VarInDecl(LOC((yyloc)),
4188 static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
4189@@ -4562,7 +4657,7 @@
4190
4191 case 268:
4192 /* Line 661 of lalr1.cc */
4193-#line 2841 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4194+#line 2938 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4195 {
4196 (yyval.node) = new VarInDecl(LOC((yyloc)),
4197 static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
4198@@ -4576,7 +4671,7 @@
4199
4200 case 269:
4201 /* Line 661 of lalr1.cc */
4202-#line 2851 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4203+#line 2948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4204 {
4205 (yyval.node) = new VarInDecl(LOC((yyloc)),
4206 static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
4207@@ -4590,7 +4685,7 @@
4208
4209 case 270:
4210 /* Line 661 of lalr1.cc */
4211-#line 2861 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4212+#line 2958 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4213 {
4214 (yyval.node) = new VarInDecl(LOC((yyloc)),
4215 static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
4216@@ -4604,7 +4699,7 @@
4217
4218 case 271:
4219 /* Line 661 of lalr1.cc */
4220-#line 2871 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4221+#line 2968 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4222 {
4223 (yyval.node) = new VarInDecl(LOC((yyloc)),
4224 static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
4225@@ -4618,7 +4713,7 @@
4226
4227 case 272:
4228 /* Line 661 of lalr1.cc */
4229-#line 2881 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4230+#line 2978 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4231 {
4232 (yyval.node) = new VarInDecl(LOC((yyloc)),
4233 static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
4234@@ -4632,7 +4727,7 @@
4235
4236 case 273:
4237 /* Line 661 of lalr1.cc */
4238-#line 2891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4239+#line 2988 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4240 {
4241 (yyval.node) = new VarInDecl(LOC((yyloc)),
4242 static_cast<QName*>((yysemantic_stack_[(7) - (1)].expr)),
4243@@ -4646,7 +4741,7 @@
4244
4245 case 274:
4246 /* Line 661 of lalr1.cc */
4247-#line 2902 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4248+#line 2999 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4249 {
4250 (yyval.node) = new VarInDecl(LOC((yyloc)),
4251 static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
4252@@ -4659,7 +4754,7 @@
4253
4254 case 275:
4255 /* Line 661 of lalr1.cc */
4256-#line 2911 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4257+#line 3008 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4258 {
4259 (yyval.node) = new VarInDecl(LOC((yyloc)),
4260 static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
4261@@ -4673,7 +4768,7 @@
4262
4263 case 276:
4264 /* Line 661 of lalr1.cc */
4265-#line 2921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4266+#line 3018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4267 {
4268 (yyval.node) = new VarInDecl(LOC ((yyloc)),
4269 static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
4270@@ -4687,7 +4782,7 @@
4271
4272 case 277:
4273 /* Line 661 of lalr1.cc */
4274-#line 2931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4275+#line 3028 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4276 {
4277 (yyval.node) = new VarInDecl(LOC ((yyloc)),
4278 static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
4279@@ -4701,7 +4796,7 @@
4280
4281 case 278:
4282 /* Line 661 of lalr1.cc */
4283-#line 2947 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4284+#line 3044 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4285 {
4286 (yyval.node) = new PositionalVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
4287 }
4288@@ -4709,7 +4804,7 @@
4289
4290 case 279:
4291 /* Line 661 of lalr1.cc */
4292-#line 2956 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4293+#line 3053 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4294 {
4295 (yyval.node) = new FTScoreVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
4296 }
4297@@ -4717,7 +4812,7 @@
4298
4299 case 280:
4300 /* Line 661 of lalr1.cc */
4301-#line 2965 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4302+#line 3062 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4303 {
4304 (yyval.node) = new LetClause( LOC((yyloc)), dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(2) - (2)].node)) );
4305 }
4306@@ -4725,7 +4820,7 @@
4307
4308 case 281:
4309 /* Line 661 of lalr1.cc */
4310-#line 2973 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4311+#line 3070 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4312 {
4313 VarGetsDeclList *vgdl = new VarGetsDeclList( LOC((yyloc)) );
4314 vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(1) - (1)].node)) );
4315@@ -4735,7 +4830,7 @@
4316
4317 case 282:
4318 /* Line 661 of lalr1.cc */
4319-#line 2979 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4320+#line 3076 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4321 {
4322 if( VarGetsDeclList *vgdl = dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(3) - (1)].node)) )
4323 vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(3) - (3)].node)) );
4324@@ -4745,7 +4840,7 @@
4325
4326 case 283:
4327 /* Line 661 of lalr1.cc */
4328-#line 2991 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4329+#line 3088 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4330 {
4331 (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
4332 static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
4333@@ -4757,7 +4852,7 @@
4334
4335 case 284:
4336 /* Line 661 of lalr1.cc */
4337-#line 2999 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4338+#line 3096 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4339 {
4340 (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
4341 static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
4342@@ -4769,7 +4864,7 @@
4343
4344 case 285:
4345 /* Line 661 of lalr1.cc */
4346-#line 3009 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4347+#line 3106 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4348 {
4349 (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
4350 dynamic_cast<FTScoreVar*>((yysemantic_stack_[(3) - (1)].node))->get_var_name(),
4351@@ -4781,7 +4876,7 @@
4352
4353 case 286:
4354 /* Line 661 of lalr1.cc */
4355-#line 3017 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4356+#line 3114 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4357 {
4358 (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
4359 static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
4360@@ -4793,7 +4888,7 @@
4361
4362 case 287:
4363 /* Line 661 of lalr1.cc */
4364-#line 3029 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4365+#line 3126 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4366 {
4367 (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
4368 static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
4369@@ -4803,7 +4898,7 @@
4370
4371 case 288:
4372 /* Line 661 of lalr1.cc */
4373-#line 3035 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4374+#line 3132 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4375 {
4376 (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
4377 static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
4378@@ -4814,7 +4909,7 @@
4379
4380 case 290:
4381 /* Line 661 of lalr1.cc */
4382-#line 3048 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4383+#line 3145 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4384 {
4385 (yyval.node) = new WindowVars(LOC((yyloc)), NULL, static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL);
4386 }
4387@@ -4822,7 +4917,7 @@
4388
4389 case 291:
4390 /* Line 661 of lalr1.cc */
4391-#line 3052 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4392+#line 3149 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4393 {
4394 (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
4395 dynamic_cast<WindowVars *>((yyval.node))->set_curr(static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)));
4396@@ -4831,7 +4926,7 @@
4397
4398 case 292:
4399 /* Line 661 of lalr1.cc */
4400-#line 3060 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4401+#line 3157 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4402 {
4403 (yyval.node) = new WindowVars(LOC((yyloc)), dynamic_cast<PositionalVar*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL, NULL);
4404 }
4405@@ -4839,7 +4934,7 @@
4406
4407 case 293:
4408 /* Line 661 of lalr1.cc */
4409-#line 3064 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4410+#line 3161 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4411 {
4412 (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
4413 dynamic_cast<WindowVars *>((yyval.node))->set_posvar(dynamic_cast<PositionalVar*>((yysemantic_stack_[(2) - (1)].node)));
4414@@ -4848,7 +4943,7 @@
4415
4416 case 295:
4417 /* Line 661 of lalr1.cc */
4418-#line 3073 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4419+#line 3170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4420 {
4421 (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), static_cast<QName*>((yysemantic_stack_[(6) - (6)].expr)));
4422 }
4423@@ -4856,7 +4951,7 @@
4424
4425 case 296:
4426 /* Line 661 of lalr1.cc */
4427-#line 3077 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4428+#line 3174 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4429 {
4430 (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
4431 }
4432@@ -4864,7 +4959,7 @@
4433
4434 case 297:
4435 /* Line 661 of lalr1.cc */
4436-#line 3081 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4437+#line 3178 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4438 {
4439 (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL);
4440 }
4441@@ -4872,7 +4967,7 @@
4442
4443 case 298:
4444 /* Line 661 of lalr1.cc */
4445-#line 3091 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4446+#line 3188 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4447 {
4448 (yyval.node) = new WhereClause(LOC ((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
4449 }
4450@@ -4880,7 +4975,7 @@
4451
4452 case 299:
4453 /* Line 661 of lalr1.cc */
4454-#line 3099 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4455+#line 3196 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4456 {
4457 (yyval.node) = new GroupByClause(LOC((yyloc)), dynamic_cast<GroupSpecList*>((yysemantic_stack_[(3) - (3)].node)));
4458 }
4459@@ -4888,7 +4983,7 @@
4460
4461 case 300:
4462 /* Line 661 of lalr1.cc */
4463-#line 3106 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4464+#line 3203 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4465 {
4466 GroupSpecList* gsl = new GroupSpecList(LOC((yyloc)));
4467 gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(1) - (1)].node)));
4468@@ -4898,7 +4993,7 @@
4469
4470 case 301:
4471 /* Line 661 of lalr1.cc */
4472-#line 3112 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4473+#line 3209 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4474 {
4475 GroupSpecList* gsl = static_cast<GroupSpecList*>((yysemantic_stack_[(3) - (1)].node));
4476 gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(3) - (3)].node)));
4477@@ -4908,7 +5003,7 @@
4478
4479 case 302:
4480 /* Line 661 of lalr1.cc */
4481-#line 3122 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4482+#line 3219 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4483 {
4484 (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)), NULL, (yysemantic_stack_[(4) - (4)].expr), NULL);
4485 }
4486@@ -4916,7 +5011,7 @@
4487
4488 case 303:
4489 /* Line 661 of lalr1.cc */
4490-#line 3126 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4491+#line 3223 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4492 {
4493 (yyval.node) = new GroupSpec(LOC((yyloc)),
4494 static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
4495@@ -4928,7 +5023,7 @@
4496
4497 case 304:
4498 /* Line 661 of lalr1.cc */
4499-#line 3134 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4500+#line 3231 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4501 {
4502 (yyval.node) = new GroupSpec(LOC((yyloc)),
4503 static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
4504@@ -4940,7 +5035,7 @@
4505
4506 case 305:
4507 /* Line 661 of lalr1.cc */
4508-#line 3142 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4509+#line 3239 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4510 {
4511 (yyval.node) = new GroupSpec(LOC((yyloc)),
4512 static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
4513@@ -4952,7 +5047,7 @@
4514
4515 case 306:
4516 /* Line 661 of lalr1.cc */
4517-#line 3150 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4518+#line 3247 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4519 {
4520 VarRef* varRef = dynamic_cast<VarRef*>((yysemantic_stack_[(1) - (1)].expr));
4521 if (varRef != NULL)
4522@@ -4964,7 +5059,7 @@
4523
4524 case 307:
4525 /* Line 661 of lalr1.cc */
4526-#line 3158 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4527+#line 3255 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4528 {
4529 VarRef* varRef = dynamic_cast<VarRef*>((yysemantic_stack_[(2) - (1)].expr));
4530 if (varRef != NULL)
4531@@ -4976,7 +5071,7 @@
4532
4533 case 308:
4534 /* Line 661 of lalr1.cc */
4535-#line 3170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4536+#line 3267 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4537 {
4538 (yyval.node) = new GroupCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
4539 }
4540@@ -4984,7 +5079,7 @@
4541
4542 case 309:
4543 /* Line 661 of lalr1.cc */
4544-#line 3178 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4545+#line 3275 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4546 {
4547 (yyval.node) = new OrderByClause(
4548 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (3)].node))
4549@@ -4994,7 +5089,7 @@
4550
4551 case 310:
4552 /* Line 661 of lalr1.cc */
4553-#line 3184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4554+#line 3281 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4555 {
4556 (yyval.node) = new OrderByClause(
4557 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(4) - (4)].node)), true
4558@@ -5004,7 +5099,7 @@
4559
4560 case 311:
4561 /* Line 661 of lalr1.cc */
4562-#line 3194 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4563+#line 3291 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4564 {
4565 OrderSpecList *osl = new OrderSpecList( LOC((yyloc)) );
4566 osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(1) - (1)].node)) );
4567@@ -5014,7 +5109,7 @@
4568
4569 case 312:
4570 /* Line 661 of lalr1.cc */
4571-#line 3200 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4572+#line 3297 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4573 {
4574 if ( OrderSpecList* osl = dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (1)].node)) )
4575 osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(3) - (3)].node)) );
4576@@ -5024,7 +5119,7 @@
4577
4578 case 313:
4579 /* Line 661 of lalr1.cc */
4580-#line 3210 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4581+#line 3307 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4582 {
4583 (yyval.node) = new OrderSpec( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL );
4584 }
4585@@ -5032,7 +5127,7 @@
4586
4587 case 314:
4588 /* Line 661 of lalr1.cc */
4589-#line 3214 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4590+#line 3311 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4591 {
4592 (yyval.node) = new OrderSpec(
4593 LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<OrderModifierPN*>((yysemantic_stack_[(2) - (2)].node))
4594@@ -5042,7 +5137,7 @@
4595
4596 case 315:
4597 /* Line 661 of lalr1.cc */
4598-#line 3224 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4599+#line 3321 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4600 {
4601 (yyval.node) = new OrderModifierPN(
4602 LOC((yyloc)), dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL
4603@@ -5052,7 +5147,7 @@
4604
4605 case 316:
4606 /* Line 661 of lalr1.cc */
4607-#line 3230 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4608+#line 3327 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4609 {
4610 (yyval.node) = new OrderModifierPN(
4611 LOC((yyloc)), NULL, dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(1) - (1)].node)), NULL
4612@@ -5062,7 +5157,7 @@
4613
4614 case 317:
4615 /* Line 661 of lalr1.cc */
4616-#line 3236 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4617+#line 3333 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4618 {
4619 (yyval.node) = new OrderModifierPN(
4620 LOC((yyloc)), NULL, NULL, dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(1) - (1)].node))
4621@@ -5072,7 +5167,7 @@
4622
4623 case 318:
4624 /* Line 661 of lalr1.cc */
4625-#line 3242 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4626+#line 3339 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4627 {
4628 (yyval.node) = new OrderModifierPN(
4629 LOC((yyloc)),
4630@@ -5085,7 +5180,7 @@
4631
4632 case 319:
4633 /* Line 661 of lalr1.cc */
4634-#line 3251 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4635+#line 3348 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4636 {
4637 (yyval.node) = new OrderModifierPN(
4638 LOC((yyloc)),
4639@@ -5098,7 +5193,7 @@
4640
4641 case 320:
4642 /* Line 661 of lalr1.cc */
4643-#line 3260 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4644+#line 3357 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4645 {
4646 (yyval.node) = new OrderModifierPN(
4647 LOC((yyloc)),
4648@@ -5111,7 +5206,7 @@
4649
4650 case 321:
4651 /* Line 661 of lalr1.cc */
4652-#line 3269 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4653+#line 3366 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4654 {
4655 (yyval.node) = new OrderModifierPN(
4656 LOC((yyloc)),
4657@@ -5124,7 +5219,7 @@
4658
4659 case 322:
4660 /* Line 661 of lalr1.cc */
4661-#line 3282 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4662+#line 3379 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4663 {
4664 (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_ascending );
4665 }
4666@@ -5132,7 +5227,7 @@
4667
4668 case 323:
4669 /* Line 661 of lalr1.cc */
4670-#line 3286 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4671+#line 3383 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4672 {
4673 (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_descending );
4674 }
4675@@ -5140,7 +5235,7 @@
4676
4677 case 324:
4678 /* Line 661 of lalr1.cc */
4679-#line 3294 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4680+#line 3391 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4681 {
4682 (yyval.node) = new OrderEmptySpec(
4683 LOC((yyloc)), StaticContextConsts::empty_greatest
4684@@ -5150,7 +5245,7 @@
4685
4686 case 325:
4687 /* Line 661 of lalr1.cc */
4688-#line 3300 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4689+#line 3397 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4690 {
4691 (yyval.node) = new OrderEmptySpec(
4692 LOC((yyloc)), StaticContextConsts::empty_least
4693@@ -5160,7 +5255,7 @@
4694
4695 case 326:
4696 /* Line 661 of lalr1.cc */
4697-#line 3310 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4698+#line 3407 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4699 {
4700 (yyval.node) = new OrderCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
4701 }
4702@@ -5168,7 +5263,7 @@
4703
4704 case 327:
4705 /* Line 661 of lalr1.cc */
4706-#line 3318 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4707+#line 3415 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4708 {
4709 (yyval.expr) = new QuantifiedExpr(
4710 LOC((yyloc)),
4711@@ -5181,7 +5276,7 @@
4712
4713 case 328:
4714 /* Line 661 of lalr1.cc */
4715-#line 3327 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4716+#line 3424 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4717 {
4718 (yyval.expr) = new QuantifiedExpr(
4719 LOC((yyloc)),
4720@@ -5194,7 +5289,7 @@
4721
4722 case 329:
4723 /* Line 661 of lalr1.cc */
4724-#line 3340 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4725+#line 3437 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4726 {
4727 QVarInDeclList *qvidl = new QVarInDeclList( LOC((yyloc)) );
4728 qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
4729@@ -5205,7 +5300,7 @@
4730
4731 case 330:
4732 /* Line 661 of lalr1.cc */
4733-#line 3347 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4734+#line 3444 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4735 {
4736 QVarInDeclList *qvidl = dynamic_cast<QVarInDeclList*>((yysemantic_stack_[(4) - (1)].node));
4737 qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
4738@@ -5215,7 +5310,7 @@
4739
4740 case 331:
4741 /* Line 661 of lalr1.cc */
4742-#line 3359 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4743+#line 3456 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4744 {
4745 (yyval.node) = new QVarInDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].expr));
4746 }
4747@@ -5223,7 +5318,7 @@
4748
4749 case 332:
4750 /* Line 661 of lalr1.cc */
4751-#line 3363 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4752+#line 3460 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4753 {
4754 (yyval.node) = new QVarInDecl(LOC((yyloc)),
4755 static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
4756@@ -5234,7 +5329,7 @@
4757
4758 case 333:
4759 /* Line 661 of lalr1.cc */
4760-#line 3375 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4761+#line 3472 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4762 {
4763 (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
4764 }
4765@@ -5242,7 +5337,7 @@
4766
4767 case 334:
4768 /* Line 661 of lalr1.cc */
4769-#line 3382 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4770+#line 3479 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4771 {
4772 SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
4773 scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
4774@@ -5252,7 +5347,7 @@
4775
4776 case 335:
4777 /* Line 661 of lalr1.cc */
4778-#line 3388 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4779+#line 3485 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4780 {
4781 SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
4782 scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
4783@@ -5262,7 +5357,7 @@
4784
4785 case 336:
4786 /* Line 661 of lalr1.cc */
4787-#line 3397 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4788+#line 3494 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4789 {
4790 (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
4791 }
4792@@ -5270,7 +5365,7 @@
4793
4794 case 337:
4795 /* Line 661 of lalr1.cc */
4796-#line 3404 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4797+#line 3501 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4798 {
4799 SwitchCaseOperandList* sco_list_p = new SwitchCaseOperandList(LOC((yyloc)));
4800 sco_list_p->push_back((yysemantic_stack_[(2) - (2)].expr));
4801@@ -5280,7 +5375,7 @@
4802
4803 case 338:
4804 /* Line 661 of lalr1.cc */
4805-#line 3410 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4806+#line 3507 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4807 {
4808 SwitchCaseOperandList* sco_list_p = static_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node));
4809 sco_list_p->push_back((yysemantic_stack_[(3) - (3)].expr));
4810@@ -5290,7 +5385,7 @@
4811
4812 case 339:
4813 /* Line 661 of lalr1.cc */
4814-#line 3421 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4815+#line 3518 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4816 {
4817 (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
4818 }
4819@@ -5298,7 +5393,7 @@
4820
4821 case 340:
4822 /* Line 661 of lalr1.cc */
4823-#line 3428 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4824+#line 3525 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4825 {
4826 SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
4827 scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
4828@@ -5308,7 +5403,7 @@
4829
4830 case 341:
4831 /* Line 661 of lalr1.cc */
4832-#line 3434 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4833+#line 3531 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4834 {
4835 SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
4836 scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
4837@@ -5318,7 +5413,7 @@
4838
4839 case 342:
4840 /* Line 661 of lalr1.cc */
4841-#line 3443 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4842+#line 3540 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4843 {
4844 (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
4845 }
4846@@ -5326,7 +5421,7 @@
4847
4848 case 343:
4849 /* Line 661 of lalr1.cc */
4850-#line 3452 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4851+#line 3549 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4852 {
4853 (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
4854 (yysemantic_stack_[(8) - (3)].expr),
4855@@ -5337,7 +5432,7 @@
4856
4857 case 344:
4858 /* Line 661 of lalr1.cc */
4859-#line 3459 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4860+#line 3556 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4861 {
4862 (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
4863 (yysemantic_stack_[(10) - (3)].expr),
4864@@ -5349,7 +5444,7 @@
4865
4866 case 345:
4867 /* Line 661 of lalr1.cc */
4868-#line 3470 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4869+#line 3567 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4870 {
4871 (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
4872 (yysemantic_stack_[(8) - (3)].expr),
4873@@ -5360,7 +5455,7 @@
4874
4875 case 346:
4876 /* Line 661 of lalr1.cc */
4877-#line 3477 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4878+#line 3574 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4879 {
4880 (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
4881 (yysemantic_stack_[(10) - (3)].expr),
4882@@ -5372,7 +5467,7 @@
4883
4884 case 347:
4885 /* Line 661 of lalr1.cc */
4886-#line 3489 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4887+#line 3586 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4888 {
4889 CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
4890 cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
4891@@ -5382,7 +5477,7 @@
4892
4893 case 348:
4894 /* Line 661 of lalr1.cc */
4895-#line 3495 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4896+#line 3592 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4897 {
4898 CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
4899 cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
4900@@ -5392,7 +5487,7 @@
4901
4902 case 349:
4903 /* Line 661 of lalr1.cc */
4904-#line 3507 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4905+#line 3604 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4906 {
4907 (yyval.node) = new CaseClause(LOC ((yyloc)),
4908 static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
4909@@ -5402,7 +5497,7 @@
4910
4911 case 350:
4912 /* Line 661 of lalr1.cc */
4913-#line 3513 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4914+#line 3610 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4915 {
4916 (yyval.node) = new CaseClause(LOC ((yyloc)),
4917 static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
4918@@ -5413,7 +5508,7 @@
4919
4920 case 351:
4921 /* Line 661 of lalr1.cc */
4922-#line 3524 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4923+#line 3621 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4924 {
4925 CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
4926 cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
4927@@ -5423,7 +5518,7 @@
4928
4929 case 352:
4930 /* Line 661 of lalr1.cc */
4931-#line 3530 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4932+#line 3627 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4933 {
4934 CaseClauseList* cc_list_p = static_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
4935 cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
4936@@ -5433,7 +5528,7 @@
4937
4938 case 353:
4939 /* Line 661 of lalr1.cc */
4940-#line 3541 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4941+#line 3638 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4942 {
4943 (yyval.node) = new CaseClause(LOC ((yyloc)),
4944 static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
4945@@ -5443,7 +5538,7 @@
4946
4947 case 354:
4948 /* Line 661 of lalr1.cc */
4949-#line 3547 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4950+#line 3644 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4951 {
4952 (yyval.node) = new CaseClause(LOC ((yyloc)),
4953 static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
4954@@ -5454,7 +5549,7 @@
4955
4956 case 355:
4957 /* Line 661 of lalr1.cc */
4958-#line 3558 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4959+#line 3655 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4960 {
4961 SequenceTypeList* seqList = new SequenceTypeList(LOC((yyloc)));
4962 seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(1) - (1)].node)));
4963@@ -5464,7 +5559,7 @@
4964
4965 case 356:
4966 /* Line 661 of lalr1.cc */
4967-#line 3564 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4968+#line 3661 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4969 {
4970 SequenceTypeList* seqList = static_cast<SequenceTypeList*>((yysemantic_stack_[(3) - (1)].node));
4971 seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(3) - (3)].node)));
4972@@ -5474,7 +5569,7 @@
4973
4974 case 357:
4975 /* Line 661 of lalr1.cc */
4976-#line 3575 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4977+#line 3672 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4978 {
4979 (yyval.expr) = new IfExpr(LOC ((yyloc)), (yysemantic_stack_[(8) - (3)].expr), (yysemantic_stack_[(8) - (6)].expr), (yysemantic_stack_[(8) - (8)].expr));
4980 }
4981@@ -5482,7 +5577,7 @@
4982
4983 case 358:
4984 /* Line 661 of lalr1.cc */
4985-#line 3584 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4986+#line 3681 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4987 {
4988 (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
4989 }
4990@@ -5490,7 +5585,7 @@
4991
4992 case 359:
4993 /* Line 661 of lalr1.cc */
4994-#line 3588 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4995+#line 3685 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
4996 {
4997 (yyval.expr) = new OrExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
4998 }
4999@@ -5498,7 +5593,7 @@
5000
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches