Merge lp:~zorba-coders/zorba/type-api into lp:zorba

Proposed by Markos Zaharioudakis
Status: Merged
Approved by: Rodolfo Ochoa
Approved revision: 11478
Merged at revision: 11638
Proposed branch: lp:~zorba-coders/zorba/type-api
Merge into: lp:zorba
Diff against target: 48770 lines (+15441/-12337)
118 files modified
doc/java/examples/Test_Zorba.java (+9/-9)
include/zorba/api_shared_types.h (+1/-2)
include/zorba/collection.h (+1/-1)
include/zorba/identtypes.h (+0/-72)
include/zorba/static_context.h (+22/-21)
include/zorba/typeident.h (+189/-131)
modules/http-client/json/http-client.xq.src/http_response_parser.cpp (+1/-0)
src/api/CMakeLists.txt (+1/-2)
src/api/collectionimpl.cpp (+5/-5)
src/api/collectionimpl.h (+1/-1)
src/api/dynamiccontextimpl.cpp (+5/-12)
src/api/identtypesimpl.cpp (+0/-67)
src/api/sequencetype.cpp (+799/-0)
src/api/staticcontextimpl.cpp (+32/-50)
src/api/staticcontextimpl.h (+6/-7)
src/api/typeidentimpl.cpp (+0/-397)
src/api/unmarshaller.cpp (+12/-0)
src/api/unmarshaller.h (+8/-2)
src/compiler/codegen/plan_visitor.cpp (+7/-7)
src/compiler/expression/expr.cpp (+3/-3)
src/compiler/expression/expr_base.cpp (+6/-6)
src/compiler/expression/expr_type.cpp (+32/-32)
src/compiler/expression/flwor_expr.cpp (+5/-5)
src/compiler/parser/jsoniq_parser.cpp (+5612/-4219)
src/compiler/parser/jsoniq_parser.hpp (+46/-29)
src/compiler/parser/jsoniq_scanner.cpp (+446/-443)
src/compiler/parser/parser.y (+39/-39)
src/compiler/parser/xquery_parser.cpp (+5552/-4152)
src/compiler/parser/xquery_parser.hpp (+46/-29)
src/compiler/parser/xquery_scanner.cpp (+440/-449)
src/compiler/parsetree/parsenode_print_xml_visitor.cpp (+1/-1)
src/compiler/parsetree/parsenode_print_xqdoc_visitor.cpp (+1/-1)
src/compiler/parsetree/parsenode_print_xquery_visitor.cpp (+3/-3)
src/compiler/parsetree/parsenode_visitor.h (+1/-1)
src/compiler/parsetree/parsenodes.cpp (+15/-15)
src/compiler/parsetree/parsenodes.h (+52/-52)
src/compiler/rewriter/rules/flwor_rules.cpp (+5/-5)
src/compiler/rewriter/rules/fold_rules.cpp (+6/-6)
src/compiler/rewriter/rules/index_join_rule.cpp (+9/-9)
src/compiler/rewriter/rules/nodeid_rules.cpp (+7/-7)
src/compiler/rewriter/rules/type_rules.cpp (+1/-1)
src/compiler/rewriter/tools/dataflow_annotations.cpp (+5/-5)
src/compiler/translator/translator.cpp (+40/-40)
src/functions/func_accessors_impl.cpp (+2/-2)
src/functions/func_booleans_impl.cpp (+5/-5)
src/functions/func_jsoniq_functions_impl.cpp (+2/-2)
src/functions/func_numerics_impl.cpp (+5/-5)
src/functions/func_parse_fragment_impl.cpp (+0/-1)
src/functions/func_sequences_impl.cpp (+12/-12)
src/functions/func_strings_impl.cpp (+1/-1)
src/functions/function.cpp (+2/-2)
src/functions/signature.cpp (+92/-92)
src/runtime/core/arithmetic_impl.cpp (+2/-2)
src/runtime/core/path_iterators.cpp (+4/-4)
src/runtime/core/sequencetypes.cpp (+22/-22)
src/runtime/core/sequencetypes.h (+12/-10)
src/runtime/indexing/index_ddl.cpp (+1/-1)
src/runtime/json/jsoniq_functions_impl.cpp (+1/-1)
src/runtime/sequences/sequences_impl.cpp (+2/-2)
src/runtime/store/maps_impl.cpp (+2/-2)
src/types/casting.cpp (+15/-15)
src/types/root_typemanager.cpp (+45/-46)
src/types/root_typemanager.h (+11/-11)
src/types/schema/EventSchemaValidator.cpp (+1/-1)
src/types/schema/revalidateUtils.cpp (+1/-1)
src/types/schema/schema.cpp (+5/-5)
src/types/schema/validate.cpp (+9/-12)
src/types/typeconstants.h (+0/-10)
src/types/typeimpl.cpp (+23/-23)
src/types/typeimpl.h (+18/-22)
src/types/typemanager.h (+17/-17)
src/types/typemanagerimpl.cpp (+156/-309)
src/types/typemanagerimpl.h (+15/-17)
src/types/typeops.cpp (+55/-273)
src/types/typeops.h (+15/-24)
swig/Collection.h (+2/-2)
swig/Collection.i (+2/-2)
swig/SequenceType.h (+183/-0)
swig/SequenceType.i (+370/-0)
swig/StaticContext.h (+6/-5)
swig/StaticContext.i (+10/-10)
swig/TypeIdentifier.h (+0/-102)
swig/TypeIdentifier.i (+0/-197)
swig/csharp/CMakeLists.txt (+3/-3)
swig/java/CMakeLists.txt (+8/-8)
swig/java/ZorbaInputWrapper.java (+2/-2)
swig/java/ZorbaOutputWrapper.java (+1/-1)
swig/java/ZorbaReaderWrapper.java (+2/-2)
swig/java/ZorbaWriterWrapper.java (+2/-2)
swig/php/CMakeLists.txt (+3/-3)
swig/python/CMakeLists.txt (+5/-3)
swig/ruby/CMakeLists.txt (+5/-5)
swig/xqj/ZorbaXQCollection.java (+12/-12)
swig/xqj/ZorbaXQCollectionManager.java (+7/-7)
swig/xqj/ZorbaXQConnection.java (+193/-188)
swig/xqj/ZorbaXQDataSource.java (+2/-2)
swig/xqj/ZorbaXQDocumentManager.java (+4/-4)
swig/xqj/ZorbaXQExpression.java (+27/-27)
swig/xqj/ZorbaXQItem.java (+5/-5)
swig/xqj/ZorbaXQItemType.java (+317/-237)
swig/xqj/ZorbaXQMetaData.java (+3/-3)
swig/xqj/ZorbaXQPreparedExpression.java (+36/-36)
swig/xqj/ZorbaXQResultItem.java (+2/-2)
swig/xqj/ZorbaXQResultSequence.java (+6/-6)
swig/xqj/ZorbaXQResultSequenceScrollable.java (+6/-6)
swig/xqj/ZorbaXQSequence.java (+14/-14)
swig/xqj/ZorbaXQSequenceType.java (+1/-1)
swig/xqj/ZorbaXQStaticCollectionManager.java (+7/-7)
swig/xqj/ZorbaXQStaticContext.java (+12/-12)
swig/xqj/ZorbaXQXmlDataManager.java (+4/-4)
swig/xqj/managers/Api_test.java (+1/-1)
swig/xqj/managers/Tests.java (+12/-12)
swig/xqj/tck/xqj_test.bat.in (+11/-7)
swig/xqj/tck/xqj_test.sh.in (+6/-6)
swig/xqj/tck/zorba.properties (+1/-1)
swig/zorba_api.i (+2/-2)
test/unit/context_item.cpp (+13/-13)
test/unit/staticcollectionmanager.cpp (+108/-85)
To merge this branch: bzr merge lp:~zorba-coders/zorba/type-api
Reviewer Review Type Date Requested Status
Markos Zaharioudakis Approve
Review via email: mp+169278@code.launchpad.net

Commit message

Renamed class TypeIdentifier to SequenceType and changed its api and implementation (fix for bug #1056787)

Description of the change

Renamed class TypeIdentifier to SequenceType and changed its api and implementation (fix for bug #1056787)

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

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

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

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

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

Stage "BuildZorbaUbuntu" failed.

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

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

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

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

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

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

Stage "BuildZorbaUbuntu" failed.

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

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

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

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

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

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

Stage "BuildZorbaUbuntu" failed.

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

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

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

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

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

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

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

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

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

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

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

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

Validation queue result for https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

Stage "TestZorbaUbuntu" failed.
23 tests failed (8536 total tests run).

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

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

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~zorba-coders/zorba/type-api/+merge/169278

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

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

Validation queue succeeded - proposal merged!

Preview Diff

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

Subscribers

People subscribed via source and target branches