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

Proposed by Nicolae Brinza on 2013-05-03
Status: Merged
Approved by: Chris Hillery on 2013-05-15
Approved revision: 11354
Merged at revision: 11452
Proposed branch: lp:~zorba-coders/zorba/new-jsoniq
Merge into: lp:zorba
Diff against target: 62926 lines (+22854/-21608)
36 files modified
ChangeLog (+3/-0)
include/zorba/pregenerated/diagnostic_list.h (+2/-0)
modules/com/zorba-xquery/www/modules/pregenerated/warnings.xq (+9/-1)
src/compiler/api/compilercb.cpp (+5/-2)
src/compiler/api/compilercb.h (+8/-0)
src/compiler/parser/jsoniq_parser.cpp (+9953/-9102)
src/compiler/parser/jsoniq_parser.hpp (+310/-309)
src/compiler/parser/jsoniq_scanner.cpp (+3339/-3335)
src/compiler/parser/parser.y (+185/-120)
src/compiler/parser/parser_y_includes.h (+8/-0)
src/compiler/parser/scanner_l_includes.h (+40/-2)
src/compiler/parser/symbol_table.cpp (+22/-2)
src/compiler/parser/symbol_table.h (+2/-1)
src/compiler/parser/xquery_driver.cpp (+9/-0)
src/compiler/parser/xquery_driver.h (+8/-1)
src/compiler/parser/xquery_parser.cpp (+7898/-7994)
src/compiler/parser/xquery_parser.hpp (+302/-302)
src/compiler/parser/xquery_scanner.cpp (+439/-401)
src/compiler/parsetree/parsenodes.cpp (+70/-15)
src/compiler/parsetree/parsenodes.h (+31/-7)
src/compiler/translator/translator.cpp (+55/-3)
src/context/features.cpp (+5/-0)
src/context/features.h (+1/-0)
src/context/root_static_context.cpp (+1/-0)
src/diagnostics/diagnostic_en.xml (+56/-1)
src/diagnostics/pregenerated/diagnostic_list.cpp (+3/-0)
src/diagnostics/pregenerated/dict_en.cpp (+17/-0)
src/diagnostics/pregenerated/dict_zed_keys.h (+16/-0)
src/functions/func_var_decl.cpp (+43/-3)
src/functions/function_consts.h (+2/-0)
test/rbkt/ExpQueryResults/zorba/jsoniq/js_null_type.xml.res (+1/-0)
test/rbkt/ExpQueryResults/zorba/jsoniq/null_type.xml.res (+1/-0)
test/rbkt/Queries/zorba/jsoniq/dataguide1.jq (+6/-6)
test/rbkt/Queries/zorba/jsoniq/js_null_type.xq (+1/-0)
test/rbkt/Queries/zorba/jsoniq/null_type.xq (+2/-0)
test/unit/test_static_context.cpp (+1/-1)
To merge this branch: bzr merge lp:~zorba-coders/zorba/new-jsoniq
Reviewer Review Type Date Requested Status
Nicolae Brinza Approve on 2013-05-15
Matthias Brantner Approve on 2013-05-15
Ghislain Fourny 2013-05-03 Approve on 2013-05-15
Review via email: mp+162375@code.launchpad.net

This proposal supersedes a proposal from 2013-05-03.

Commit message

Added "common" language option and warnings. Re-enabled path expressions in JSONiq grammar.

Description of the change

Added "common" language option and warnings. Re-enabled path expressions in JSONiq grammar.

To post a comment you must log in.
Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal
Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal

The attempt to merge lp:~zorba-coders/zorba/new-jsoniq into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:275 (message):
  Validation queue job new-jsoniq-2013-05-01T17-24-52.433Z is finished. The
  final status was:

  No tests were run - build or configure step must have failed.

  Not commiting changes.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal
Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal

The attempt to merge lp:~zorba-coders/zorba/new-jsoniq into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:275 (message):
  Validation queue job new-jsoniq-2013-05-01T18-24-44.009Z is finished. The
  final status was:

  No tests were run - build or configure step must have failed.

  Not commiting changes.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal
Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal

The attempt to merge lp:~zorba-coders/zorba/new-jsoniq into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:275 (message):
  Validation queue job new-jsoniq-2013-05-03T14-40-57.855Z is finished. The
  final status was:

  3 tests did not succeed - changes not commited.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job new-jsoniq-2013-05-03T15-35-52.134Z is finished. The final status was:

All tests succeeded!

Zorba Build Bot (zorba-buildbot) wrote :

Voting does not meet specified criteria. Required: Approve > 1, Disapprove < 1, Needs Fixing < 1, Pending < 1, Needs Information < 1, Resubmit < 1. Got: 1 Pending.

Nicolae Brinza (nbrinza) :
review: Approve

1. improve warning messages:

feature not supported by the common language grammar: JSONiq dot object lookup
=>
jsoniq dot object lookup not supported by common language

feature not supported by the common language grammar: context item expression; use zorba-util:context-item()
=>
context item expression not supported by common language (use util:context-item() instead)

2. Query doesn't raise a warning:
jsoniq version "1.0";

declare namespace op = "http://www.zorba-xquery.com/options/features";
declare namespace f = "http://www.zorba-xquery.com/features";

declare option op:enable "f:common-language";

{}

3. Query without version declaration doesn't raise a warning

4. Query returns warning with wrong warning location, i.e. 8,13

jsoniq version "1.0";

declare namespace op = "http://www.zorba-xquery.com/options/features";
declare namespace f = "http://www.zorba-xquery.com/features";

declare option op:enable "f:common-language";

let $foo := { "f.oo" : "bar" }.f.oo
return $foo

</home/mbrantner/zorba/build/tmp.xq>:8,13: Zorba static warning [zwarn:ZWST0009]: feature not supported by the common language grammar: JSONiq dot object lookup
</home/mbrantner/zorba/build/tmp.xq>:8,13: Zorba static warning [zwarn:ZWST0009]: feature not supported by the common language grammar: JSONiq dot object lookup

5. The following query doesn't raise a warning

xquery version "1.0";

declare namespace op = "http://www.zorba-xquery.com/options/features";
declare namespace f = "http://www.zorba-xquery.com/features";

declare option op:enable "f:common-language";

let $foo := 'foo'
return $foo

6. The following query doesn't raise a warning

jsoniq version "1.0";

declare namespace op = "http://www.zorba-xquery.com/options/features";
declare namespace f = "http://www.zorba-xquery.com/features";

declare option op:enable "f:common-language";

let $foo := { foo : "bar" }
return insert { "bar" : 42 } into $foo;

review: Needs Fixing
Ghislain Fourny (gislenius) wrote :

It looks good on the whole. For convenience, I am pasting the list of the findings I sent to the zorba-dev mailing list, as of revision 11342 of this branch, here:

- The dot context item should be a syntax error in the JSONiq parser, but { "foo" : "bar" } ! . seems to parse fine.
- No error is thrown when beginning a path expression with an axis step in the JSONiq parser, e.g. <a><foo/></a>/(foo) (mind the parentheses, i.e., foo does begin a path expression) should not parse with JSONiq.

- Use of \ or & in literals in the common language (both parsers) does not seem to raise warnings.
- Use of {} in the common language (both parsers) does not seem to raise warnings.
- Use of true/false/null literals in the common language (JSONiq parser) does not seem to raise warnings.
- Use of () for the empty sequence type syntax in the common language (JSONiq parser) does not seem to raise warnings.
- Use of simplified update syntax (no "json") in the common language (JSONiq parser) does not seem to raise warnings.
- Use of single-quoted literals in the common language (XQuery parser) does not seem to raise warnings.
- Use of unquoted object keys in the common language (JSONiq parser) does not seem to raise warnings.
- Use of a path expression beginning with an axis step in the common language (XQuery parser) seems to raise the wrong warning (is : context item expression, should be : path expression may not begin with an axis step).

review: Needs Fixing
Zorba Build Bot (zorba-buildbot) wrote :

The attempt to merge lp:~zorba-coders/zorba/new-jsoniq into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:275 (message):
  Validation queue job new-jsoniq-2013-05-13T11-36-28.819Z is finished. The
  final status was:

  1 tests did not succeed - changes not commited.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job new-jsoniq-2013-05-13T12-21-59.605Z is finished. The final status was:

All tests succeeded!

Zorba Build Bot (zorba-buildbot) wrote :

Voting does not meet specified criteria. Required: Approve > 1, Disapprove < 1, Needs Fixing < 1, Pending < 1, Needs Information < 1, Resubmit < 1. Got: 1 Approve, 2 Needs Fixing.

Nicolae Brinza (nbrinza) wrote :

Matthias, your suggestions for two improved warnings do not change the messages: you just switched the order of the words. The warnings are built around the template:

    feature not supported by the common language grammar{: $1}

So it is not easy to make this swap. I could probably do it, but then I would have to change all the other messages. Do you think it is worth it?

Other than that, I have fixed all of the issues raised by you and Ghislain.

There has been a confusion which resulted in many warnings not working for you and Ghislain even though they were implemented. The problem was that you both used a qualified string for the "op:enable" option, i.e. you used "f:common-language". Why would you need a qualified value if the option itself is already qualified?

As we discussed, it is not possible to resolve a prefix during the Bison parsing, and that is why the initial code did not allow for a prefix in the value. I have changed it, and now it allows a prefix but it will be ignored during the parsing.

--

> 1. improve warning messages:
>
> feature not supported by the common language grammar: JSONiq dot object lookup
> =>
> jsoniq dot object lookup not supported by common language
>
>
> feature not supported by the common language grammar: context item expression;
> use zorba-util:context-item()
> =>
> context item expression not supported by common language (use util:context-
> item() instead)
>
> 2. Query doesn't raise a warning:
> jsoniq version "1.0";
>
> declare namespace op = "http://www.zorba-xquery.com/options/features";
> declare namespace f = "http://www.zorba-xquery.com/features";
>
> declare option op:enable "f:common-language";
>
> {}
>
> 3. Query without version declaration doesn't raise a warning
>
> 4. Query returns warning with wrong warning location, i.e. 8,13
>
> jsoniq version "1.0";
>
> declare namespace op = "http://www.zorba-xquery.com/options/features";
> declare namespace f = "http://www.zorba-xquery.com/features";
>
> declare option op:enable "f:common-language";
>
> let $foo := { "f.oo" : "bar" }.f.oo
> return $foo
>
> </home/mbrantner/zorba/build/tmp.xq>:8,13: Zorba static warning
> [zwarn:ZWST0009]: feature not supported by the common language grammar: JSONiq
> dot object lookup
> </home/mbrantner/zorba/build/tmp.xq>:8,13: Zorba static warning
> [zwarn:ZWST0009]: feature not supported by the common language grammar: JSONiq
> dot object lookup
>
> 5. The following query doesn't raise a warning
>
> xquery version "1.0";
>
> declare namespace op = "http://www.zorba-xquery.com/options/features";
> declare namespace f = "http://www.zorba-xquery.com/features";
>
> declare option op:enable "f:common-language";
>
> let $foo := 'foo'
> return $foo
>
> 6. The following query doesn't raise a warning
>
> jsoniq version "1.0";
>
> declare namespace op = "http://www.zorba-xquery.com/options/features";
> declare namespace f = "http://www.zorba-xquery.com/features";
>
> declare option op:enable "f:common-language";
>
> let $foo := { foo : "bar" }
> return insert { "bar" : 42 } into $foo;

Ghislain Fourny (gislenius) wrote :

> Why would you need a qualified value if the option itself is already qualified?

I guess because the option name and the option value may not live in the same namespace.

Nicolae Brinza (nbrinza) wrote :

> > Why would you need a qualified value if the option itself is already
> qualified?
>
> I guess because the option name and the option value may not live in the same
> namespace.

Why not? It's not as if you do schema validation on the options and their values. The option needs to be qualified to distinguish it from XQuery options, but the value needs not. And the validation is done entirely in the code so there is no schema validation.

Ghislain Fourny (gislenius) wrote :

Thanks for fixing the warnings. I successfully checked, except for two things:

1.

"\" (XQuery parser) or "&" (JSONiq parser) leads to a warning about disallowed character entity references/JSON character escape sequence. I think the warning could be made more general and say that XML character and entity references, JSON backslash escapes, as well as standalone ampersands and backslashes are not allowed.

(by the way, character entity references do not exist in XML. There are character references (&#...;) and entity references (&...;), but not both at the same time if I am correct :-) )

2.

<a><foo/></a>/(foo)

(in the XQuery parser) does not seem to be caught with a warning.

review: Needs Fixing
Nicolae Brinza (nbrinza) wrote :

> (by the way, character entity references do not exist in XML. There are
> character references (&#...;) and entity references (&...;), but not both at
> the same time if I am correct :-) )

Indeed you're right. I trusted Wikipedia which uses the term "character entity references" and says ``The XML specification does not use the term "character entity" or "character entity reference". '' -- http://en.wikipedia.org/wiki/Character_entity_reference#Predefined_entities_in_XML . I've checked now the XML spec and it does seem to have the definitions: http://www.w3.org/TR/xml/#sec-references .

I'll change the messages to what you suggested, but I'll keep both of them -- it is much better to have them as customized as possible.

Nicolae Brinza (nbrinza) wrote :

Fixed all the raised issues.

Ghislain Fourny (gislenius) wrote :

> > > Why would you need a qualified value if the option itself is already
> > qualified?
> >
> > I guess because the option name and the option value may not live in the
> same
> > namespace.
>
> Why not? It's not as if you do schema validation on the options and their
> values. The option needs to be qualified to distinguish it from XQuery
> options, but the value needs not. And the validation is done entirely in the
> code so there is no schema validation.

Technically, it is up to us - does the op:enable option accept QName or string values? If it is strings, I agree. If it is QNames, the namespace is important I think.

Ghislain Fourny (gislenius) wrote :

I can not see any warning if a version declaration is present. Was it fixed? Am I doing something wrong?

jsoniq version "1.0";
declare namespace op = "http://www.zorba-xquery.com/options/features";
declare option op:enable "common-language";
{ "foo" : "bar" }

-> no warning for me.

review: Needs Fixing
Chris Hillery (ceejatec) wrote :

Ghislain - it seems to work if you specify the option on the command line:

% zorba --option '{http://www.zorba-xquery.com/options/features}enable=common-language' -q 'jsoniq version "1.0"; { "foo" : "bar" }'
<.>:1,2: Zorba static warning [zwarn:ZWST0009]: feature not supported by the common language grammar: version declaration; raised at /home/ceej/zo/src/src/compiler/translator/translator.cpp:2495
{ "foo" : "bar" }

It kind of makes sense to me that declaring the option inside the query itself doesn't retro-actively jump back and ensure that you didn't do anything bad before the option itself was parsed.

Ghislain Fourny (gislenius) wrote :

Approving because the last open issue is not release-critical.

review: Approve
Ghislain Fourny (gislenius) wrote :

Your comment makes a lot of sense too, thanks!

Nicolae Brinza (nbrinza) :
review: Approve
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job new-jsoniq-2013-05-15T11-05-02.567Z is finished. The final status was:

All tests succeeded!

Zorba Build Bot (zorba-buildbot) wrote :

Voting does not meet specified criteria. Required: Approve > 1, Disapprove < 1, Needs Fixing < 1, Pending < 1, Needs Information < 1, Resubmit < 1. Got: 2 Approve, 1 Needs Fixing.

Ghislain Fourny (gislenius) wrote :

Thanks Nicolae, this is perfect now.

The commit could add something to the ChangeLog. Otherwise I'm also happy.

review: Approve
Nicolae Brinza (nbrinza) wrote :

I've added a mention in the ChangeLog

Nicolae Brinza (nbrinza) :
review: Approve
Ghislain Fourny (gislenius) wrote :

Pending approval and merge of null-type-fix before sending to the trunk.

Ghislain Fourny (gislenius) wrote :

The parser must be regenerated I think.

Nicolae Brinza (nbrinza) wrote :

Done

Nicolae Brinza (nbrinza) :
review: Approve
Zorba Build Bot (zorba-buildbot) wrote :

The attempt to merge lp:~zorba-coders/zorba/new-jsoniq into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:275 (message):
  Validation queue job new-jsoniq-2013-05-15T16-11-04.9Z is finished. The
  final status was:

  1 tests did not succeed - changes not commited.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

lp:~zorba-coders/zorba/new-jsoniq updated on 2013-05-15
11354. By Chris Hillery on 2013-05-15

Update # of predeclared namespaces for JSONiq.

Nicolae Brinza (nbrinza) wrote :

Yeah, I just fixed that unit test as well...

Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job new-jsoniq-2013-05-15T16-49-21.79Z is finished. The final status was:

All tests succeeded!

Preview Diff

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

Subscribers

People subscribed via source and target branches