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
=== modified file 'doc/java/examples/Test_Zorba.java'
--- doc/java/examples/Test_Zorba.java 2013-02-07 17:24:36 +0000
+++ doc/java/examples/Test_Zorba.java 2013-09-24 21:48:10 +0000
@@ -14,13 +14,13 @@
14 * limitations under the License.14 * limitations under the License.
15 */15 */
1616
17import org.zorbaxquery.api.Zorba;17import io.zorba.api.Zorba;
18import org.zorbaxquery.api.XQuery;18import io.zorba.api.XQuery;
19import org.zorbaxquery.api.Iterator;19import io.zorba.api.Iterator;
20import org.zorbaxquery.api.Item;20import io.zorba.api.Item;
21import org.zorbaxquery.api.XmlDataManager;21import io.zorba.api.XmlDataManager;
22import org.zorbaxquery.api.DocumentManager;22import io.zorba.api.DocumentManager;
23import org.zorbaxquery.api.InMemoryStore;23import io.zorba.api.InMemoryStore;
2424
2525
26public class Test_Zorba 26public class Test_Zorba
@@ -28,7 +28,7 @@
2828
29 static 29 static
30 {30 {
31 System.loadLibrary ( "zorba_api" );31 System.loadLibrary ( "zorba_api_java" );
32 }32 }
3333
34 static boolean example_1(Zorba aZorba)34 static boolean example_1(Zorba aZorba)
@@ -147,7 +147,7 @@
147 System.exit ( 1 ); 147 System.exit ( 1 );
148148
149 System.out.println ( "executing example 5" );149 System.out.println ( "executing example 5" );
150 res = example_5 ( zorba );150 //res = example_5 ( zorba );
151 if (!res) 151 if (!res)
152 System.exit ( 1 ); 152 System.exit ( 1 );
153153
154154
=== modified file 'include/zorba/api_shared_types.h'
--- include/zorba/api_shared_types.h 2013-08-06 08:41:26 +0000
+++ include/zorba/api_shared_types.h 2013-09-24 21:48:10 +0000
@@ -37,6 +37,7 @@
37class Iterator;37class Iterator;
38class ModuleInfo;38class ModuleInfo;
39class QueryLocation;39class QueryLocation;
40class SequenceType;
40class SerializationCallback;41class SerializationCallback;
41class Serializer;42class Serializer;
42class StatelessExternalFunction;43class StatelessExternalFunction;
@@ -46,7 +47,6 @@
46class StemmerProvider;47class StemmerProvider;
47class TokenizerProvider;48class TokenizerProvider;
48#endif /* ZORBA_NO_FULL_TEXT */49#endif /* ZORBA_NO_FULL_TEXT */
49class TypeIdentifier;
50class XmlDataManager;50class XmlDataManager;
51class XQuery;51class XQuery;
52class Zorba;52class Zorba;
@@ -62,7 +62,6 @@
62typedef SmartPtr<Serializer> Serializer_t;62typedef SmartPtr<Serializer> Serializer_t;
63typedef SmartPtr<StaticContext> StaticContext_t;63typedef SmartPtr<StaticContext> StaticContext_t;
64typedef SmartPtr<XmlDataManager> XmlDataManager_t;64typedef SmartPtr<XmlDataManager> XmlDataManager_t;
65typedef SmartPtr<TypeIdentifier> TypeIdentifier_t;
66typedef SmartPtr<XQuery> XQuery_t;65typedef SmartPtr<XQuery> XQuery_t;
6766
68// data handlers67// data handlers
6968
=== modified file 'include/zorba/collection.h'
--- include/zorba/collection.h 2013-02-07 17:24:36 +0000
+++ include/zorba/collection.h 2013-09-24 21:48:10 +0000
@@ -210,7 +210,7 @@
210 *210 *
211 * @see isStatic()211 * @see isStatic()
212 */212 */
213 virtual TypeIdentifier_t213 virtual SequenceType
214 getType() const = 0;214 getType() const = 0;
215215
216 /** \brief Register a DiagnosticHandler to which errors216 /** \brief Register a DiagnosticHandler to which errors
217217
=== removed file 'include/zorba/identtypes.h'
--- include/zorba/identtypes.h 2013-06-15 02:57:08 +0000
+++ include/zorba/identtypes.h 1970-01-01 00:00:00 +0000
@@ -1,72 +0,0 @@
1/*
2 * Copyright 2006-2008 The FLWOR Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#ifndef ZORBA_TYPEIDENT_TYPES_API_H
17#define ZORBA_TYPEIDENT_TYPES_API_H
18
19#include <zorba/config.h>
20#include <iostream>
21
22namespace zorba
23{
24
25class ZORBA_DLL_PUBLIC IdentTypes
26{
27public:
28 typedef enum
29 {
30 NAMED_TYPE, // AtomicOrUnionType
31 ELEMENT_TYPE,
32 ATTRIBUTE_TYPE,
33 DOCUMENT_TYPE,
34 PI_TYPE,
35 TEXT_TYPE,
36 COMMENT_TYPE,
37 NAMESPACE_TYPE,
38 ANY_NODE_TYPE, // node()
39 STRUCTURED_ITEM_TYPE, // structured-item
40 JSON_ITEM_TYPE,
41 JSON_OBJECT_TYPE,
42 JSON_ARRAY_TYPE,
43 ITEM_TYPE, // item()
44 EMPTY_TYPE, // empty-sequence()
45 SCHEMA_ELEMENT_TYPE,
46 SCHEMA_ATTRIBUTE_TYPE,
47 INVALID_TYPE
48 } kind_t;
49
50 static char const *const kind_string_of[];
51
52 typedef enum
53 {
54 QUANT_ONE,
55 QUANT_QUESTION,
56 QUANT_PLUS,
57 QUANT_STAR
58 } quantifier_t;
59
60 static char const *const quantifier_string_of[];
61};
62}
63
64namespace std {
65
66ZORBA_DLL_PUBLIC ostream& operator<<(ostream& o, const zorba::IdentTypes::kind_t ik);
67ZORBA_DLL_PUBLIC ostream& operator<<(ostream& o, const zorba::IdentTypes::quantifier_t iq);
68
69}
70
71#endif
72/* vim:set et sw=2 ts=2: */
730
=== modified file 'include/zorba/static_context.h'
--- include/zorba/static_context.h 2013-08-09 08:27:30 +0000
+++ include/zorba/static_context.h 2013-09-24 21:48:10 +0000
@@ -36,21 +36,22 @@
3636
37namespace zorba {37namespace zorba {
3838
39 /** \brief Instances of the class StaticContext contain the information that is available39/** \brief Instances of the class StaticContext contain the information that is
40 * at the time the query is compiled.40 * available at the time the query is compiled and run.
41 *41 *
42 * This class contains the information that is defined in the %XQuery specification42 * This class contains the information that is defined in the %XQuery specification
43 * (see http://www.w3.org/TR/xquery/#static_context).43 * (see http://www.w3.org/TR/xquery/#static_context).
44 *44 *
45 * A StaticContext can be created by calling Zorba::createStaticContext and then be passed45 * A StaticContext can be created by calling Zorba::createStaticContext and then
46 * to the Zorba::compileQuery or XQuery::compile functions.46 * be passed to the Zorba::compileQuery or XQuery::compile functions. If no
47 * If no static context has been passed to any of these functions, a default static context47 * static context has been passed to any of these functions, a default static
48 * is used. It can be accessed by calling XQuery::getStaticContext on a compiled XQuery object.48 * context is used. It can be accessed by calling XQuery::getStaticContext on
49 *49 * a compiled XQuery object.
50 * Note: This class is reference counted. When writing multi-threaded clients,50 *
51 * it is the responibility of the client code to synchronize assignments to the51 * Note: This class is reference counted. When writing multi-threaded clients,
52 * SmartPtr holding this object.52 * it is the responibility of the client code to synchronize assignments to the
53 */53 * SmartPtr holding this object.
54 */
54class ZORBA_DLL_PUBLIC StaticContext : public SmartObject55class ZORBA_DLL_PUBLIC StaticContext : public SmartObject
55{56{
56 public:57 public:
@@ -399,21 +400,21 @@
399 /** \brief Set the type of a statically known document400 /** \brief Set the type of a statically known document
400 */401 */
401 virtual void402 virtual void
402 setDocumentType(const String& aDocUri, TypeIdentifier_t type) = 0;403 setDocumentType(const String& aDocUri, const SequenceType& type) = 0;
403 404
404 /** \brief Get the type of a statically known document405 /** \brief Get the type of a statically known document
405 */406 */
406 virtual TypeIdentifier_t407 virtual SequenceType
407 getDocumentType(const String& aDocUri) const = 0;408 getDocumentType(const String& aDocUri) const = 0;
408 409
409 /** \brief Set the type of a statically known collection410 /** \brief Set the type of a statically known collection
410 */411 */
411 virtual void412 virtual void
412 setCollectionType(const String& aCollectionUri, TypeIdentifier_t type) = 0;413 setCollectionType(const String& aCollectionUri, const SequenceType& type) = 0;
413414
414 /** \brief Get the type of a statically known collection415 /** \brief Get the type of a statically known collection
415 */416 */
416 virtual TypeIdentifier_t417 virtual SequenceType
417 getCollectionType(const String& aCollectionUri) const = 0;418 getCollectionType(const String& aCollectionUri) const = 0;
418419
419 /** \brief Check if a function with the given name and arity are registered in the context.420 /** \brief Check if a function with the given name and arity are registered in the context.
@@ -456,11 +457,11 @@
456 /** \brief Set the type of the context item.457 /** \brief Set the type of the context item.
457 */458 */
458 virtual void459 virtual void
459 setContextItemStaticType(TypeIdentifier_t type) = 0;460 setContextItemStaticType(const SequenceType& type) = 0;
460461
461 /** \brief Fetch the type of the context item.462 /** \brief Fetch the type of the context item.
462 */463 */
463 virtual TypeIdentifier_t464 virtual SequenceType
464 getContextItemStaticType() const = 0;465 getContextItemStaticType() const = 0;
465466
466 /** \brief Set the output stream that is used by the fn:trace function467 /** \brief Set the output stream that is used by the fn:trace function
467468
=== modified file 'include/zorba/typeident.h'
--- include/zorba/typeident.h 2013-06-15 02:57:08 +0000
+++ include/zorba/typeident.h 2013-09-24 21:48:10 +0000
@@ -18,154 +18,212 @@
1818
19#include <zorba/config.h>19#include <zorba/config.h>
20#include <zorba/api_shared_types.h>20#include <zorba/api_shared_types.h>
21#include <zorba/identtypes.h>
22#include <zorba/zorba_string.h>21#include <zorba/zorba_string.h>
23#include <iostream>22#include <iostream>
2423
25namespace zorba {24namespace zorba {
2625
27/** \brief Type identifiers26
27class XQType;
28
29
30/**
31 * \brief Representation and factory for xquery sequence types.
28 *32 *
29 * The type identifiers are not used, yet.33 * Class SequenceType represents xquery sequence types, as defined in
34 * http://www.w3.org/TR/xquery-30/#id-sequencetype-syntax. Instances of
35 * SequenceType may be returned by methods of Zorba's C++ API. The class also
36 * provides static methods to create instances of SequenceType, which can then
37 * be passed as arguments to other methods of Zorba's C++ API.
30 *38 *
31 * Note: This class is reference counted. When writing multi-threaded clients,39 * Note: This class is reference counted. When writing multi-threaded clients,
32 * it is the responibility of the client code to synchronize assignments to the40 * it is the responibility of the client code to synchronize assignments to the
33 * SmartPtr holding this object.41 * SmartPtr holding this object.
34 */42 */
35class ZORBA_DLL_PUBLIC TypeIdentifier : public SmartObject43class ZORBA_DLL_PUBLIC SequenceType
36{44{
37 public:45public:
38 /** \brief Destructor46 typedef enum
39 */47 {
40 ~TypeIdentifier();48 EMPTY_TYPE, // empty-sequence()
4149 ITEM_TYPE, // item()
42 static TypeIdentifier_t50 ATOMIC_OR_UNION_TYPE, // AtomicOrUnionType
43 createNamedType(51 FUNCTION_TYPE, // function(*) and subtypes
44 const String& uri,52 STRUCTURED_ITEM_TYPE, // structured-item()
45 const String& localName,53 NODE_TYPE, // node()
46 IdentTypes::quantifier_t quantifier = IdentTypes::QUANT_ONE);54 DOCUMENT_TYPE,
4755 ELEMENT_TYPE,
48 static TypeIdentifier_t56 SCHEMA_ELEMENT_TYPE,
49 createElementType(57 ATTRIBUTE_TYPE,
50 const String& uri,58 SCHEMA_ATTRIBUTE_TYPE,
51 bool uriWildcard,59 PI_TYPE,
52 const String& localName,60 TEXT_TYPE,
53 bool localNameWildcard,61 COMMENT_TYPE,
54 TypeIdentifier_t contentType,62 NAMESPACE_TYPE,
55 IdentTypes::quantifier_t quantifier = IdentTypes::QUANT_ONE);63 JSON_ITEM_TYPE,
5664 JSON_OBJECT_TYPE,
57 static TypeIdentifier_t65 JSON_ARRAY_TYPE,
58 createAttributeType(66 INVALID_TYPE
59 const String& uri,67 } Kind;
60 bool uriWildcard,68
61 const String& localName,69
62 bool localNameWildcard,70 typedef enum
63 TypeIdentifier_t contentType,71 {
64 IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);72 QUANT_ONE,
6573 QUANT_QUESTION,
66 static TypeIdentifier_t74 QUANT_STAR,
67 createDocumentType(75 QUANT_PLUS,
68 TypeIdentifier_t contentType,76 QUANT_INVALID
69 IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);77 } Quantifier;
7078
71 static TypeIdentifier_t79
72 createPIType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);80 public:
7381 /**
74 static TypeIdentifier_t82 * \brief Create an empty-sequence() type
75 createNamespaceType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);83 */
7684 static SequenceType createEmptyType();
77 static TypeIdentifier_t85
78 createTextType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);86 /**
7987 * \brief Create an item() type with quantifier
80 static TypeIdentifier_t88 */
81 createCommentType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);89 static SequenceType createItemType(Quantifier q = QUANT_ONE);
8290
83 static TypeIdentifier_t91 /**
84 createAnyNodeType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);92 * \brief Create an AtomicOrUnion type with quantifier
8593 *
86 static TypeIdentifier_t94 * An AtomicOrUnion type is specified simply as a QName, which may identify
87 createStructuredItemType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);95 * an XMLSchema builtin atomic type or a user-defined atomic or union type.
8896 * In the case of user-defined types, the QName must be among the in-scope
89 static TypeIdentifier_t97 * type names of a given static context. Otherwise, for builtin types, the
90 createJSONItemType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);98 * given sctx may be NULL.
9199 */
92 static TypeIdentifier_t100 static SequenceType createAtomicOrUnionType(
93 createJSONObjectType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);101 const StaticContext_t& sctx,
94102 const String& uri,
95 static TypeIdentifier_t103 const String& localName,
96 createJSONArrayType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);104 Quantifier q = QUANT_ONE);
97105
98 static TypeIdentifier_t106 /**
99 createItemType(IdentTypes::quantifier_t q = IdentTypes::QUANT_ONE);107 * \brief Create an structured-item() type with quantifier
100108 */
101 static TypeIdentifier_t109 static SequenceType createStructuredItemType(Quantifier q = QUANT_ONE);
102 createEmptyType();110
103111 /**
104 static TypeIdentifier_t112 * \brief Create an node() type with quantifier
105 createSchemaElementType(113 */
106 const String& uri,114 static SequenceType createAnyNodeType(Quantifier q = QUANT_ONE);
107 const String& localName,115
108 IdentTypes::quantifier_t quantifier = IdentTypes::QUANT_ONE);116 /**
109 117 * \brief Create a document-node() type or subtype with quantifier
110 static TypeIdentifier_t118 */
111 createSchemaAttributeType(119 static SequenceType createDocumentType(
112 const String& uri,120 const SequenceType& contentType,
113 const String& localName,121 Quantifier q = QUANT_ONE);
114 IdentTypes::quantifier_t quantifier = IdentTypes::QUANT_ONE);122
115 123 /**
116 IdentTypes::kind_t124 * \brief Create an element() type or subtype with quantifier
117 getKind() const;125 */
118126 static SequenceType createElementType(
119 IdentTypes::quantifier_t127 const StaticContext_t& sctx,
120 getQuantifier() const;128 const String& nodeUri,
121129 const String& nodeLocalName,
122 const String&130 const String& contentTypeUri,
123 getUri() const;131 const String& contentTypeLocalName,
124132 bool nillable,
125 bool133 Quantifier quant = QUANT_ONE);
126 isUriWildcard() const;134
127135 static SequenceType createSchemaElementType(
128 const String&136 const StaticContext_t& sctx,
129 getLocalName() const;137 const String& uri,
130138 const String& localName,
131 bool139 Quantifier quant = QUANT_ONE);
132 isLocalNameWildcard() const;140
133141 static SequenceType createAttributeType(
134 TypeIdentifier_t142 const StaticContext_t& sctx,
135 getContentType() const;143 const String& nodeUri,
136144 const String& nodeLocalName,
137 std::ostream&145 const String& contentTypeUri,
138 emit(std::ostream&) const;146 const String& contentTypeLocalName,
139147 Quantifier quant = QUANT_ONE);
140 private:148
141 TypeIdentifier();149 static SequenceType createSchemaAttributeType(
142150 const StaticContext_t& sctx,
143 std::ostream&151 const String& uri,
144 emitItemType(std::ostream&) const;152 const String& localName,
145153 Quantifier quant = QUANT_ONE);
146 std::ostream&154
147 emitName(std::ostream&) const;155 static SequenceType createPIType(Quantifier q = QUANT_ONE);
148156
149 IdentTypes::kind_t m_kind;157 static SequenceType createTextType(Quantifier q = QUANT_ONE);
150 IdentTypes::quantifier_t m_quantifier;158
151 String m_uri;159 static SequenceType createCommentType(Quantifier q = QUANT_ONE);
152 bool m_uriWildcard;160
153 String m_localName;161 static SequenceType createNamespaceType(Quantifier q = QUANT_ONE);
154 bool m_localNameWildcard;162
155 TypeIdentifier_t m_contentType;163 static SequenceType createJSONItemType(Quantifier q = QUANT_ONE);
164
165 static SequenceType createJSONObjectType(Quantifier q = QUANT_ONE);
166
167 static SequenceType createJSONArrayType(Quantifier q = QUANT_ONE);
168
169 public:
170 SequenceType();
171
172 SequenceType(const SequenceType& other);
173
174 /**
175 * \brief Destructor
176 */
177 ~SequenceType();
178
179 bool isValid() const;
180
181 Kind getKind() const;
182
183 Quantifier getQuantifier() const;
184
185 String getTypeUri() const;
186
187 String getTypeLocalName() const;
188
189 String getNodeUri() const;
190
191 String getNodeLocalName() const;
192
193 bool isWildcard() const;
194
195 String getContentTypeUri() const;
196
197 String getContentTypeLocalName() const;
198
199 bool isSchemaTest() const;
200
201 std::ostream& emit(std::ostream&) const;
202
203 private:
204 SequenceType(const XQType* t);
205
206 public:
207 static char const *const kind_string_of[];
208
209 static char const *const quantifier_string_of[];
210
211 private:
212 friend class Unmarshaller;
213
214 const XQType * theType;
156};215};
157 216
158#ifdef WIN32
159 template class ZORBA_DLL_PUBLIC zorba::SmartPtr<TypeIdentifier>;
160#endif
161
162217
163} /* namespace zorba */218} /* namespace zorba */
164219
165namespace std {220namespace std
166221{
167ZORBA_DLL_PUBLIC ostream& operator<<(ostream& o, const zorba::TypeIdentifier& ti);222
168ZORBA_DLL_PUBLIC ostream& operator<<(ostream& o, const zorba::TypeIdentifier_t ti);223ZORBA_DLL_PUBLIC ostream& operator<<(ostream& o, const zorba::SequenceType& ti);
224
225ZORBA_DLL_PUBLIC ostream& operator<<(ostream& o, const zorba::SequenceType::Kind k);
226ZORBA_DLL_PUBLIC ostream& operator<<(ostream& o, const zorba::SequenceType::Quantifier q);
169227
170}228}
171229
172230
=== modified file 'modules/http-client/json/http-client.xq.src/http_response_parser.cpp'
--- modules/http-client/json/http-client.xq.src/http_response_parser.cpp 2013-09-19 16:22:03 +0000
+++ modules/http-client/json/http-client.xq.src/http_response_parser.cpp 2013-09-24 21:48:10 +0000
@@ -21,6 +21,7 @@
21#include <sstream>21#include <sstream>
22#include <stdexcept>22#include <stdexcept>
23#include <string>23#include <string>
24#include <algorithm>
2425
25#include <zorba/util/base64_util.h>26#include <zorba/util/base64_util.h>
26#include <zorba/config.h>27#include <zorba/config.h>
2728
=== modified file 'src/api/CMakeLists.txt'
--- src/api/CMakeLists.txt 2013-08-02 14:55:29 +0000
+++ src/api/CMakeLists.txt 2013-09-24 21:48:10 +0000
@@ -29,8 +29,7 @@
29 hexbinary_streambuf.cpp29 hexbinary_streambuf.cpp
30 itemfactoryimpl.cpp30 itemfactoryimpl.cpp
31 item.cpp31 item.cpp
32 identtypesimpl.cpp32 sequencetype.cpp
33 typeidentimpl.cpp
34 unmarshaller.cpp33 unmarshaller.cpp
35 xmldatamanagerimpl.cpp34 xmldatamanagerimpl.cpp
36 documentmanagerimpl.cpp35 documentmanagerimpl.cpp
3736
=== modified file 'src/api/collectionimpl.cpp'
--- src/api/collectionimpl.cpp 2013-02-07 17:24:36 +0000
+++ src/api/collectionimpl.cpp 2013-09-24 21:48:10 +0000
@@ -372,7 +372,7 @@
372/*******************************************************************************372/*******************************************************************************
373373
374********************************************************************************/374********************************************************************************/
375TypeIdentifier_t375SequenceType
376CollectionImpl::getType() const376CollectionImpl::getType() const
377{377{
378 ZORBA_DM_TRY378 ZORBA_DM_TRY
@@ -384,16 +384,16 @@
384 const StaticallyKnownCollection* lColl = lCtx->lookup_collection(lQName);384 const StaticallyKnownCollection* lColl = lCtx->lookup_collection(lQName);
385 if (!lColl)385 if (!lColl)
386 {386 {
387 return 0;387 return SequenceType();
388 }388 }
389389
390 const XQType* lType = lColl->getCollectionType();390 const XQType* type = lColl->getCollectionType();
391391
392 return TypeOps::get_type_identifier(lCtx->get_typemanager(), *lType);392 return Unmarshaller::createSequenceType(type);
393393
394 }394 }
395 ZORBA_DM_CATCH395 ZORBA_DM_CATCH
396 return 0;396 return Unmarshaller::createSequenceType(NULL);
397}397}
398398
399399
400400
=== modified file 'src/api/collectionimpl.h'
--- src/api/collectionimpl.h 2013-02-07 17:24:36 +0000
+++ src/api/collectionimpl.h 2013-09-24 21:48:10 +0000
@@ -135,7 +135,7 @@
135 virtual bool135 virtual bool
136 isStatic() const;136 isStatic() const;
137137
138 virtual TypeIdentifier_t138 virtual SequenceType
139 getType() const;139 getType() const;
140 140
141}; /* class CollectionImpl */141}; /* class CollectionImpl */
142142
=== modified file 'src/api/dynamiccontextimpl.cpp'
--- src/api/dynamiccontextimpl.cpp 2013-08-01 17:23:58 +0000
+++ src/api/dynamiccontextimpl.cpp 2013-09-24 21:48:10 +0000
@@ -643,21 +643,14 @@
643643
644 checkItem(lItem);644 checkItem(lItem);
645645
646 TypeManager* tm = theStaticContext->get_typemanager();646 if (!TypeOps::is_subtype(lItem->getTypeCode(), store::XS_DATETIME))
647
648 xqtref_t lItemType = tm->create_named_type(lItem->getType(),
649 TypeConstants::QUANT_ONE,
650 QueryLoc::null);
651
652 if (!TypeOps::is_subtype(tm,
653 *lItemType,
654 *GENV_TYPESYSTEM.DATETIME_TYPE_ONE,
655 QueryLoc::null))
656 {647 {
648 TypeManager* tm = theStaticContext->get_typemanager();
649 xqtref_t type = tm->create_value_type(lItem);
657 RAISE_ERROR_NO_LOC(zerr::ZAPI0014_INVALID_ARGUMENT,650 RAISE_ERROR_NO_LOC(zerr::ZAPI0014_INVALID_ARGUMENT,
658 ERROR_PARAMS(lItemType->toString(),651 ERROR_PARAMS(type->toSchemaString(),
659 ZED(TypeIsNotSubtype),652 ZED(TypeIsNotSubtype),
660 GENV_TYPESYSTEM.DATETIME_TYPE_ONE->toString()));653 GENV_TYPESYSTEM.DATETIME_TYPE_ONE->toSchemaString()));
661 }654 }
662655
663 theCtx->set_current_date_time(lItem);656 theCtx->set_current_date_time(lItem);
664657
=== removed file 'src/api/identtypesimpl.cpp'
--- src/api/identtypesimpl.cpp 2013-03-05 12:34:19 +0000
+++ src/api/identtypesimpl.cpp 1970-01-01 00:00:00 +0000
@@ -1,67 +0,0 @@
1/*
2 * Copyright 2006-2008 The FLWOR Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#include "stdafx.h"
18#include <zorba/identtypes.h>
19
20namespace zorba {
21
22char const *const IdentTypes::kind_string_of[] =
23{
24 "NAMED",
25 "element",
26 "attribute",
27 "document-node",
28 "processing-instruction",
29 "text",
30 "comment",
31 "namespace-node",
32 "node",
33 "item",
34 "empty-sequence",
35 "schema-element",
36 "schema-attribute",
37 "INVALID",
38 0
39};
40
41
42char const *const IdentTypes::quantifier_string_of[] =
43{
44 "",
45 "?",
46 "+",
47 "*",
48 0
49};
50
51}
52
53namespace std {
54
55ostream& operator<<(ostream& o, const zorba::IdentTypes::kind_t ik)
56{
57 return o << zorba::IdentTypes::kind_string_of[ik];
58}
59
60ostream& operator<<(ostream& o, const zorba::IdentTypes::quantifier_t iq)
61{
62 return o << zorba::IdentTypes::quantifier_string_of[iq];
63}
64
65}
66
67/* vim:set et sw=2 ts=2: */
680
=== added file 'src/api/sequencetype.cpp'
--- src/api/sequencetype.cpp 1970-01-01 00:00:00 +0000
+++ src/api/sequencetype.cpp 2013-09-24 21:48:10 +0000
@@ -0,0 +1,799 @@
1/*
2 * Copyright 2006-2008 The FLWOR Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#include "stdafx.h"
17
18#ifndef ZORBA_API_SEQUENCE_TYPE
19#define ZORBA_API_SEQUENCE_TYPE
20
21#include <zorba/typeident.h>
22
23#include "types/typeimpl.h"
24#include "types/root_typemanager.h"
25
26#include "diagnostics/assert.h"
27
28#include "api/unmarshaller.h"
29
30#include "context/static_context.h"
31
32#include "store/api/item_factory.h"
33
34
35namespace std
36{
37
38ostream& operator<<(ostream& o, const zorba::SequenceType::Kind k)
39{
40 return o << zorba::SequenceType::kind_string_of[k];
41}
42
43ostream& operator<<(ostream& o, const zorba::SequenceType::Quantifier q)
44{
45 return o << zorba::SequenceType::quantifier_string_of[q];
46}
47
48
49ostream& operator<<(ostream& o, const zorba::SequenceType& ti)
50{
51 return ti.emit(o);
52}
53
54}
55
56
57namespace zorba
58{
59
60
61char const *const SequenceType::kind_string_of[] =
62{
63 "empty-sequence",
64 "item",
65 "AtomicOrUnion",
66 "function",
67 "structured-item",
68 "node",
69 "document-node",
70 "element",
71 "schema-element",
72 "attribute",
73 "schema-attribute",
74 "processing-instruction",
75 "text",
76 "comment",
77 "namespace-node",
78 "json-item",
79 "object",
80 "array",
81 "INVALID",
82 0
83};
84
85
86char const *const SequenceType::quantifier_string_of[] =
87{
88 "",
89 "?",
90 "*",
91 "+",
92 "INVALID",
93 0
94};
95
96
97
98/*******************************************************************************
99
100********************************************************************************/
101SequenceType SequenceType::createEmptyType()
102{
103 return Unmarshaller::createSequenceType(GENV_TYPESYSTEM.EMPTY_TYPE.getp());
104}
105
106
107SequenceType SequenceType::createItemType(Quantifier quant)
108{
109 RootTypeManager& rtm = GENV_TYPESYSTEM;
110
111 switch (quant)
112 {
113 case QUANT_ONE:
114 return Unmarshaller::createSequenceType(rtm.ITEM_TYPE_ONE.getp());
115 case QUANT_QUESTION:
116 return Unmarshaller::createSequenceType(rtm.ITEM_TYPE_QUESTION.getp());
117 case QUANT_PLUS:
118 return Unmarshaller::createSequenceType(rtm.ITEM_TYPE_PLUS.getp());
119 case QUANT_STAR:
120 return Unmarshaller::createSequenceType(rtm.ITEM_TYPE_STAR.getp());
121 default:
122 ZORBA_ASSERT(false);
123 }
124}
125
126
127SequenceType SequenceType::createAtomicOrUnionType(
128 const StaticContext_t& sctx,
129 const String& uri,
130 const String& localName,
131 Quantifier quant)
132{
133 TypeManager* tm;
134
135 if (sctx == NULL)
136 {
137 tm = &GENV_TYPESYSTEM;
138 }
139 else
140 {
141 static_context* sctx2 = Unmarshaller::getInternalStaticContext(sctx);
142 tm = sctx2->get_typemanager();
143 }
144
145 zstring& ns = Unmarshaller::getInternalString(uri);
146 zstring& local = Unmarshaller::getInternalString(localName);
147
148 store::Item_t qname;
149 GENV_ITEMFACTORY->createQName(qname, ns, "", local);
150
151 xqtref_t type = tm->create_named_type(qname, quant, QueryLoc::null, false);
152
153 return Unmarshaller::createSequenceType(type.getp());
154}
155
156
157SequenceType SequenceType::createStructuredItemType(Quantifier quant)
158{
159 RootTypeManager& rtm = GENV_TYPESYSTEM;
160
161 switch (quant)
162 {
163 case QUANT_ONE:
164 return Unmarshaller::createSequenceType(rtm.STRUCTURED_ITEM_TYPE_ONE.getp());
165 case QUANT_QUESTION:
166 return Unmarshaller::createSequenceType(rtm.STRUCTURED_ITEM_TYPE_QUESTION.getp());
167 case QUANT_PLUS:
168 return Unmarshaller::createSequenceType(rtm.STRUCTURED_ITEM_TYPE_PLUS.getp());
169 case QUANT_STAR:
170 return Unmarshaller::createSequenceType(rtm.STRUCTURED_ITEM_TYPE_STAR.getp());
171 default:
172 ZORBA_ASSERT(false);
173 }
174}
175
176
177SequenceType SequenceType::createAnyNodeType(Quantifier quant)
178{
179 RootTypeManager& rtm = GENV_TYPESYSTEM;
180
181 switch (quant)
182 {
183 case QUANT_ONE:
184 return Unmarshaller::createSequenceType(rtm.ANY_NODE_TYPE_ONE.getp());
185 case QUANT_QUESTION:
186 return Unmarshaller::createSequenceType(rtm.ANY_NODE_TYPE_QUESTION.getp());
187 case QUANT_PLUS:
188 return Unmarshaller::createSequenceType(rtm.ANY_NODE_TYPE_PLUS.getp());
189 case QUANT_STAR:
190 return Unmarshaller::createSequenceType(rtm.ANY_NODE_TYPE_STAR.getp());
191 default:
192 ZORBA_ASSERT(false);
193 }
194}
195
196
197SequenceType SequenceType::createDocumentType(
198 const SequenceType& contentType,
199 Quantifier quant)
200{
201 const XQType* contentType2 = Unmarshaller::getInternalType(contentType);
202
203 TypeManager* tm = (contentType2 == NULL ?
204 &GENV_TYPESYSTEM :
205 contentType2->get_manager());
206
207 store::Item_t qname;
208
209 xqtref_t res = tm->create_node_type(store::StoreConsts::documentNode,
210 qname,
211 contentType2,
212 quant,
213 false,
214 false);
215
216 return Unmarshaller::createSequenceType(res.getp());
217}
218
219
220SequenceType SequenceType::createElementType(
221 const StaticContext_t& sctx,
222 const String& nodeUri,
223 const String& nodeLocalName,
224 const String& typeUri,
225 const String& typeLocalName,
226 bool nillable,
227 Quantifier quant)
228{
229 TypeManager* tm;
230
231 if (sctx == NULL)
232 {
233 tm = &GENV_TYPESYSTEM;
234 }
235 else
236 {
237 static_context* sctx2 = Unmarshaller::getInternalStaticContext(sctx);
238 tm = sctx2->get_typemanager();
239 }
240
241 zstring& nodeNS = Unmarshaller::getInternalString(nodeUri);
242 zstring& nodeLocal = Unmarshaller::getInternalString(nodeLocalName);
243 store::Item_t nodeQName;
244
245 if (!nodeLocal.empty())
246 GENV_ITEMFACTORY->createQName(nodeQName, nodeNS, "", nodeLocal);
247
248 zstring& typeNS = Unmarshaller::getInternalString(typeUri);
249 zstring& typeLocal = Unmarshaller::getInternalString(typeLocalName);
250 store::Item_t typeQName;
251 xqtref_t contentType;
252
253 if (!typeLocal.empty())
254 {
255 GENV_ITEMFACTORY->createQName(typeQName, typeNS, "", typeLocal);
256
257 contentType = tm->create_named_type(typeQName, QUANT_ONE, QueryLoc::null, false);
258
259 if (contentType == NULL)
260 return Unmarshaller::createSequenceType(NULL);
261 }
262
263 xqtref_t res = tm->create_node_type(store::StoreConsts::elementNode,
264 nodeQName,
265 contentType,
266 quant,
267 nillable,
268 false);
269
270 return Unmarshaller::createSequenceType(res.getp());
271}
272
273
274SequenceType SequenceType::createSchemaElementType(
275 const StaticContext_t& sctx,
276 const String& uri,
277 const String& localName,
278 Quantifier quant)
279{
280 ZORBA_ASSERT(sctx != NULL);
281
282 static_context* sctx2 = Unmarshaller::getInternalStaticContext(sctx);
283
284 TypeManager* tm = sctx2->get_typemanager();
285
286 zstring& ns = Unmarshaller::getInternalString(uri);
287 zstring& local = Unmarshaller::getInternalString(localName);
288 store::Item_t qname;
289
290 ZORBA_ASSERT(!local.empty());
291
292 GENV_ITEMFACTORY->createQName(qname, ns, "", local);
293
294 try
295 {
296 xqtref_t res = tm->create_schema_element_type(qname, quant, QueryLoc::null);
297
298 return Unmarshaller::createSequenceType(res.getp());
299 }
300 catch (...)
301 {
302 return Unmarshaller::createSequenceType(NULL);
303 }
304}
305
306
307SequenceType SequenceType::createAttributeType(
308 const StaticContext_t& sctx,
309 const String& nodeUri,
310 const String& nodeLocalName,
311 const String& typeUri,
312 const String& typeLocalName,
313 Quantifier quant)
314{
315 TypeManager* tm;
316
317 if (sctx == NULL)
318 {
319 tm = &GENV_TYPESYSTEM;
320 }
321 else
322 {
323 static_context* sctx2 = Unmarshaller::getInternalStaticContext(sctx);
324 tm = sctx2->get_typemanager();
325 }
326
327 zstring& nodeNS = Unmarshaller::getInternalString(nodeUri);
328 zstring& nodeLocal = Unmarshaller::getInternalString(nodeLocalName);
329 store::Item_t nodeQName;
330
331 if (!nodeLocal.empty())
332 GENV_ITEMFACTORY->createQName(nodeQName, nodeNS, "", nodeLocal);
333
334 zstring& typeNS = Unmarshaller::getInternalString(typeUri);
335 zstring& typeLocal = Unmarshaller::getInternalString(typeLocalName);
336 store::Item_t typeQName;
337 xqtref_t contentType;
338
339 if (!typeLocal.empty())
340 {
341 GENV_ITEMFACTORY->createQName(typeQName, typeNS, "", typeLocal);
342
343 contentType = tm->create_named_type(typeQName, QUANT_ONE, QueryLoc::null, false);
344
345 if (contentType == NULL)
346 return Unmarshaller::createSequenceType(NULL);
347 }
348
349 xqtref_t res = tm->create_node_type(store::StoreConsts::attributeNode,
350 nodeQName,
351 contentType,
352 quant,
353 false,
354 false);
355
356 return Unmarshaller::createSequenceType(res.getp());
357}
358
359
360SequenceType SequenceType::createSchemaAttributeType(
361 const StaticContext_t& sctx,
362 const String& uri,
363 const String& localName,
364 Quantifier quant)
365{
366 ZORBA_ASSERT(sctx != NULL);
367
368 static_context* sctx2 = Unmarshaller::getInternalStaticContext(sctx);
369
370 TypeManager* tm = sctx2->get_typemanager();
371
372 zstring& ns = Unmarshaller::getInternalString(uri);
373 zstring& local = Unmarshaller::getInternalString(localName);
374 store::Item_t qname;
375
376 ZORBA_ASSERT(!local.empty());
377
378 GENV_ITEMFACTORY->createQName(qname, ns, "", local);
379
380 try
381 {
382 xqtref_t res = tm->create_schema_attribute_type(qname, quant, QueryLoc::null);
383
384 return Unmarshaller::createSequenceType(res.getp());
385 }
386 catch (...)
387 {
388 return Unmarshaller::createSequenceType(NULL);
389 }
390}
391
392
393SequenceType SequenceType::createPIType(Quantifier quant)
394{
395 TypeManager* tm = &GENV_TYPESYSTEM;
396
397 xqtref_t res = tm->create_node_type(store::StoreConsts::piNode,
398 NULL,
399 NULL,
400 quant,
401 false,
402 false);
403
404 return Unmarshaller::createSequenceType(res.getp());
405}
406
407
408SequenceType SequenceType::createTextType(Quantifier quant)
409{
410 TypeManager* tm = &GENV_TYPESYSTEM;
411
412 xqtref_t res = tm->create_node_type(store::StoreConsts::textNode,
413 NULL,
414 NULL,
415 quant,
416 false,
417 false);
418
419 return Unmarshaller::createSequenceType(res.getp());
420}
421
422
423SequenceType SequenceType::createCommentType(Quantifier quant)
424{
425 TypeManager* tm = &GENV_TYPESYSTEM;
426
427 xqtref_t res = tm->create_node_type(store::StoreConsts::commentNode,
428 NULL,
429 NULL,
430 quant,
431 false,
432 false);
433
434 return Unmarshaller::createSequenceType(res.getp());
435}
436
437
438SequenceType SequenceType::createNamespaceType(Quantifier quant)
439{
440 TypeManager* tm = &GENV_TYPESYSTEM;
441
442 xqtref_t res = tm->create_node_type(store::StoreConsts::namespaceNode,
443 NULL,
444 NULL,
445 quant,
446 false,
447 false);
448
449 return Unmarshaller::createSequenceType(res.getp());
450}
451
452
453SequenceType SequenceType::createJSONItemType(Quantifier q)
454{
455 TypeManager* tm = &GENV_TYPESYSTEM;
456
457 xqtref_t res = tm->create_json_type(store::StoreConsts::jsonItem, q);
458
459 return Unmarshaller::createSequenceType(res.getp());
460}
461
462
463SequenceType SequenceType::createJSONObjectType(Quantifier q)
464{
465 TypeManager* tm = &GENV_TYPESYSTEM;
466
467 xqtref_t res = tm->create_json_type(store::StoreConsts::jsonObject, q);
468
469 return Unmarshaller::createSequenceType(res.getp());
470}
471
472
473SequenceType SequenceType::createJSONArrayType(Quantifier q)
474{
475 TypeManager* tm = &GENV_TYPESYSTEM;
476
477 xqtref_t res = tm->create_json_type(store::StoreConsts::jsonArray, q);
478
479 return Unmarshaller::createSequenceType(res.getp());
480}
481
482
483
484/*******************************************************************************
485
486********************************************************************************/
487SequenceType::SequenceType()
488 :
489 theType(NULL)
490{
491}
492
493
494SequenceType::SequenceType(const XQType* type)
495 :
496 theType(type)
497{
498 if (theType)
499 RCHelper::addReference(theType);
500}
501
502
503SequenceType::SequenceType(const SequenceType& other)
504 :
505 theType(other.theType)
506{
507 if (theType)
508 RCHelper::addReference(theType);
509}
510
511
512SequenceType::~SequenceType()
513{
514 if (theType)
515 {
516 RCHelper::removeReference(const_cast<XQType*>(theType));
517 theType = NULL;
518 }
519}
520
521
522bool SequenceType::isValid() const
523{
524 return theType != NULL;
525}
526
527
528SequenceType::Quantifier SequenceType::getQuantifier() const
529{
530 return (theType->get_quantifier());
531}
532
533
534SequenceType::Kind SequenceType::getKind() const
535{
536 switch(theType->type_kind())
537 {
538 case XQType::EMPTY_KIND:
539 {
540 return EMPTY_TYPE;
541 }
542 case XQType::ITEM_KIND:
543 {
544 return ITEM_TYPE;
545 }
546 case XQType::ATOMIC_TYPE_KIND:
547 {
548 return ATOMIC_OR_UNION_TYPE;
549 }
550 case XQType::USER_DEFINED_KIND:
551 {
552 if (theType->isGenAtomicAny())
553 return ATOMIC_OR_UNION_TYPE;
554 else
555 return INVALID_TYPE;
556 }
557 case XQType::STRUCTURED_ITEM_KIND:
558 {
559 return STRUCTURED_ITEM_TYPE;
560 }
561 case XQType::NODE_TYPE_KIND:
562 {
563 const NodeXQType* nt = static_cast<const NodeXQType*>(theType);
564
565 switch (nt->get_node_kind())
566 {
567 case store::StoreConsts::anyNode:
568 {
569 return NODE_TYPE;
570 }
571 case store::StoreConsts::documentNode:
572 {
573 return DOCUMENT_TYPE;
574 }
575 case store::StoreConsts::elementNode:
576 {
577 if (nt->is_schema_test())
578 return SCHEMA_ELEMENT_TYPE;
579 else
580 return ELEMENT_TYPE;
581 }
582 case store::StoreConsts::attributeNode:
583 {
584 if (nt->is_schema_test())
585 return SCHEMA_ATTRIBUTE_TYPE;
586 else
587 return ATTRIBUTE_TYPE;
588 }
589 case store::StoreConsts::textNode:
590 {
591 return TEXT_TYPE;
592 }
593 case store::StoreConsts::commentNode:
594 {
595 return COMMENT_TYPE;
596 }
597 case store::StoreConsts::piNode:
598 {
599 return PI_TYPE;
600 }
601 case store::StoreConsts::namespaceNode:
602 {
603 return NAMESPACE_TYPE;
604 }
605 default:
606 {
607 ZORBA_ASSERT(false);
608 return INVALID_TYPE;
609 }
610 }
611 }
612 case XQType::JSON_TYPE_KIND:
613 {
614 const JSONXQType* t = static_cast<const JSONXQType*>(theType);
615
616 switch (t->get_json_kind())
617 {
618 case store::StoreConsts::jsonItem:
619 return JSON_ITEM_TYPE;
620
621 case store::StoreConsts::jsonObject:
622 return JSON_OBJECT_TYPE;
623
624 case store::StoreConsts::jsonArray:
625 return JSON_ARRAY_TYPE;
626
627 default:
628 ZORBA_ASSERT(false);
629 }
630 }
631 case XQType::UNTYPED_KIND:
632 case XQType::ANY_TYPE_KIND:
633 case XQType::ANY_SIMPLE_TYPE_KIND:
634 default:
635 {
636 return INVALID_TYPE;
637 }
638 }
639}
640
641
642String SequenceType::getTypeUri() const
643{
644 switch (theType->type_kind())
645 {
646 case XQType::ATOMIC_TYPE_KIND:
647 case XQType::USER_DEFINED_KIND:
648 {
649 store::Item_t qname = theType->getQName();
650
651 return Unmarshaller::newString(qname->getNamespace());
652 }
653 default:
654 {
655 return String("");
656 }
657 }
658}
659
660
661String SequenceType::getTypeLocalName() const
662{
663 switch (theType->type_kind())
664 {
665 case XQType::ATOMIC_TYPE_KIND:
666 case XQType::USER_DEFINED_KIND:
667 {
668 store::Item_t qname = theType->getQName();
669
670 return Unmarshaller::newString(qname->getLocalName());
671 }
672 default:
673 {
674 return String("");
675 }
676 }
677}
678
679
680String SequenceType::getNodeUri() const
681{
682 if (theType->type_kind() == XQType::NODE_TYPE_KIND)
683 {
684 const NodeXQType* nt = static_cast<const NodeXQType*>(theType);
685
686 if (nt->get_node_name() != NULL)
687 return Unmarshaller::newString(nt->get_node_name()->getNamespace());
688 }
689
690 return String("");
691}
692
693
694String SequenceType::getNodeLocalName() const
695{
696 if (theType->type_kind() == XQType::NODE_TYPE_KIND)
697 {
698 const NodeXQType* nt = static_cast<const NodeXQType*>(theType);
699
700 if (nt->get_node_name() != NULL)
701 return Unmarshaller::newString(nt->get_node_name()->getLocalName());
702 }
703
704 return String("");
705}
706
707
708String SequenceType::getContentTypeUri() const
709{
710 switch (theType->type_kind())
711 {
712 case XQType::NODE_TYPE_KIND:
713 {
714 const NodeXQType* nt = static_cast<const NodeXQType*>(theType);
715
716 store::StoreConsts::NodeKind nodeKind = nt->get_node_kind();
717
718 if (nodeKind == store::StoreConsts::elementNode ||
719 nodeKind == store::StoreConsts::attributeNode)
720 {
721 const XQType* contentType = nt->get_content_type();
722
723 if (contentType != NULL)
724 return Unmarshaller::newString(contentType->getQName()->getNamespace());
725 }
726 }
727 default:
728 {
729 return String("");
730 }
731 }
732}
733
734
735String SequenceType::getContentTypeLocalName() const
736{
737 switch (theType->type_kind())
738 {
739 case XQType::NODE_TYPE_KIND:
740 {
741 const NodeXQType* nt = static_cast<const NodeXQType*>(theType);
742
743 store::StoreConsts::NodeKind nodeKind = nt->get_node_kind();
744
745 if (nodeKind == store::StoreConsts::elementNode ||
746 nodeKind == store::StoreConsts::attributeNode)
747 {
748 const XQType* contentType = nt->get_content_type();
749
750 if (contentType != NULL)
751 return Unmarshaller::newString(contentType->getQName()->getLocalName());
752 }
753 }
754 default:
755 {
756 return String("");
757 }
758 }
759}
760
761
762bool SequenceType::isWildcard() const
763{
764 if (theType->type_kind() == XQType::NODE_TYPE_KIND)
765 {
766 const NodeXQType* nt = static_cast<const NodeXQType*>(theType);
767
768 if (nt->get_node_name() == NULL)
769 return true;
770 }
771
772 return false;
773}
774
775
776bool SequenceType::isSchemaTest() const
777{
778 if (theType->type_kind() == XQType::NODE_TYPE_KIND)
779 {
780 const NodeXQType* nt = static_cast<const NodeXQType*>(theType);
781
782 return nt->is_schema_test();
783 }
784
785 return false;
786}
787
788
789std::ostream& SequenceType::emit(std::ostream& os) const
790{
791 return os << theType->toSchemaString();
792}
793
794
795}
796
797
798#endif
799/* vim:set et sw=2 ts=2: */
0800
=== modified file 'src/api/staticcontextimpl.cpp'
--- src/api/staticcontextimpl.cpp 2013-08-16 13:00:06 +0000
+++ src/api/staticcontextimpl.cpp 2013-09-24 21:48:10 +0000
@@ -800,18 +800,17 @@
800/*******************************************************************************800/*******************************************************************************
801 URI Mapper801 URI Mapper
802*******************************************************************************/802*******************************************************************************/
803void803void StaticContextImpl::registerURIMapper(URIMapper* aMapper)
804StaticContextImpl::registerURIMapper(URIMapper* aMapper)
805{804{
806 // QQQ memory management?805 // QQQ memory management?
807 theCtx->add_uri_mapper(new URIMapperWrapper(*aMapper));806 theCtx->add_uri_mapper(new URIMapperWrapper(*aMapper));
808}807}
809808
809
810/*******************************************************************************810/*******************************************************************************
811 URL Resolver811 URL Resolver
812*******************************************************************************/812*******************************************************************************/
813void813void StaticContextImpl::registerURLResolver(URLResolver* aResolver)
814StaticContextImpl::registerURLResolver(URLResolver* aResolver)
815{814{
816 // QQQ memory management?815 // QQQ memory management?
817 theCtx->add_url_resolver(new URLResolverWrapper(*aResolver));816 theCtx->add_url_resolver(new URLResolverWrapper(*aResolver));
@@ -822,15 +821,13 @@
822/*******************************************************************************821/*******************************************************************************
823822
824********************************************************************************/823********************************************************************************/
825void824void StaticContextImpl::setDocumentType(const String& aDocUri, const SequenceType& type)
826StaticContextImpl::setDocumentType(const String& aDocUri, TypeIdentifier_t type)
827{825{
828 xqtref_t xqType = NULL;826 xqtref_t xqType = Unmarshaller::getInternalType(type);
829 if (type != NULL) {
830 xqType = theCtx->get_typemanager()->create_type(*type);
831 }
832
833 const zstring& uri = Unmarshaller::getInternalString(aDocUri);827 const zstring& uri = Unmarshaller::getInternalString(aDocUri);
828
829 ZORBA_ASSERT(xqType != NULL);
830
834 theCtx->bind_document(uri, xqType);831 theCtx->bind_document(uri, xqType);
835}832}
836833
@@ -838,33 +835,27 @@
838/*******************************************************************************835/*******************************************************************************
839836
840********************************************************************************/837********************************************************************************/
841TypeIdentifier_t838SequenceType StaticContextImpl::getDocumentType(const String& aDocUri) const
842StaticContextImpl::getDocumentType(const String& aDocUri) const
843{839{
844 const zstring& uri = Unmarshaller::getInternalString(aDocUri);840 const zstring& uri = Unmarshaller::getInternalString(aDocUri);
845 xqtref_t xqType = theCtx->lookup_document(uri);841 xqtref_t xqType = theCtx->lookup_document(uri);
846 TypeIdentifier_t type = NULL;
847 if (xqType == NULL)
848 {
849 return NULL;
850 }
851842
852 return TypeOps::get_type_identifier(theCtx->get_typemanager(), *xqType);843 return Unmarshaller::createSequenceType(xqType.getp());
853}844}
854845
855846
856/*******************************************************************************847/*******************************************************************************
857848
858********************************************************************************/849********************************************************************************/
859void850void StaticContextImpl::setCollectionType(
860StaticContextImpl::setCollectionType(const String& aCollectionUri, TypeIdentifier_t type)851 const String& aCollectionUri,
852 const SequenceType& type)
861{853{
862 xqtref_t xqType = NULL;854 xqtref_t xqType = Unmarshaller::getInternalType(type);
863 if (type != NULL)
864 {
865 xqType = theCtx->get_typemanager()->create_type(*type);
866 }
867 zstring& uri = Unmarshaller::getInternalString(aCollectionUri);855 zstring& uri = Unmarshaller::getInternalString(aCollectionUri);
856
857 ZORBA_ASSERT(xqType != NULL);
858
868 theCtx->bind_w3c_collection(uri, xqType);859 theCtx->bind_w3c_collection(uri, xqType);
869}860}
870861
@@ -872,20 +863,17 @@
872/*******************************************************************************863/*******************************************************************************
873864
874********************************************************************************/865********************************************************************************/
875TypeIdentifier_t866SequenceType StaticContextImpl::getCollectionType(const String& uri) const
876StaticContextImpl::getCollectionType(const String& aCollectionUri) const
877{867{
878868
879 const zstring& uri = Unmarshaller::getInternalString(aCollectionUri);869 const zstring& uri2 = Unmarshaller::getInternalString(uri);
880 const XQType* xqType = theCtx->lookup_w3c_collection(uri);870
881 TypeIdentifier_t type = NULL;871 const XQType* xqType = theCtx->lookup_w3c_collection(uri2);
882 if (xqType == NULL)872
883 {873 return Unmarshaller::createSequenceType(xqType);
884 return NULL;
885 }
886 return TypeOps::get_type_identifier(theCtx->get_typemanager(), *xqType);
887}874}
888875
876
889/*******************************************************************************877/*******************************************************************************
890878
891********************************************************************************/879********************************************************************************/
@@ -1041,14 +1029,12 @@
1041/*******************************************************************************1029/*******************************************************************************
10421030
1043********************************************************************************/1031********************************************************************************/
1044void1032void StaticContextImpl::setContextItemStaticType(const SequenceType& type)
1045StaticContextImpl::setContextItemStaticType(TypeIdentifier_t type)
1046{1033{
1047 xqtref_t xqType = NULL;1034 xqtref_t xqType = Unmarshaller::getInternalType(type);
1048 if (type != NULL)1035
1049 {1036 ZORBA_ASSERT(xqType != NULL);
1050 xqType = theCtx->get_typemanager()->create_type(*type);1037
1051 }
1052 theCtx->set_context_item_type(xqType, QueryLoc::null);1038 theCtx->set_context_item_type(xqType, QueryLoc::null);
1053}1039}
10541040
@@ -1056,15 +1042,11 @@
1056/*******************************************************************************1042/*******************************************************************************
10571043
1058********************************************************************************/1044********************************************************************************/
1059TypeIdentifier_t1045SequenceType StaticContextImpl::getContextItemStaticType() const
1060StaticContextImpl::getContextItemStaticType() const
1061{1046{
1062 xqtref_t type = theCtx->get_context_item_type();1047 xqtref_t type = theCtx->get_context_item_type();
1063 if (type == NULL)1048
1064 {1049 return Unmarshaller::createSequenceType(type.getp());
1065 return NULL;
1066 }
1067 return TypeOps::get_type_identifier(theCtx->get_typemanager(), *type);
1068}1050}
10691051
10701052
10711053
=== modified file 'src/api/staticcontextimpl.h'
--- src/api/staticcontextimpl.h 2013-08-06 08:34:43 +0000
+++ src/api/staticcontextimpl.h 2013-09-24 21:48:10 +0000
@@ -17,7 +17,6 @@
17#ifndef ZORBA_API_STATIC_CONTEXT_IMPL_H17#ifndef ZORBA_API_STATIC_CONTEXT_IMPL_H
18#define ZORBA_API_STATIC_CONTEXT_IMPL_H18#define ZORBA_API_STATIC_CONTEXT_IMPL_H
1919
20#include <zorba/typeident.h>
21#include <zorba/static_context.h>20#include <zorba/static_context.h>
22#include <zorba/api_shared_types.h>21#include <zorba/api_shared_types.h>
23#include <map>22#include <map>
@@ -187,9 +186,9 @@
187 registerModule(ExternalModule* aModule);186 registerModule(ExternalModule* aModule);
188187
189 virtual void188 virtual void
190 setDocumentType(const String& aDocUri, TypeIdentifier_t type);189 setDocumentType(const String& aDocUri, const SequenceType& type);
191190
192 virtual TypeIdentifier_t191 virtual SequenceType
193 getDocumentType(const String& aDocUri) const;192 getDocumentType(const String& aDocUri) const;
194193
195 virtual void194 virtual void
@@ -199,9 +198,9 @@
199 registerURLResolver(URLResolver* aResolver);198 registerURLResolver(URLResolver* aResolver);
200199
201 virtual void200 virtual void
202 setCollectionType(const String& aCollectionUri, TypeIdentifier_t type);201 setCollectionType(const String& aCollectionUri, const SequenceType& type);
203202
204 virtual TypeIdentifier_t203 virtual SequenceType
205 getCollectionType(const String& aCollectionUri) const;204 getCollectionType(const String& aCollectionUri) const;
206205
207 virtual bool206 virtual bool
@@ -229,9 +228,9 @@
229 std::vector<Function_t>& aFunctions) const;228 std::vector<Function_t>& aFunctions) const;
230229
231 virtual void230 virtual void
232 setContextItemStaticType(TypeIdentifier_t type);231 setContextItemStaticType(const SequenceType& type);
233232
234 virtual TypeIdentifier_t233 virtual SequenceType
235 getContextItemStaticType() const;234 getContextItemStaticType() const;
236235
237 virtual void236 virtual void
238237
=== removed file 'src/api/typeidentimpl.cpp'
--- src/api/typeidentimpl.cpp 2013-06-15 02:57:08 +0000
+++ src/api/typeidentimpl.cpp 1970-01-01 00:00:00 +0000
@@ -1,397 +0,0 @@
1/*
2 * Copyright 2006-2008 The FLWOR Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#include "stdafx.h"
17
18#ifndef ZORBA_TYPEIDENT_IMPL_H
19#define ZORBA_TYPEIDENT_IMPL_H
20
21#include <zorba/typeident.h>
22
23#include "diagnostics/assert.h"
24
25namespace zorba {
26
27TypeIdentifier::TypeIdentifier()
28 :
29 m_kind(IdentTypes::INVALID_TYPE),
30 m_quantifier(IdentTypes::QUANT_ONE),
31 m_uri(""),
32 m_uriWildcard(false),
33 m_localName(""),
34 m_localNameWildcard(false),
35 m_contentType()
36{
37}
38
39
40TypeIdentifier::~TypeIdentifier()
41{
42}
43
44
45IdentTypes::kind_t TypeIdentifier::getKind() const
46{
47 return m_kind;
48}
49
50
51IdentTypes::quantifier_t TypeIdentifier::getQuantifier() const
52{
53 return m_quantifier;
54}
55
56
57const String& TypeIdentifier::getUri() const
58{
59 return m_uri;
60}
61
62
63bool TypeIdentifier::isUriWildcard() const
64{
65 return m_uriWildcard;
66}
67
68
69const String& TypeIdentifier::getLocalName() const
70{
71 return m_localName;
72}
73
74
75bool TypeIdentifier::isLocalNameWildcard() const
76{
77 return m_localNameWildcard;
78}
79
80
81TypeIdentifier_t TypeIdentifier::getContentType() const
82{
83 return m_contentType;
84}
85
86
87TypeIdentifier_t TypeIdentifier::createNamedType(
88 const String& uri,
89 const String& localName,
90 IdentTypes::quantifier_t quantifier)
91{
92 TypeIdentifier_t ti(new TypeIdentifier());
93 ti->m_kind = IdentTypes::NAMED_TYPE;
94 ti->m_quantifier = quantifier;
95 ti->m_uri = uri;
96 ti->m_localName = localName;
97
98 return ti;
99}
100
101
102TypeIdentifier_t TypeIdentifier::createElementType(
103 const String& uri,
104 bool uriWildcard,
105 const String& localName,
106 bool localNameWildcard,
107 TypeIdentifier_t contentType,
108 IdentTypes::quantifier_t quantifier)
109{
110 // not sure why those were 2 different flags, we maintain 2 flags for
111 // compatibility, but they always need to be the same
112 ZORBA_ASSERT(uriWildcard == localNameWildcard);
113 TypeIdentifier_t ti(new TypeIdentifier());
114 ti->m_kind = IdentTypes::ELEMENT_TYPE;
115 ti->m_quantifier = quantifier;
116 ti->m_uri = uri;
117 ti->m_uriWildcard = uriWildcard;
118 ti->m_localName = localName;
119 ti->m_localNameWildcard = localNameWildcard;
120 ti->m_contentType = contentType;
121
122 return ti;
123}
124
125
126TypeIdentifier_t TypeIdentifier::createAttributeType(
127 const String& uri,
128 bool uriWildcard,
129 const String& localName,
130 bool localNameWildcard,
131 TypeIdentifier_t contentType,
132 IdentTypes::quantifier_t quantifier)
133{
134 // not sure why those were 2 different flags, we maintain 2 flags for
135 // compatibility, but they always need to be the same
136 ZORBA_ASSERT(uriWildcard == localNameWildcard);
137 TypeIdentifier_t ti(new TypeIdentifier());
138 ti->m_kind = IdentTypes::ATTRIBUTE_TYPE;
139 ti->m_quantifier = quantifier;
140 ti->m_uri = uri;
141 ti->m_uriWildcard = uriWildcard;
142 ti->m_localName = localName;
143 ti->m_localNameWildcard = localNameWildcard;
144 ti->m_contentType = contentType;
145
146 return ti;
147}
148
149
150TypeIdentifier_t TypeIdentifier::createDocumentType(
151 TypeIdentifier_t contentType,
152 IdentTypes::quantifier_t quantifier)
153{
154 TypeIdentifier_t ti(new TypeIdentifier());
155 ti->m_kind = IdentTypes::DOCUMENT_TYPE;
156 ti->m_quantifier = quantifier;
157 ti->m_contentType = contentType;
158
159 return ti;
160}
161
162
163TypeIdentifier_t TypeIdentifier::createPIType(IdentTypes::quantifier_t quantifier)
164{
165 TypeIdentifier_t ti(new TypeIdentifier());
166 ti->m_kind = IdentTypes::PI_TYPE;
167 ti->m_quantifier = quantifier;
168
169 return ti;
170}
171
172
173TypeIdentifier_t TypeIdentifier::createTextType(IdentTypes::quantifier_t quantifier)
174{
175 TypeIdentifier_t ti(new TypeIdentifier());
176 ti->m_kind = IdentTypes::TEXT_TYPE;
177 ti->m_quantifier = quantifier;
178
179 return ti;
180}
181
182
183TypeIdentifier_t TypeIdentifier::createCommentType(IdentTypes::quantifier_t quantifier)
184{
185 TypeIdentifier_t ti(new TypeIdentifier());
186 ti->m_kind = IdentTypes::COMMENT_TYPE;
187 ti->m_quantifier = quantifier;
188
189 return ti;
190}
191
192
193TypeIdentifier_t TypeIdentifier::createNamespaceType(IdentTypes::quantifier_t quantifier)
194{
195 TypeIdentifier_t ti(new TypeIdentifier());
196 ti->m_kind = IdentTypes::NAMESPACE_TYPE;
197 ti->m_quantifier = quantifier;
198
199 return ti;
200}
201
202
203TypeIdentifier_t TypeIdentifier::createAnyNodeType(IdentTypes::quantifier_t quantifier)
204{
205 TypeIdentifier_t ti(new TypeIdentifier());
206 ti->m_kind = IdentTypes::ANY_NODE_TYPE;
207 ti->m_quantifier = quantifier;
208
209 return ti;
210}
211
212
213TypeIdentifier_t TypeIdentifier::createStructuredItemType(IdentTypes::quantifier_t q)
214{
215 TypeIdentifier_t ti(new TypeIdentifier());
216 ti->m_kind = IdentTypes::STRUCTURED_ITEM_TYPE;
217 ti->m_quantifier = q;
218
219 return ti;
220}
221
222
223TypeIdentifier_t TypeIdentifier::createJSONItemType(IdentTypes::quantifier_t q)
224{
225 TypeIdentifier_t ti(new TypeIdentifier());
226 ti->m_kind = IdentTypes::JSON_ITEM_TYPE;
227 ti->m_quantifier = q;
228
229 return ti;
230}
231
232
233TypeIdentifier_t TypeIdentifier::createJSONObjectType(IdentTypes::quantifier_t q)
234{
235 TypeIdentifier_t ti(new TypeIdentifier());
236 ti->m_kind = IdentTypes::JSON_OBJECT_TYPE;
237 ti->m_quantifier = q;
238
239 return ti;
240}
241
242
243TypeIdentifier_t TypeIdentifier::createJSONArrayType(IdentTypes::quantifier_t q)
244{
245 TypeIdentifier_t ti(new TypeIdentifier());
246 ti->m_kind = IdentTypes::JSON_ARRAY_TYPE;
247 ti->m_quantifier = q;
248
249 return ti;
250}
251
252
253TypeIdentifier_t TypeIdentifier::createItemType(IdentTypes::quantifier_t quantifier)
254{
255 TypeIdentifier_t ti(new TypeIdentifier());
256 ti->m_kind = IdentTypes::ITEM_TYPE;
257 ti->m_quantifier = quantifier;
258
259 return ti;
260}
261
262
263TypeIdentifier_t TypeIdentifier::createEmptyType()
264{
265 TypeIdentifier_t ti(new TypeIdentifier());
266 ti->m_kind = IdentTypes::EMPTY_TYPE;
267 ti->m_quantifier = IdentTypes::QUANT_ONE;
268
269 return ti;
270}
271
272TypeIdentifier_t TypeIdentifier::createSchemaElementType(
273 const String& uri,
274 const String& localName,
275 IdentTypes::quantifier_t quantifier)
276{
277 TypeIdentifier_t ti(new TypeIdentifier());
278 ti->m_kind = IdentTypes::SCHEMA_ELEMENT_TYPE;
279 ti->m_quantifier = quantifier;
280 ti->m_uri = uri;
281 ti->m_uriWildcard = false;
282 ti->m_localName = localName;
283 ti->m_localNameWildcard = false;
284
285 return ti;
286}
287
288
289TypeIdentifier_t TypeIdentifier::createSchemaAttributeType(
290 const String& uri,
291 const String& localName,
292 IdentTypes::quantifier_t quantifier)
293{
294 TypeIdentifier_t ti(new TypeIdentifier());
295 ti->m_kind = IdentTypes::SCHEMA_ATTRIBUTE_TYPE;
296 ti->m_quantifier = quantifier;
297 ti->m_uri = uri;
298 ti->m_uriWildcard = false;
299 ti->m_localName = localName;
300 ti->m_localNameWildcard = false;
301
302 return ti;
303}
304
305
306std::ostream& TypeIdentifier::emit(std::ostream& os) const
307{
308 emitItemType(os);
309 return os << m_quantifier;
310}
311
312
313std::ostream& TypeIdentifier::emitItemType(std::ostream& os) const
314{
315 if (m_kind == IdentTypes::NAMED_TYPE)
316 {
317 return emitName(os);
318 }
319
320 os << m_kind;
321
322 switch (m_kind)
323 {
324 case IdentTypes::DOCUMENT_TYPE:
325 os << "(";
326 if (m_contentType != NULL)
327 {
328 os << m_contentType;
329 }
330 return os << ")";
331
332 case IdentTypes::ELEMENT_TYPE:
333 case IdentTypes::ATTRIBUTE_TYPE:
334 os << "(";
335 if (m_uriWildcard)
336 {
337 os << "*";
338 }
339 else
340 {
341 emitName(os);
342 }
343 if (! m_contentType.isNull())
344 {
345 os << "," << m_contentType;
346 }
347 return os << ")";
348
349 case IdentTypes::SCHEMA_ELEMENT_TYPE:
350 case IdentTypes::SCHEMA_ATTRIBUTE_TYPE:
351 os << "(";
352 emitName(os);
353 return os << ")";
354
355 case IdentTypes::ANY_NODE_TYPE:
356 case IdentTypes::COMMENT_TYPE:
357 case IdentTypes::EMPTY_TYPE:
358 case IdentTypes::ITEM_TYPE:
359 case IdentTypes::PI_TYPE:
360 case IdentTypes::TEXT_TYPE:
361 return os << "()";
362
363 case IdentTypes::INVALID_TYPE:
364 return os;
365
366 case IdentTypes::NAMED_TYPE:
367 default:
368 ZORBA_ASSERT(false);
369 }
370}
371
372
373std::ostream& TypeIdentifier::emitName(std::ostream& os) const
374{
375 return os << "{" << m_uri << "}" << m_localName;
376}
377
378}
379
380namespace std
381{
382
383ostream& operator<<(ostream& o, const zorba::TypeIdentifier& ti)
384{
385 return ti.emit(o);
386}
387
388ostream& operator<<(ostream& o, const zorba::TypeIdentifier_t ti)
389{
390 return ti->emit(o);
391}
392
393}
394
395
396#endif
397/* vim:set et sw=2 ts=2: */
3980
=== modified file 'src/api/unmarshaller.cpp'
--- src/api/unmarshaller.cpp 2013-08-01 17:23:58 +0000
+++ src/api/unmarshaller.cpp 2013-09-24 21:48:10 +0000
@@ -79,6 +79,18 @@
79}79}
8080
8181
82const XQType* Unmarshaller::getInternalType(const SequenceType& type)
83{
84 return type.theType;
85}
86
87
88SequenceType Unmarshaller::createSequenceType(const XQType* type)
89{
90 return type;
91}
92
93
82#define THE_STRING(STRING_OBJ) \94#define THE_STRING(STRING_OBJ) \
83 (const_cast<zstring*>( \95 (const_cast<zstring*>( \
84 reinterpret_cast<zstring const*>( &(STRING_OBJ).string_storage_ ) \96 reinterpret_cast<zstring const*>( &(STRING_OBJ).string_storage_ ) \
8597
=== modified file 'src/api/unmarshaller.h'
--- src/api/unmarshaller.h 2013-02-07 17:24:36 +0000
+++ src/api/unmarshaller.h 2013-09-24 21:48:10 +0000
@@ -24,16 +24,22 @@
24#include "common/shared_types.h"24#include "common/shared_types.h"
25#include "zorbatypes/zstring.h"25#include "zorbatypes/zstring.h"
2626
27namespace zorba {27namespace zorba
28{
2829
29class ZORBA_DLL_PUBLIC Unmarshaller 30class ZORBA_DLL_PUBLIC Unmarshaller
30{31{
31public:32public:
32 static store::Item* getInternalItem(const Item& aItem);33 static store::Item* getInternalItem(const Item& aItem);
3334
35 static const XQType* getInternalType(const SequenceType& type);
36
37 static SequenceType createSequenceType(const XQType* type);
38
34 static zstring& getInternalString(const String& aString);39 static zstring& getInternalString(const String& aString);
3540
36 static String newString( zstring const &s ) {41 static String newString(const zstring& s)
42 {
37 String::zstring_ptr const p = { &s };43 String::zstring_ptr const p = { &s };
38 return String( p );44 return String( p );
39 }45 }
4046
=== modified file 'src/compiler/codegen/plan_visitor.cpp'
--- src/compiler/codegen/plan_visitor.cpp 2013-09-17 21:12:49 +0000
+++ src/compiler/codegen/plan_visitor.cpp 2013-09-24 21:48:10 +0000
@@ -671,7 +671,7 @@
671671
672 xqtref_t exprType = initExpr->get_return_type();672 xqtref_t exprType = initExpr->get_return_type();
673673
674 if (exprType->get_quantifier() == TypeConstants::QUANT_ONE)674 if (exprType->get_quantifier() == SequenceType::QUANT_ONE)
675 singleItem = true;675 singleItem = true;
676 }676 }
677677
@@ -714,7 +714,7 @@
714 (varExpr->get_kind() == var_expr::local_var),714 (varExpr->get_kind() == var_expr::local_var),
715 exprIter);715 exprIter);
716716
717 if (exprType->get_quantifier() == TypeConstants::QUANT_ONE)717 if (exprType->get_quantifier() == SequenceType::QUANT_ONE)
718 iter->setSingleItem();718 iter->setSingleItem();
719719
720 push_itstack(iter);720 push_itstack(iter);
@@ -1028,7 +1028,7 @@
1028 {1028 {
1029 xqtref_t domainType = domExpr->get_return_type();1029 xqtref_t domainType = domExpr->get_return_type();
10301030
1031 if (domainType->get_quantifier() != TypeConstants::QUANT_ONE)1031 if (domainType->get_quantifier() != SequenceType::QUANT_ONE)
1032 ++numForClauses;1032 ++numForClauses;
1033 }1033 }
10341034
@@ -1257,9 +1257,9 @@
1257 clauseVarMap->theVarExprs.push_back(lc->get_var());1257 clauseVarMap->theVarExprs.push_back(lc->get_var());
1258 clauseVarMap->theVarRebinds.push_back(varRebind);1258 clauseVarMap->theVarRebinds.push_back(varRebind);
12591259
1260 if (domType->get_quantifier() == TypeConstants::QUANT_ONE)1260 if (domType->get_quantifier() == SequenceType::QUANT_ONE)
1261 varRebind->theIsFakeLetVar = true;1261 varRebind->theIsFakeLetVar = true;
1262 else if (domType->get_quantifier() == TypeConstants::QUANT_QUESTION)1262 else if (domType->get_quantifier() == SequenceType::QUANT_QUESTION)
1263 varRebind->theIsSingleItemLetVar = true;1263 varRebind->theIsSingleItemLetVar = true;
12641264
1265 break;1265 break;
@@ -2766,7 +2766,7 @@
2766 if (typeName != NULL)2766 if (typeName != NULL)
2767 {2767 {
2768 prd->setType(sctx->get_typemanager()->create_named_type(typeName,2768 prd->setType(sctx->get_typemanager()->create_named_type(typeName,
2769 TypeConstants::QUANT_ONE,2769 SequenceType::QUANT_ONE,
2770 loc,2770 loc,
2771 XPTY0004));2771 XPTY0004));
2772 }2772 }
@@ -2989,7 +2989,7 @@
2989 {2989 {
2990 axisItep->setType(sctx->get_typemanager()->2990 axisItep->setType(sctx->get_typemanager()->
2991 create_named_type(typeName,2991 create_named_type(typeName,
2992 TypeConstants::QUANT_ONE,2992 SequenceType::QUANT_ONE,
2993 qloc));2993 qloc));
2994 }2994 }
2995 axisItep->setNilledAllowed(v.getNilledAllowed());2995 axisItep->setNilledAllowed(v.getNilledAllowed());
29962996
=== modified file 'src/compiler/expression/expr.cpp'
--- src/compiler/expression/expr.cpp 2013-09-12 08:25:47 +0000
+++ src/compiler/expression/expr.cpp 2013-09-24 21:48:10 +0000
@@ -337,9 +337,9 @@
337 cast_base_expr(ccb, sctx, udf, loc, cast_expr_kind, inputExpr, type),337 cast_base_expr(ccb, sctx, udf, loc, cast_expr_kind, inputExpr, type),
338 theAllowsEmtpyInput(allowsEmptyInput)338 theAllowsEmtpyInput(allowsEmptyInput)
339{339{
340 assert(type->get_quantifier() == TypeConstants::QUANT_ONE ||340 assert(type->get_quantifier() == SequenceType::QUANT_ONE ||
341 type->get_quantifier() == TypeConstants::QUANT_QUESTION ||341 type->get_quantifier() == SequenceType::QUANT_QUESTION ||
342 type->get_quantifier() == TypeConstants::QUANT_STAR);342 type->get_quantifier() == SequenceType::QUANT_STAR);
343343
344 setNonDiscardable(ANNOTATION_TRUE_FIXED);344 setNonDiscardable(ANNOTATION_TRUE_FIXED);
345}345}
346346
=== modified file 'src/compiler/expression/expr_base.cpp'
--- src/compiler/expression/expr_base.cpp 2013-05-29 04:17:01 +0000
+++ src/compiler/expression/expr_base.cpp 2013-09-24 21:48:10 +0000
@@ -820,9 +820,9 @@
820 return false;820 return false;
821821
822 xqtref_t type = e->get_return_type();822 xqtref_t type = e->get_return_type();
823 TypeConstants::quantifier_t q = type->get_quantifier();823 SequenceType::Quantifier q = type->get_quantifier();
824824
825 if (q == TypeConstants::QUANT_ONE || q == TypeConstants::QUANT_QUESTION)825 if (q == SequenceType::QUANT_ONE || q == SequenceType::QUANT_QUESTION)
826 return true;826 return true;
827827
828 bool found = false;828 bool found = false;
@@ -1051,9 +1051,9 @@
1051 case treat_expr_kind:1051 case treat_expr_kind:
1052 {1052 {
1053 const treat_expr* treatExpr = static_cast<const treat_expr*>(this);1053 const treat_expr* treatExpr = static_cast<const treat_expr*>(this);
1054 TypeConstants::quantifier_t q = treatExpr->get_target_type()->get_quantifier();1054 SequenceType::Quantifier q = treatExpr->get_target_type()->get_quantifier();
10551055
1056 if (q == TypeConstants::QUANT_STAR || q == TypeConstants::QUANT_PLUS)1056 if (q == SequenceType::QUANT_STAR || q == SequenceType::QUANT_PLUS)
1057 {1057 {
1058 const expr* argExpr = treatExpr->get_input();1058 const expr* argExpr = treatExpr->get_input();
1059 return argExpr->is_map_internal(e, found);1059 return argExpr->is_map_internal(e, found);
@@ -1065,9 +1065,9 @@
1065 case promote_expr_kind:1065 case promote_expr_kind:
1066 {1066 {
1067 const promote_expr* promoteExpr = static_cast<const promote_expr*>(this);1067 const promote_expr* promoteExpr = static_cast<const promote_expr*>(this);
1068 TypeConstants::quantifier_t q = promoteExpr->get_target_type()->get_quantifier();1068 SequenceType::Quantifier q = promoteExpr->get_target_type()->get_quantifier();
10691069
1070 if (q == TypeConstants::QUANT_STAR || q == TypeConstants::QUANT_PLUS)1070 if (q == SequenceType::QUANT_STAR || q == SequenceType::QUANT_PLUS)
1071 {1071 {
1072 const expr* argExpr = promoteExpr->get_input();1072 const expr* argExpr = promoteExpr->get_input();
1073 return argExpr->is_map_internal(e, found);1073 return argExpr->is_map_internal(e, found);
10741074
=== modified file 'src/compiler/expression/expr_type.cpp'
--- src/compiler/expression/expr_type.cpp 2013-09-19 16:47:08 +0000
+++ src/compiler/expression/expr_type.cpp 2013-09-24 21:48:10 +0000
@@ -52,7 +52,7 @@
52 TypeManager* tm,52 TypeManager* tm,
53 store::StoreConsts::NodeKind nodekind,53 store::StoreConsts::NodeKind nodekind,
54 const store::Item_t& nodename,54 const store::Item_t& nodename,
55 TypeConstants::quantifier_t quant,55 SequenceType::Quantifier quant,
56 bool untyped);56 bool untyped);
5757
5858
@@ -121,11 +121,11 @@
121 {121 {
122 flwor_expr* e = static_cast<flwor_expr*>(this);122 flwor_expr* e = static_cast<flwor_expr*>(this);
123123
124 TypeConstants::quantifier_t quant = TypeConstants::QUANT_ONE;124 SequenceType::Quantifier quant = SequenceType::QUANT_ONE;
125125
126 csize numClauses = e->num_clauses();126 csize numClauses = e->num_clauses();
127127
128 for (csize i = 0; i < numClauses && quant != TypeConstants::QUANT_STAR; ++i)128 for (csize i = 0; i < numClauses && quant != SequenceType::QUANT_STAR; ++i)
129 {129 {
130 const flwor_clause* c = e->theClauses[i];130 const flwor_clause* c = e->theClauses[i];
131131
@@ -140,12 +140,12 @@
140 }140 }
141 case flwor_clause::window_clause :141 case flwor_clause::window_clause :
142 {142 {
143 quant = TypeConstants::QUANT_STAR;143 quant = SequenceType::QUANT_STAR;
144 break;144 break;
145 }145 }
146 case flwor_clause::where_clause :146 case flwor_clause::where_clause :
147 {147 {
148 quant = TypeOps::union_quant(quant, TypeConstants::QUANT_QUESTION);148 quant = TypeOps::union_quant(quant, SequenceType::QUANT_QUESTION);
149 break;149 break;
150 }150 }
151 default:151 default:
@@ -202,7 +202,7 @@
202202
203 if (e->get_forlet_clause()->is_allowing_empty())203 if (e->get_forlet_clause()->is_allowing_empty())
204 {204 {
205 derivedType = tm->create_type(*derivedType, TypeConstants::QUANT_QUESTION);205 derivedType = tm->create_type(*derivedType, SequenceType::QUANT_QUESTION);
206 }206 }
207 }207 }
208 else if (varKind == var_expr::wincond_in_var ||208 else if (varKind == var_expr::wincond_in_var ||
@@ -211,11 +211,11 @@
211 // TODO: we can be a little more specific here: if the quantifier of the211 // TODO: we can be a little more specific here: if the quantifier of the
212 // domain type is PLUS or ONE, then the quantifier of the "current" cond212 // domain type is PLUS or ONE, then the quantifier of the "current" cond
213 // var is ONE.213 // var is ONE.
214 derivedType = tm->create_type(*domainType, TypeConstants::QUANT_QUESTION);214 derivedType = tm->create_type(*domainType, SequenceType::QUANT_QUESTION);
215 }215 }
216 else if (varKind == var_expr::non_groupby_var)216 else if (varKind == var_expr::non_groupby_var)
217 {217 {
218 derivedType = tm->create_type(*domainType, TypeConstants::QUANT_STAR);218 derivedType = tm->create_type(*domainType, SequenceType::QUANT_STAR);
219 }219 }
220 else220 else
221 {221 {
@@ -373,20 +373,20 @@
373 cast_expr* e = static_cast<cast_expr*>(this);373 cast_expr* e = static_cast<cast_expr*>(this);
374374
375 xqtref_t argType = e->theInput->get_return_type();375 xqtref_t argType = e->theInput->get_return_type();
376 TypeConstants::quantifier_t argQuant = argType->get_quantifier();376 SequenceType::Quantifier argQuant = argType->get_quantifier();
377 TypeConstants::quantifier_t targetQuant = e->theTargetType->get_quantifier();377 SequenceType::Quantifier targetQuant = e->theTargetType->get_quantifier();
378378
379 if (TypeOps::is_equal(tm, *argType, *rtm.EMPTY_TYPE, get_loc()))379 if (TypeOps::is_equal(tm, *argType, *rtm.EMPTY_TYPE, get_loc()))
380 {380 {
381 if (targetQuant == TypeConstants::QUANT_QUESTION ||381 if (targetQuant == SequenceType::QUANT_QUESTION ||
382 targetQuant == TypeConstants::QUANT_STAR)382 targetQuant == SequenceType::QUANT_STAR)
383 newType = rtm.EMPTY_TYPE;383 newType = rtm.EMPTY_TYPE;
384 else384 else
385 newType = rtm.NONE_TYPE;385 newType = rtm.NONE_TYPE;
386 }386 }
387 else if (e->theTargetType->isAtomicAny())387 else if (e->theTargetType->isAtomicAny())
388 {388 {
389 TypeConstants::quantifier_t q = TypeOps::intersect_quant(argQuant, targetQuant);389 SequenceType::Quantifier q = TypeOps::intersect_quant(argQuant, targetQuant);
390390
391 newType = tm->create_type(*e->theTargetType, q);391 newType = tm->create_type(*e->theTargetType, q);
392 }392 }
@@ -400,13 +400,13 @@
400 if (targetType->isList())400 if (targetType->isList())
401 {401 {
402 newType = tm->create_type(*targetType->getListItemType(),402 newType = tm->create_type(*targetType->getListItemType(),
403 TypeConstants::QUANT_STAR);403 SequenceType::QUANT_STAR);
404 }404 }
405 else405 else
406 {406 {
407 assert(targetType->isAtomicAny() || targetType->isUnion());407 assert(targetType->isAtomicAny() || targetType->isUnion());
408408
409 TypeConstants::quantifier_t q = TypeOps::intersect_quant(argQuant, targetQuant);409 SequenceType::Quantifier q = TypeOps::intersect_quant(argQuant, targetQuant);
410410
411 newType = tm->create_type(*e->theTargetType, q);411 newType = tm->create_type(*e->theTargetType, q);
412 }412 }
@@ -423,7 +423,7 @@
423 xqtref_t input_ptype = TypeOps::prime_type(tm, *input_type);423 xqtref_t input_ptype = TypeOps::prime_type(tm, *input_type);
424 xqtref_t target_ptype = TypeOps::prime_type(tm, *e->theTargetType);424 xqtref_t target_ptype = TypeOps::prime_type(tm, *e->theTargetType);
425425
426 TypeConstants::quantifier_t q =426 SequenceType::Quantifier q =
427 TypeOps::intersect_quant(input_type->get_quantifier(),427 TypeOps::intersect_quant(input_type->get_quantifier(),
428 e->theTargetType->get_quantifier());428 e->theTargetType->get_quantifier());
429429
@@ -446,7 +446,7 @@
446 xqtref_t in_ptype = TypeOps::prime_type(tm, *in_type);446 xqtref_t in_ptype = TypeOps::prime_type(tm, *in_type);
447 xqtref_t target_ptype = TypeOps::prime_type(tm, *e->theTargetType);447 xqtref_t target_ptype = TypeOps::prime_type(tm, *e->theTargetType);
448448
449 TypeConstants::quantifier_t q =449 SequenceType::Quantifier q =
450 TypeOps::intersect_quant(in_type->get_quantifier(),450 TypeOps::intersect_quant(in_type->get_quantifier(),
451 e->theTargetType->get_quantifier());451 e->theTargetType->get_quantifier());
452452
@@ -512,7 +512,7 @@
512 newType = tm->create_node_type(store::StoreConsts::documentNode,512 newType = tm->create_node_type(store::StoreConsts::documentNode,
513 NULL,513 NULL,
514 contentType,514 contentType,
515 TypeConstants::QUANT_ONE,515 SequenceType::QUANT_ONE,
516 false,516 false,
517 false);517 false);
518 break;518 break;
@@ -527,7 +527,7 @@
527 newType = tm->create_node_type(store::StoreConsts::elementNode,527 newType = tm->create_node_type(store::StoreConsts::elementNode,
528 NULL,528 NULL,
529 contentType,529 contentType,
530 TypeConstants::QUANT_ONE,530 SequenceType::QUANT_ONE,
531 false,531 false,
532 false);532 false);
533 break;533 break;
@@ -551,7 +551,7 @@
551551
552 store::StoreConsts::NodeKind nodeKind;552 store::StoreConsts::NodeKind nodeKind;
553553
554 TypeConstants::quantifier_t q = TypeConstants::QUANT_ONE;554 SequenceType::Quantifier q = SequenceType::QUANT_ONE;
555555
556 switch (e->type)556 switch (e->type)
557 {557 {
@@ -563,7 +563,7 @@
563 newType = t;563 newType = t;
564564
565 else if (t->min_card() == 0)565 else if (t->min_card() == 0)
566 q = TypeConstants::QUANT_QUESTION;566 q = SequenceType::QUANT_QUESTION;
567567
568 nodeKind = store::StoreConsts::textNode;568 nodeKind = store::StoreConsts::textNode;
569 break;569 break;
@@ -593,7 +593,7 @@
593 newType = tm->create_node_type(store::StoreConsts::piNode,593 newType = tm->create_node_type(store::StoreConsts::piNode,
594 NULL,594 NULL,
595 contentType,595 contentType,
596 TypeConstants::QUANT_ONE,596 SequenceType::QUANT_ONE,
597 false,597 false,
598 false);598 false);
599 break;599 break;
@@ -675,7 +675,7 @@
675 for (csize i = 0; i < fiExpr->get_function()->getSignature().paramCount(); ++i)675 for (csize i = 0; i < fiExpr->get_function()->getSignature().paramCount(); ++i)
676 paramTypes.push_back(fiExpr->get_function()->getSignature()[i]);676 paramTypes.push_back(fiExpr->get_function()->getSignature()[i]);
677677
678 theType = rtm.create_function_type(paramTypes, retType, TypeConstants::QUANT_ONE);678 theType = rtm.create_function_type(paramTypes, retType, SequenceType::QUANT_ONE);
679 }679 }
680 return;680 return;
681 }681 }
@@ -855,11 +855,11 @@
855 store::Item* testNodeName = nodeTest->getQName();855 store::Item* testNodeName = nodeTest->getQName();
856 match_wild_t wildKind = nodeTest->getWildKind();856 match_wild_t wildKind = nodeTest->getWildKind();
857857
858 TypeConstants::quantifier_t inQuant = inputType->get_quantifier();858 SequenceType::Quantifier inQuant = inputType->get_quantifier();
859 store::StoreConsts::NodeKind inNodeKind = inputType->get_node_kind();859 store::StoreConsts::NodeKind inNodeKind = inputType->get_node_kind();
860 xqtref_t inContentType = inputType->get_content_type();860 xqtref_t inContentType = inputType->get_content_type();
861861
862 TypeConstants::quantifier_t star = TypeConstants::QUANT_STAR;862 SequenceType::Quantifier star = SequenceType::QUANT_STAR;
863863
864 bool inUntyped = false;864 bool inUntyped = false;
865 if (inContentType != NULL)865 if (inContentType != NULL)
@@ -1257,7 +1257,7 @@
1257 TypeManager* tm,1257 TypeManager* tm,
1258 store::StoreConsts::NodeKind nodekind,1258 store::StoreConsts::NodeKind nodekind,
1259 const store::Item_t& nodename,1259 const store::Item_t& nodename,
1260 TypeConstants::quantifier_t quant,1260 SequenceType::Quantifier quant,
1261 bool untyped)1261 bool untyped)
1262{1262{
1263 RootTypeManager& RTM = GENV_TYPESYSTEM;1263 RootTypeManager& RTM = GENV_TYPESYSTEM;
@@ -1270,12 +1270,12 @@
1270 else1270 else
1271 contentType = RTM.UNTYPED_TYPE;1271 contentType = RTM.UNTYPED_TYPE;
12721272
1273 if (TypeOps::is_sub_quant(quant, TypeConstants::QUANT_QUESTION))1273 if (TypeOps::is_sub_quant(quant, SequenceType::QUANT_QUESTION))
1274 {1274 {
1275 return tm->create_node_type(nodekind,1275 return tm->create_node_type(nodekind,
1276 nodename,1276 nodename,
1277 contentType,1277 contentType,
1278 TypeConstants::QUANT_QUESTION,1278 SequenceType::QUANT_QUESTION,
1279 false,1279 false,
1280 false);1280 false);
1281 }1281 }
@@ -1284,7 +1284,7 @@
1284 return tm->create_node_type(nodekind,1284 return tm->create_node_type(nodekind,
1285 nodename,1285 nodename,
1286 contentType,1286 contentType,
1287 TypeConstants::QUANT_STAR,1287 SequenceType::QUANT_STAR,
1288 false,1288 false,
1289 false);1289 false);
1290 }1290 }
@@ -1297,12 +1297,12 @@
1297 else1297 else
1298 contentType = RTM.ANY_TYPE;1298 contentType = RTM.ANY_TYPE;
12991299
1300 if (TypeOps::is_sub_quant(quant, TypeConstants::QUANT_QUESTION))1300 if (TypeOps::is_sub_quant(quant, SequenceType::QUANT_QUESTION))
1301 {1301 {
1302 return tm->create_node_type(nodekind,1302 return tm->create_node_type(nodekind,
1303 nodename,1303 nodename,
1304 contentType,1304 contentType,
1305 TypeConstants::QUANT_QUESTION,1305 SequenceType::QUANT_QUESTION,
1306 false,1306 false,
1307 false);1307 false);
1308 }1308 }
@@ -1311,7 +1311,7 @@
1311 return tm->create_node_type(nodekind,1311 return tm->create_node_type(nodekind,
1312 nodename,1312 nodename,
1313 contentType,1313 contentType,
1314 TypeConstants::QUANT_STAR,1314 SequenceType::QUANT_STAR,
1315 false,1315 false,
1316 false);1316 false);
1317 }1317 }
13181318
=== modified file 'src/compiler/expression/flwor_expr.cpp'
--- src/compiler/expression/flwor_expr.cpp 2013-08-12 13:05:15 +0000
+++ src/compiler/expression/flwor_expr.cpp 2013-09-24 21:48:10 +0000
@@ -165,14 +165,14 @@
165 {165 {
166 if (kind == flwor_clause::for_clause)166 if (kind == flwor_clause::for_clause)
167 {167 {
168 TypeConstants::quantifier_t domQuant = domainType->get_quantifier();168 SequenceType::Quantifier domQuant = domainType->get_quantifier();
169 TypeConstants::quantifier_t declQuant = declaredType->get_quantifier();169 SequenceType::Quantifier declQuant = declaredType->get_quantifier();
170170
171 if (theAllowingEmpty &&171 if (theAllowingEmpty &&
172 (declQuant == TypeConstants::QUANT_ONE ||172 (declQuant == SequenceType::QUANT_ONE ||
173 declQuant == TypeConstants::QUANT_PLUS))173 declQuant == SequenceType::QUANT_PLUS))
174 {174 {
175 declaredType = tm->create_type(*declaredType, TypeConstants::QUANT_PLUS);175 declaredType = tm->create_type(*declaredType, SequenceType::QUANT_PLUS);
176 }176 }
177 else177 else
178 {178 {
179179
=== modified file 'src/compiler/parser/jsoniq_parser.cpp'
--- src/compiler/parser/jsoniq_parser.cpp 2013-09-16 18:32:17 +0000
+++ src/compiler/parser/jsoniq_parser.cpp 2013-09-24 21:48:10 +0000
@@ -1,8 +1,8 @@
1/* A Bison parser, made by GNU Bison 2.6.2. */1/* A Bison parser, made by GNU Bison 2.5. */
22
3/* Skeleton implementation for Bison LALR(1) parsers in C++3/* Skeleton implementation for Bison LALR(1) parsers in C++
4 4
5 Copyright (C) 2002-2012 Free Software Foundation, Inc.5 Copyright (C) 2002-2011 Free Software Foundation, Inc.
6 6
7 This program is free software: you can redistribute it and/or modify7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by8 it under the terms of the GNU General Public License as published by
@@ -34,12 +34,14 @@
34#define yylex zorbalex34#define yylex zorbalex
3535
36/* First part of user declarations. */36/* First part of user declarations. */
37/* Line 278 of lalr1.cc */37
38#line 1 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"38/* Line 293 of lalr1.cc */
39#line 1 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
3940
40#define JSONIQ_PARSER41#define JSONIQ_PARSER
41/* Line 278 of lalr1.cc */42
42#line 58 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"43/* Line 293 of lalr1.cc */
44#line 59 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
4345
4446
45#include "common/common.h"47#include "common/common.h"
@@ -75,8 +77,9 @@
75using namespace std;77using namespace std;
76using namespace zorba;78using namespace zorba;
7779
78/* Line 278 of lalr1.cc */80
79#line 101 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"81/* Line 293 of lalr1.cc */
82#line 102 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
8083
8184
82#ifdef XQUERY_PARSER85#ifdef XQUERY_PARSER
@@ -93,17 +96,17 @@
93#endif96#endif
9497
9598
96/* Line 278 of lalr1.cc */99
97#line 98 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"100/* Line 293 of lalr1.cc */
101#line 102 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
98102
99103
100#include "jsoniq_parser.hpp"104#include "jsoniq_parser.hpp"
101105
102/* User implementation prologue. */106/* User implementation prologue. */
103/* Line 284 of lalr1.cc */107
104#line 904 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"108/* Line 299 of lalr1.cc */
105109#line 792 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
106
107110
108template<typename T> inline void release_hack( T *ref ) {111template<typename T> inline void release_hack( T *ref ) {
109 if ( ref ) {112 if ( ref ) {
@@ -111,8 +114,9 @@
111 RCHelper::removeReference( ref );114 RCHelper::removeReference( ref );
112 }115 }
113}116}
114/* Line 284 of lalr1.cc */117
115#line 1042 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"118/* Line 299 of lalr1.cc */
119#line 849 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
116120
117namespace {121namespace {
118bool convert_postfix_to_target_and_selector(122bool convert_postfix_to_target_and_selector(
@@ -126,8 +130,6 @@
126 dynamic_cast<DynamicFunctionInvocation*>(aPostfixExpr);130 dynamic_cast<DynamicFunctionInvocation*>(aPostfixExpr);
127 rchandle<FilterExpr> lFilterExpr = dynamic_cast<FilterExpr*>(aPostfixExpr);131 rchandle<FilterExpr> lFilterExpr = dynamic_cast<FilterExpr*>(aPostfixExpr);
128 rchandle<JSONObjectLookup> lObjectLookup = dynamic_cast<JSONObjectLookup*>(aPostfixExpr);132 rchandle<JSONObjectLookup> lObjectLookup = dynamic_cast<JSONObjectLookup*>(aPostfixExpr);
129
130
131 if (lDynamicFunctionInvocation != NULL) {133 if (lDynamicFunctionInvocation != NULL) {
132 if (lDynamicFunctionInvocation->getArgList()->size() != 1)134 if (lDynamicFunctionInvocation->getArgList()->size() != 1)
133 {135 {
@@ -138,8 +140,6 @@
138 *aSelectorExpr = lDynamicFunctionInvocation->getArgList()->operator[](0);140 *aSelectorExpr = lDynamicFunctionInvocation->getArgList()->operator[](0);
139 return true;141 return true;
140 }142 }
141
142
143 else if (lObjectLookup != NULL)143 else if (lObjectLookup != NULL)
144 {144 {
145 *aTargetExpr = lObjectLookup->get_object_expr();145 *aTargetExpr = lObjectLookup->get_object_expr();
@@ -148,7 +148,6 @@
148 lObjectLookup->release_selector_expr();148 lObjectLookup->release_selector_expr();
149 return true;149 return true;
150 }150 }
151
152 else if (!allowArray && lFilterExpr != NULL)151 else if (!allowArray && lFilterExpr != NULL)
153 {152 {
154 *anError = "An object lookup is expected.";153 *anError = "An object lookup is expected.";
@@ -159,8 +158,6 @@
159 rchandle<exprnode> lPrimary = lFilterExpr->get_primary();158 rchandle<exprnode> lPrimary = lFilterExpr->get_primary();
160 rchandle<PredicateList> lPredicateList = lFilterExpr->get_pred_list();159 rchandle<PredicateList> lPredicateList = lFilterExpr->get_pred_list();
161 ulong lSize = lPredicateList->size();160 ulong lSize = lPredicateList->size();
162
163
164 if (lSize < 1)161 if (lSize < 1)
165 {162 {
166 *anError = "An object or array lookup with exactly one argument is expected. No argument was found.";163 *anError = "An object or array lookup with exactly one argument is expected. No argument was found.";
@@ -180,8 +177,6 @@
180 return false;177 return false;
181 }178 }
182 lConstructor->set_expr(NULL);179 lConstructor->set_expr(NULL);
183
184
185 *aTargetExpr = lPrimary;180 *aTargetExpr = lPrimary;
186 if (lSize > 1)181 if (lSize > 1)
187 {182 {
@@ -198,7 +193,6 @@
198 }193 }
199 return true;194 return true;
200 }195 }
201
202 else196 else
203 {197 {
204 *anError = "An object or array lookup is expected.";198 *anError = "An object or array lookup is expected.";
@@ -207,17 +201,9 @@
207};201};
208}202}
209203
210/* Line 284 of lalr1.cc */204
211#line 212 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"205/* Line 299 of lalr1.cc */
212206#line 207 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
213
214# ifndef YY_NULL
215# if defined __cplusplus && 201103L <= __cplusplus
216# define YY_NULL nullptr
217# else
218# define YY_NULL 0
219# endif
220# endif
221207
222#ifndef YY_208#ifndef YY_
223# if defined YYENABLE_NLS && YYENABLE_NLS209# if defined YYENABLE_NLS && YYENABLE_NLS
@@ -231,26 +217,25 @@
231# endif217# endif
232#endif218#endif
233219
234#define YYRHSLOC(Rhs, K) ((Rhs)[K])
235/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].220/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
236 If N is 0, then set CURRENT to the empty location which ends221 If N is 0, then set CURRENT to the empty location which ends
237 the previous symbol: RHS[0] (always defined). */222 the previous symbol: RHS[0] (always defined). */
238223
239# ifndef YYLLOC_DEFAULT224#define YYRHSLOC(Rhs, K) ((Rhs)[K])
240# define YYLLOC_DEFAULT(Current, Rhs, N) \225#ifndef YYLLOC_DEFAULT
241 do \226# define YYLLOC_DEFAULT(Current, Rhs, N) \
242 if (N) \227 do \
243 { \228 if (N) \
244 (Current).begin = YYRHSLOC (Rhs, 1).begin; \229 { \
245 (Current).end = YYRHSLOC (Rhs, N).end; \230 (Current).begin = YYRHSLOC (Rhs, 1).begin; \
246 } \231 (Current).end = YYRHSLOC (Rhs, N).end; \
247 else \232 } \
248 { \233 else \
249 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \234 { \
250 } \235 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
251 while (/*CONSTCOND*/ false)236 } \
252# endif237 while (false)
253238#endif
254239
255/* Suppress unused-variable warnings by "using" E. */240/* Suppress unused-variable warnings by "using" E. */
256#define YYUSE(e) ((void) (e))241#define YYUSE(e) ((void) (e))
@@ -302,8 +287,9 @@
302287
303288
304namespace zorba {289namespace zorba {
305/* Line 352 of lalr1.cc */290
306#line 307 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"291/* Line 382 of lalr1.cc */
292#line 293 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
307293
308 /* Return YYSTR after stripping away unnecessary quotes and294 /* Return YYSTR after stripping away unnecessary quotes and
309 backslashes, so that it's suitable for yyerror. The heuristic is295 backslashes, so that it's suitable for yyerror. The heuristic is
@@ -369,9 +355,6 @@
369 {355 {
370 YYUSE (yylocationp);356 YYUSE (yylocationp);
371 YYUSE (yyvaluep);357 YYUSE (yyvaluep);
372 std::ostream& yyo = debug_stream ();
373 std::ostream& yyoutput = yyo;
374 YYUSE (yyoutput);
375 switch (yytype)358 switch (yytype)
376 {359 {
377 default:360 default:
@@ -404,2007 +387,2579 @@
404387
405 switch (yytype)388 switch (yytype)
406 {389 {
407 case 111: /* "'DECIMAL'" */390 case 111: /* "\"'DECIMAL'\"" */
408/* Line 453 of lalr1.cc */391
409#line 902 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"392/* Line 480 of lalr1.cc */
410 { delete ((*yyvaluep).decval); };393#line 791 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
411/* Line 453 of lalr1.cc */394 { delete (yyvaluep->decval); };
412#line 413 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"395
413 break;396/* Line 480 of lalr1.cc */
414 case 126: /* "'DOUBLE'" */397#line 398 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
415/* Line 453 of lalr1.cc */398 break;
416#line 901 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"399 case 126: /* "\"'DOUBLE'\"" */
417 { delete ((*yyvaluep).dval); };400
418/* Line 453 of lalr1.cc */401/* Line 480 of lalr1.cc */
419#line 420 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"402#line 790 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
420 break;403 { delete (yyvaluep->dval); };
421 case 151: /* "'INTEGER'" */404
422/* Line 453 of lalr1.cc */405/* Line 480 of lalr1.cc */
423#line 900 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"406#line 407 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
424 { delete ((*yyvaluep).ival); };407 break;
425/* Line 453 of lalr1.cc */408 case 151: /* "\"'INTEGER'\"" */
426#line 427 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"409
427 break;410/* Line 480 of lalr1.cc */
428 case 344: /* VersionDecl */411#line 789 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
429/* Line 453 of lalr1.cc */412 { delete (yyvaluep->ival); };
430#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"413
431 { release_hack( ((*yyvaluep).node) ); };414/* Line 480 of lalr1.cc */
432/* Line 453 of lalr1.cc */415#line 416 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
433#line 434 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"416 break;
434 break;417 case 344: /* "VersionDecl" */
435 case 345: /* MainModule */418
436/* Line 453 of lalr1.cc */419/* Line 480 of lalr1.cc */
437#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"420#line 812 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
438 { release_hack( ((*yyvaluep).node) ); };421 { release_hack( (yyvaluep->node) ); };
439/* Line 453 of lalr1.cc */422
440#line 441 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"423/* Line 480 of lalr1.cc */
441 break;424#line 425 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
442 case 346: /* LibraryModule */425 break;
443/* Line 453 of lalr1.cc */426 case 345: /* "MainModule" */
444#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"427
445 { release_hack( ((*yyvaluep).node) ); };428/* Line 480 of lalr1.cc */
446/* Line 453 of lalr1.cc */429#line 805 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
447#line 448 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"430 { release_hack( (yyvaluep->node) ); };
448 break;431
449 case 347: /* ModuleDecl */432/* Line 480 of lalr1.cc */
450/* Line 453 of lalr1.cc */433#line 434 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
451#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"434 break;
452 { release_hack( ((*yyvaluep).node) ); };435 case 346: /* "LibraryModule" */
453/* Line 453 of lalr1.cc */436
454#line 455 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"437/* Line 480 of lalr1.cc */
455 break;438#line 805 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
456 case 348: /* SIND_DeclList */439 { release_hack( (yyvaluep->node) ); };
457/* Line 453 of lalr1.cc */440
458#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"441/* Line 480 of lalr1.cc */
459 { release_hack( ((*yyvaluep).node) ); };442#line 443 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
460/* Line 453 of lalr1.cc */443 break;
461#line 462 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"444 case 347: /* "ModuleDecl" */
462 break;445
463 case 349: /* SIND_Decl */446/* Line 480 of lalr1.cc */
464/* Line 453 of lalr1.cc */447#line 805 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
465#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"448 { release_hack( (yyvaluep->node) ); };
466 { release_hack( ((*yyvaluep).node) ); };449
467/* Line 453 of lalr1.cc */450/* Line 480 of lalr1.cc */
468#line 469 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"451#line 452 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
469 break;452 break;
470 case 350: /* Setter */453 case 348: /* "SIND_DeclList" */
471/* Line 453 of lalr1.cc */454
472#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"455/* Line 480 of lalr1.cc */
473 { release_hack( ((*yyvaluep).node) ); };456#line 808 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
474/* Line 453 of lalr1.cc */457 { release_hack( (yyvaluep->node) ); };
475#line 476 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"458
476 break;459/* Line 480 of lalr1.cc */
477 case 351: /* BoundarySpaceDecl */460#line 461 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
478/* Line 453 of lalr1.cc */461 break;
479#line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"462 case 349: /* "SIND_Decl" */
480 { release_hack( ((*yyvaluep).node) ); };463
481/* Line 453 of lalr1.cc */464/* Line 480 of lalr1.cc */
482#line 483 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"465#line 808 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
483 break;466 { release_hack( (yyvaluep->node) ); };
484 case 352: /* DefaultCollationDecl */467
485/* Line 453 of lalr1.cc */468/* Line 480 of lalr1.cc */
486#line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"469#line 470 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
487 { release_hack( ((*yyvaluep).node) ); };470 break;
488/* Line 453 of lalr1.cc */471 case 350: /* "Setter" */
489#line 490 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"472
490 break;473/* Line 480 of lalr1.cc */
491 case 353: /* BaseURIDecl */474#line 809 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
492/* Line 453 of lalr1.cc */475 { release_hack( (yyvaluep->node) ); };
493#line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"476
494 { release_hack( ((*yyvaluep).node) ); };477/* Line 480 of lalr1.cc */
495/* Line 453 of lalr1.cc */478#line 479 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
496#line 497 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"479 break;
497 break;480 case 351: /* "BoundarySpaceDecl" */
498 case 354: /* ConstructionDecl */481
499/* Line 453 of lalr1.cc */482/* Line 480 of lalr1.cc */
500#line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"483#line 802 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
501 { release_hack( ((*yyvaluep).node) ); };484 { release_hack( (yyvaluep->node) ); };
502/* Line 453 of lalr1.cc */485
503#line 504 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"486/* Line 480 of lalr1.cc */
504 break;487#line 488 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
505 case 355: /* OrderingModeDecl */488 break;
506/* Line 453 of lalr1.cc */489 case 352: /* "DefaultCollationDecl" */
507#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"490
508 { release_hack( ((*yyvaluep).node) ); };491/* Line 480 of lalr1.cc */
509/* Line 453 of lalr1.cc */492#line 803 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
510#line 511 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"493 { release_hack( (yyvaluep->node) ); };
511 break;494
512 case 356: /* EmptyOrderDecl */495/* Line 480 of lalr1.cc */
513/* Line 453 of lalr1.cc */496#line 497 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
514#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"497 break;
515 { release_hack( ((*yyvaluep).node) ); };498 case 353: /* "BaseURIDecl" */
516/* Line 453 of lalr1.cc */499
517#line 518 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"500/* Line 480 of lalr1.cc */
518 break;501#line 802 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
519 case 357: /* CopyNamespacesDecl */502 { release_hack( (yyvaluep->node) ); };
520/* Line 453 of lalr1.cc */503
521#line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"504/* Line 480 of lalr1.cc */
522 { release_hack( ((*yyvaluep).node) ); };505#line 506 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
523/* Line 453 of lalr1.cc */506 break;
524#line 525 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"507 case 354: /* "ConstructionDecl" */
525 break;508
526 case 358: /* Import */509/* Line 480 of lalr1.cc */
527/* Line 453 of lalr1.cc */510#line 802 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
528#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"511 { release_hack( (yyvaluep->node) ); };
529 { release_hack( ((*yyvaluep).node) ); };512
530/* Line 453 of lalr1.cc */513/* Line 480 of lalr1.cc */
531#line 532 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"514#line 515 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
532 break;515 break;
533 case 359: /* SchemaImport */516 case 355: /* "OrderingModeDecl" */
534/* Line 453 of lalr1.cc */517
535#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"518/* Line 480 of lalr1.cc */
536 { release_hack( ((*yyvaluep).node) ); };519#line 807 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
537/* Line 453 of lalr1.cc */520 { release_hack( (yyvaluep->node) ); };
538#line 539 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"521
539 break;522/* Line 480 of lalr1.cc */
540 case 360: /* URILiteralList */523#line 524 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
541/* Line 453 of lalr1.cc */524 break;
542#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"525 case 356: /* "EmptyOrderDecl" */
543 { release_hack( ((*yyvaluep).node) ); };526
544/* Line 453 of lalr1.cc */527/* Line 480 of lalr1.cc */
545#line 546 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"528#line 804 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
546 break;529 { release_hack( (yyvaluep->node) ); };
547 case 361: /* SchemaPrefix */530
548/* Line 453 of lalr1.cc */531/* Line 480 of lalr1.cc */
549#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"532#line 533 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
550 { release_hack( ((*yyvaluep).node) ); };533 break;
551/* Line 453 of lalr1.cc */534 case 357: /* "CopyNamespacesDecl" */
552#line 553 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"535
553 break;536/* Line 480 of lalr1.cc */
554 case 362: /* ModuleImport */537#line 803 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.y"
555/* Line 453 of lalr1.cc */538 { release_hack( (yyvaluep->node) ); };
556#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"539
557 { release_hack( ((*yyvaluep).node) ); };540/* Line 480 of lalr1.cc */
558/* Line 453 of lalr1.cc */541#line 542 "/home/markos/zorba/repo/type-api/build-nocc-g/src/compiler/parser/jsoniq_parser.cpp"
559#line 560 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"542 break;
560 break;543 case 358: /* "Import" */
561 case 363: /* NamespaceDecl */544
562/* Line 453 of lalr1.cc */
563#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
564 { release_hack( ((*yyvaluep).node) ); };
565/* Line 453 of lalr1.cc */
566#line 567 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
567 break;
568 case 364: /* DefaultNamespaceDecl */
569/* Line 453 of lalr1.cc */
570#line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
571 { release_hack( ((*yyvaluep).node) ); };
572/* Line 453 of lalr1.cc */
573#line 574 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
574 break;
575 case 365: /* VFO_DeclList */
576/* Line 453 of lalr1.cc */
577#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
578 { release_hack( ((*yyvaluep).node) ); };
579/* Line 453 of lalr1.cc */
580#line 581 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
581 break;
582 case 366: /* VFO_Decl */
583/* Line 453 of lalr1.cc */
584#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
585 { release_hack( ((*yyvaluep).node) ); };
586/* Line 453 of lalr1.cc */
587#line 588 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
588 break;
589 case 367: /* DecimalFormatDecl */
590/* Line 453 of lalr1.cc */
591#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
592 { release_hack( ((*yyvaluep).node) ); };
593/* Line 453 of lalr1.cc */
594#line 595 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
595 break;
596 case 368: /* DecimalFormatParamList */
597/* Line 453 of lalr1.cc */
598#line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
599 { delete ((*yyvaluep).vstrpair); };
600/* Line 453 of lalr1.cc */
601#line 602 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
602 break;
603 case 369: /* DecimalFormatParam */
604/* Line 453 of lalr1.cc */
605#line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
606 { delete ((*yyvaluep).strpair); };
607/* Line 453 of lalr1.cc */
608#line 609 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
609 break;
610 case 371: /* OptionDecl */
611/* Line 453 of lalr1.cc */
612#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
613 { release_hack( ((*yyvaluep).node) ); };
614/* Line 453 of lalr1.cc */
615#line 616 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
616 break;
617 case 372: /* FTOptionDecl */
618/* Line 453 of lalr1.cc */
619#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
620 { release_hack( ((*yyvaluep).node) ); };
621/* Line 453 of lalr1.cc */
622#line 623 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
623 break;
624 case 373: /* CtxItemDecl */
625/* Line 453 of lalr1.cc */
626#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
627 { release_hack( ((*yyvaluep).node) ); };
628/* Line 453 of lalr1.cc */
629#line 630 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
630 break;
631 case 374: /* CtxItemDecl2 */
632/* Line 453 of lalr1.cc */
633#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
634 { release_hack( ((*yyvaluep).node) ); };
635/* Line 453 of lalr1.cc */
636#line 637 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
637 break;
638 case 375: /* CtxItemDecl3 */
639/* Line 453 of lalr1.cc */
640#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
641 { release_hack( ((*yyvaluep).node) ); };
642/* Line 453 of lalr1.cc */
643#line 644 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
644 break;
645 case 376: /* CtxItemDecl4 */
646/* Line 453 of lalr1.cc */
647#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
648 { release_hack( ((*yyvaluep).node) ); };
649/* Line 453 of lalr1.cc */
650#line 651 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
651 break;
652 case 377: /* VarDecl */
653/* Line 453 of lalr1.cc */
654#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
655 { release_hack( ((*yyvaluep).node) ); };
656/* Line 453 of lalr1.cc */
657#line 658 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
658 break;
659 case 378: /* VarNameAndType */
660/* Line 453 of lalr1.cc */
661#line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
662 { delete ((*yyvaluep).varnametype); };
663/* Line 453 of lalr1.cc */
664#line 665 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
665 break;
666 case 379: /* AnnotationList */
667/* Line 453 of lalr1.cc */
668#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
669 { release_hack( ((*yyvaluep).node) ); };
670/* Line 453 of lalr1.cc */
671#line 672 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
672 break;
673 case 380: /* Annotation */
674/* Line 453 of lalr1.cc */
675#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
676 { release_hack( ((*yyvaluep).node) ); };
677/* Line 453 of lalr1.cc */
678#line 679 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
679 break;
680 case 381: /* AnnotationLiteralList */
681/* Line 453 of lalr1.cc */
682#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
683 { release_hack( ((*yyvaluep).node) ); };
684/* Line 453 of lalr1.cc */
685#line 686 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
686 break;
687 case 382: /* FunctionDecl */
688/* Line 453 of lalr1.cc */
689#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
690 { release_hack( ((*yyvaluep).node) ); };
691/* Line 453 of lalr1.cc */
692#line 693 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
693 break;
694 case 383: /* FunctionDecl2 */
695/* Line 453 of lalr1.cc */
696#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
697 { release_hack( ((*yyvaluep).node) ); };
698/* Line 453 of lalr1.cc */
699#line 700 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
700 break;
701 case 384: /* FunctionDeclSimple */
702/* Line 453 of lalr1.cc */
703#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
704 { release_hack( ((*yyvaluep).node) ); };
705/* Line 453 of lalr1.cc */
706#line 707 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
707 break;
708 case 385: /* FunctionDeclUpdating */
709/* Line 453 of lalr1.cc */
710#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
711 { release_hack( ((*yyvaluep).node) ); };
712/* Line 453 of lalr1.cc */
713#line 714 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
714 break;
715 case 386: /* FunctionSig */
716/* Line 453 of lalr1.cc */
717#line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
718 { delete ((*yyvaluep).fnsig); };
719/* Line 453 of lalr1.cc */
720#line 721 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
721 break;
722 case 387: /* ParamList */
723/* Line 453 of lalr1.cc */
724#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
725 { release_hack( ((*yyvaluep).node) ); };
726/* Line 453 of lalr1.cc */
727#line 728 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
728 break;
729 case 388: /* Param */
730/* Line 453 of lalr1.cc */
731#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
732 { release_hack( ((*yyvaluep).node) ); };
733/* Line 453 of lalr1.cc */
734#line 735 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
735 break;
736 case 389: /* CollectionDecl */
737/* Line 453 of lalr1.cc */
738#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
739 { release_hack( ((*yyvaluep).node) ); };
740/* Line 453 of lalr1.cc */
741#line 742 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
742 break;
743 case 391: /* IndexDecl */
744/* Line 453 of lalr1.cc */
745#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
746 { release_hack( ((*yyvaluep).node) ); };
747/* Line 453 of lalr1.cc */
748#line 749 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
749 break;
750 case 392: /* IndexKeyList */
751/* Line 453 of lalr1.cc */
752#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
753 { release_hack( ((*yyvaluep).node) ); };
754/* Line 453 of lalr1.cc */
755#line 756 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
756 break;
757 case 393: /* IndexKeySpec */
758/* Line 453 of lalr1.cc */
759#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
760 { release_hack( ((*yyvaluep).node) ); };
761/* Line 453 of lalr1.cc */
762#line 763 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
763 break;
764 case 394: /* IntegrityConstraintDecl */
765/* Line 453 of lalr1.cc */
766#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
767 { release_hack( ((*yyvaluep).node) ); };
768/* Line 453 of lalr1.cc */
769#line 770 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
770 break;
771 case 395: /* QueryBody */
772/* Line 453 of lalr1.cc */
773#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
774 { release_hack( ((*yyvaluep).expr) ); };
775/* Line 453 of lalr1.cc */
776#line 777 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
777 break;
778 case 396: /* StatementsAndOptionalExprTop */
779/* Line 453 of lalr1.cc */
780#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
781 { release_hack( ((*yyvaluep).expr) ); };
782/* Line 453 of lalr1.cc */
783#line 784 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
784 break;
785 case 397: /* StatementsAndOptionalExpr */
786/* Line 453 of lalr1.cc */
787#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
788 { release_hack( ((*yyvaluep).expr) ); };
789/* Line 453 of lalr1.cc */
790#line 791 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
791 break;
792 case 398: /* StatementsAndExpr */
793/* Line 453 of lalr1.cc */
794#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
795 { release_hack( ((*yyvaluep).expr) ); };
796/* Line 453 of lalr1.cc */
797#line 798 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
798 break;
799 case 399: /* Statements */
800/* Line 453 of lalr1.cc */
801#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
802 { release_hack( ((*yyvaluep).expr) ); };
803/* Line 453 of lalr1.cc */
804#line 805 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
805 break;
806 case 400: /* Statement */
807/* Line 453 of lalr1.cc */
808#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
809 { release_hack( ((*yyvaluep).expr) ); };
810/* Line 453 of lalr1.cc */
811#line 812 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
812 break;
813 case 401: /* BlockStatement */
814/* Line 453 of lalr1.cc */
815#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
816 { release_hack( ((*yyvaluep).expr) ); };
817/* Line 453 of lalr1.cc */
818#line 819 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
819 break;
820 case 402: /* BlockExpr */
821/* Line 453 of lalr1.cc */
822#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
823 { release_hack( ((*yyvaluep).expr) ); };
824/* Line 453 of lalr1.cc */
825#line 826 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
826 break;
827 case 403: /* EnclosedStatementsAndOptionalExpr */
828/* Line 453 of lalr1.cc */
829#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
830 { release_hack( ((*yyvaluep).expr) ); };
831/* Line 453 of lalr1.cc */
832#line 833 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
833 break;
834 case 404: /* VarDeclStatement */
835/* Line 453 of lalr1.cc */
836#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
837 { release_hack( ((*yyvaluep).expr) ); };
838/* Line 453 of lalr1.cc */
839#line 840 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
840 break;
841 case 407: /* AssignStatement */
842/* Line 453 of lalr1.cc */
843#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
844 { release_hack( ((*yyvaluep).expr) ); };
845/* Line 453 of lalr1.cc */
846#line 847 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
847 break;
848 case 408: /* ApplyStatement */
849/* Line 453 of lalr1.cc */
850#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
851 { release_hack( ((*yyvaluep).expr) ); };
852/* Line 453 of lalr1.cc */
853#line 854 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
854 break;
855 case 409: /* ExitStatement */
856/* Line 453 of lalr1.cc */
857#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
858 { release_hack( ((*yyvaluep).expr) ); };
859/* Line 453 of lalr1.cc */
860#line 861 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
861 break;
862 case 410: /* WhileStatement */
863/* Line 453 of lalr1.cc */
864#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
865 { release_hack( ((*yyvaluep).expr) ); };
866/* Line 453 of lalr1.cc */
867#line 868 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
868 break;
869 case 411: /* FlowCtlStatement */
870/* Line 453 of lalr1.cc */
871#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
872 { release_hack( ((*yyvaluep).expr) ); };
873/* Line 453 of lalr1.cc */
874#line 875 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
875 break;
876 case 412: /* FLWORStatement */
877/* Line 453 of lalr1.cc */
878#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
879 { release_hack( ((*yyvaluep).expr) ); };
880/* Line 453 of lalr1.cc */
881#line 882 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
882 break;
883 case 413: /* ReturnStatement */
884/* Line 453 of lalr1.cc */
885#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
886 { release_hack( ((*yyvaluep).expr) ); };
887/* Line 453 of lalr1.cc */
888#line 889 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
889 break;
890 case 414: /* IfStatement */
891/* Line 453 of lalr1.cc */
892#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
893 { release_hack( ((*yyvaluep).expr) ); };
894/* Line 453 of lalr1.cc */
895#line 896 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
896 break;
897 case 415: /* TryStatement */
898/* Line 453 of lalr1.cc */
899#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
900 { release_hack( ((*yyvaluep).expr) ); };
901/* Line 453 of lalr1.cc */
902#line 903 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
903 break;
904 case 416: /* CatchListStatement */
905/* Line 453 of lalr1.cc */
906#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
907 { release_hack( ((*yyvaluep).expr) ); };
908/* Line 453 of lalr1.cc */
909#line 910 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
910 break;
911 case 417: /* CatchStatement */
912/* Line 453 of lalr1.cc */
913#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
914 { release_hack( ((*yyvaluep).expr) ); };
915/* Line 453 of lalr1.cc */
916#line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
917 break;
918 case 418: /* VoidStatement */
919/* Line 453 of lalr1.cc */
920#line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
921 { release_hack( ((*yyvaluep).expr) ); };
922/* Line 453 of lalr1.cc */
923#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
924 break;
925 case 419: /* Expr */
926/* Line 453 of lalr1.cc */
927#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
928 { release_hack( ((*yyvaluep).expr) ); };
929/* Line 453 of lalr1.cc */
930#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
931 break;
932 case 420: /* ExprSingle */
933/* Line 453 of lalr1.cc */
934#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
935 { release_hack( ((*yyvaluep).expr) ); };
936/* Line 453 of lalr1.cc */
937#line 938 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
938 break;
939 case 421: /* ExprSimple */
940/* Line 453 of lalr1.cc */
941#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
942 { release_hack( ((*yyvaluep).expr) ); };
943/* Line 453 of lalr1.cc */
944#line 945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
945 break;
946 case 422: /* FLWORExpr */
947/* Line 453 of lalr1.cc */
948#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
949 { release_hack( ((*yyvaluep).expr) ); };
950/* Line 453 of lalr1.cc */
951#line 952 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
952 break;
953 case 423: /* ReturnExpr */
954/* Line 453 of lalr1.cc */
955#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
956 { release_hack( ((*yyvaluep).expr) ); };
957/* Line 453 of lalr1.cc */
958#line 959 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
959 break;
960 case 427: /* FLWORWinCond */
961/* Line 453 of lalr1.cc */
962#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
963 { release_hack( ((*yyvaluep).node) ); };
964/* Line 453 of lalr1.cc */
965#line 966 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
966 break;
967 case 428: /* WindowClause */
968/* Line 453 of lalr1.cc */
969#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
970 { release_hack( ((*yyvaluep).node) ); };
971/* Line 453 of lalr1.cc */
972#line 973 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
973 break;
974 case 429: /* CountClause */
975/* Line 453 of lalr1.cc */
976#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
977 { release_hack( ((*yyvaluep).node) ); };
978/* Line 453 of lalr1.cc */
979#line 980 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
980 break;
981 case 430: /* ForLetWinClause */
982/* Line 453 of lalr1.cc */
983#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
984 { release_hack( ((*yyvaluep).node) ); };
985/* Line 453 of lalr1.cc */
986#line 987 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
987 break;
988 case 432: /* FLWORClauseList */
989/* Line 453 of lalr1.cc */
990#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
991 { release_hack( ((*yyvaluep).node) ); };
992/* Line 453 of lalr1.cc */
993#line 994 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
994 break;
995 case 433: /* ForClause */
996/* Line 453 of lalr1.cc */
997#line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
998 { release_hack( ((*yyvaluep).node) ); };
999/* Line 453 of lalr1.cc */
1000#line 1001 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1001 break;
1002 case 435: /* VarInDeclList */
1003/* Line 453 of lalr1.cc */
1004#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1005 { release_hack( ((*yyvaluep).node) ); };
1006/* Line 453 of lalr1.cc */
1007#line 1008 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1008 break;
1009 case 436: /* VarInDecl */
1010/* Line 453 of lalr1.cc */
1011#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1012 { release_hack( ((*yyvaluep).node) ); };
1013/* Line 453 of lalr1.cc */
1014#line 1015 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1015 break;
1016 case 437: /* PositionalVar */
1017/* Line 453 of lalr1.cc */
1018#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1019 { release_hack( ((*yyvaluep).node) ); };
1020/* Line 453 of lalr1.cc */
1021#line 1022 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1022 break;
1023 case 438: /* FTScoreVar */
1024/* Line 453 of lalr1.cc */
1025#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1026 { release_hack( ((*yyvaluep).node) ); };
1027/* Line 453 of lalr1.cc */
1028#line 1029 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1029 break;
1030 case 439: /* LetClause */
1031/* Line 453 of lalr1.cc */
1032#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1033 { release_hack( ((*yyvaluep).node) ); };
1034/* Line 453 of lalr1.cc */
1035#line 1036 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1036 break;
1037 case 440: /* VarGetsDeclList */
1038/* Line 453 of lalr1.cc */
1039#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1040 { release_hack( ((*yyvaluep).node) ); };
1041/* Line 453 of lalr1.cc */
1042#line 1043 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1043 break;
1044 case 441: /* VarGetsDecl */
1045/* Line 453 of lalr1.cc */
1046#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1047 { release_hack( ((*yyvaluep).node) ); };
1048/* Line 453 of lalr1.cc */
1049#line 1050 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1050 break;
1051 case 442: /* WindowVarDecl */
1052/* Line 453 of lalr1.cc */
1053#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1054 { release_hack( ((*yyvaluep).node) ); };
1055/* Line 453 of lalr1.cc */
1056#line 1057 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1057 break;
1058 case 443: /* WindowVars */
1059/* Line 453 of lalr1.cc */
1060#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1061 { release_hack( ((*yyvaluep).node) ); };
1062/* Line 453 of lalr1.cc */
1063#line 1064 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1064 break;
1065 case 444: /* WindowVars3 */
1066/* Line 453 of lalr1.cc */
1067#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1068 { release_hack( ((*yyvaluep).node) ); };
1069/* Line 453 of lalr1.cc */
1070#line 1071 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1071 break;
1072 case 445: /* WindowVars2 */
1073/* Line 453 of lalr1.cc */
1074#line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1075 { release_hack( ((*yyvaluep).node) ); };
1076/* Line 453 of lalr1.cc */
1077#line 1078 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1078 break;
1079 case 446: /* WhereClause */
1080/* Line 453 of lalr1.cc */
1081#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1082 { release_hack( ((*yyvaluep).node) ); };
1083/* Line 453 of lalr1.cc */
1084#line 1085 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1085 break;
1086 case 447: /* GroupByClause */
1087/* Line 453 of lalr1.cc */
1088#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1089 { release_hack( ((*yyvaluep).node) ); };
1090/* Line 453 of lalr1.cc */
1091#line 1092 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1092 break;
1093 case 448: /* GroupSpecList */
1094/* Line 453 of lalr1.cc */
1095#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1096 { release_hack( ((*yyvaluep).node) ); };
1097/* Line 453 of lalr1.cc */
1098#line 1099 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1099 break;
1100 case 449: /* GroupSpec */
1101/* Line 453 of lalr1.cc */
1102#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1103 { release_hack( ((*yyvaluep).node) ); };
1104/* Line 453 of lalr1.cc */
1105#line 1106 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1106 break;
1107 case 450: /* GroupCollationSpec */
1108/* Line 453 of lalr1.cc */
1109#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1110 { release_hack( ((*yyvaluep).node) ); };
1111/* Line 453 of lalr1.cc */
1112#line 1113 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1113 break;
1114 case 451: /* OrderByClause */
1115/* Line 453 of lalr1.cc */
1116#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1117 { release_hack( ((*yyvaluep).node) ); };
1118/* Line 453 of lalr1.cc */
1119#line 1120 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1120 break;
1121 case 452: /* OrderSpecList */
1122/* Line 453 of lalr1.cc */
1123#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1124 { release_hack( ((*yyvaluep).node) ); };
1125/* Line 453 of lalr1.cc */
1126#line 1127 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1127 break;
1128 case 453: /* OrderSpec */
1129/* Line 453 of lalr1.cc */
1130#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1131 { release_hack( ((*yyvaluep).node) ); };
1132/* Line 453 of lalr1.cc */
1133#line 1134 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1134 break;
1135 case 454: /* OrderModifier */
1136/* Line 453 of lalr1.cc */
1137#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1138 { release_hack( ((*yyvaluep).node) ); };
1139/* Line 453 of lalr1.cc */
1140#line 1141 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1141 break;
1142 case 455: /* OrderDirSpec */
1143/* Line 453 of lalr1.cc */
1144#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1145 { release_hack( ((*yyvaluep).node) ); };
1146/* Line 453 of lalr1.cc */
1147#line 1148 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1148 break;
1149 case 456: /* OrderEmptySpec */
1150/* Line 453 of lalr1.cc */
1151#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1152 { release_hack( ((*yyvaluep).node) ); };
1153/* Line 453 of lalr1.cc */
1154#line 1155 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1155 break;
1156 case 457: /* OrderCollationSpec */
1157/* Line 453 of lalr1.cc */
1158#line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1159 { release_hack( ((*yyvaluep).node) ); };
1160/* Line 453 of lalr1.cc */
1161#line 1162 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1162 break;
1163 case 458: /* QuantifiedExpr */
1164/* Line 453 of lalr1.cc */
1165#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1166 { release_hack( ((*yyvaluep).expr) ); };
1167/* Line 453 of lalr1.cc */
1168#line 1169 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1169 break;
1170 case 459: /* QVarInDeclList */
1171/* Line 453 of lalr1.cc */
1172#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1173 { release_hack( ((*yyvaluep).node) ); };
1174/* Line 453 of lalr1.cc */
1175#line 1176 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1176 break;
1177 case 460: /* QVarInDecl */
1178/* Line 453 of lalr1.cc */
1179#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1180 { release_hack( ((*yyvaluep).node) ); };
1181/* Line 453 of lalr1.cc */
1182#line 1183 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1183 break;
1184 case 461: /* SwitchExpr */
1185/* Line 453 of lalr1.cc */
1186#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1187 { release_hack( ((*yyvaluep).expr) ); };
1188/* Line 453 of lalr1.cc */
1189#line 1190 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1190 break;
1191 case 462: /* SwitchCaseClauseList */
1192/* Line 453 of lalr1.cc */
1193#line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1194 { release_hack( ((*yyvaluep).node) ); };
1195/* Line 453 of lalr1.cc */
1196#line 1197 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1197 break;
1198 case 463: /* SwitchCaseClause */
1199/* Line 453 of lalr1.cc */
1200#line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1201 { release_hack( ((*yyvaluep).node) ); };
1202/* Line 453 of lalr1.cc */
1203#line 1204 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1204 break;
1205 case 464: /* SwitchCaseOperandList */
1206/* Line 453 of lalr1.cc */
1207#line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1208 { release_hack( ((*yyvaluep).node) ); };
1209/* Line 453 of lalr1.cc */
1210#line 1211 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1211 break;
1212 case 465: /* SwitchStatement */
1213/* Line 453 of lalr1.cc */
1214#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1215 { release_hack( ((*yyvaluep).expr) ); };
1216/* Line 453 of lalr1.cc */
1217#line 1218 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1218 break;
1219 case 468: /* TypeswitchExpr */
1220/* Line 453 of lalr1.cc */
1221#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1222 { release_hack( ((*yyvaluep).expr) ); };
1223/* Line 453 of lalr1.cc */
1224#line 1225 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1225 break;
1226 case 469: /* TypeswitchStatement */
1227/* Line 453 of lalr1.cc */
1228#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1229 { release_hack( ((*yyvaluep).expr) ); };
1230/* Line 453 of lalr1.cc */
1231#line 1232 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1232 break;
1233 case 470: /* CaseClauseList */
1234/* Line 453 of lalr1.cc */
1235#line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1236 { release_hack( ((*yyvaluep).node) ); };
1237/* Line 453 of lalr1.cc */
1238#line 1239 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1239 break;
1240 case 471: /* CaseClause */
1241/* Line 453 of lalr1.cc */
1242#line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1243 { release_hack( ((*yyvaluep).node) ); };
1244/* Line 453 of lalr1.cc */
1245#line 1246 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1246 break;
1247 case 474: /* SequenceTypeList */
1248/* Line 453 of lalr1.cc */
1249#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1250 { release_hack( ((*yyvaluep).node) ); };
1251/* Line 453 of lalr1.cc */
1252#line 1253 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1253 break;
1254 case 475: /* IfExpr */
1255/* Line 453 of lalr1.cc */
1256#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1257 { release_hack( ((*yyvaluep).expr) ); };
1258/* Line 453 of lalr1.cc */
1259#line 1260 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1260 break;
1261 case 476: /* OrExpr */
1262/* Line 453 of lalr1.cc */
1263#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1264 { release_hack( ((*yyvaluep).expr) ); };
1265/* Line 453 of lalr1.cc */
1266#line 1267 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1267 break;
1268 case 477: /* AndExpr */
1269/* Line 453 of lalr1.cc */
1270#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1271 { release_hack( ((*yyvaluep).expr) ); };
1272/* Line 453 of lalr1.cc */
1273#line 1274 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1274 break;
1275 case 478: /* NotExpr */
1276/* Line 453 of lalr1.cc */
1277#line 935 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1278 { release_hack( ((*yyvaluep).expr) ); };
1279/* Line 453 of lalr1.cc */
1280#line 1281 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1281 break;
1282 case 479: /* ComparisonExpr */
1283/* Line 453 of lalr1.cc */
1284#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1285 { release_hack( ((*yyvaluep).expr) ); };
1286/* Line 453 of lalr1.cc */
1287#line 1288 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1288 break;
1289 case 481: /* FTContainsExpr */
1290/* Line 453 of lalr1.cc */
1291#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1292 { release_hack( ((*yyvaluep).expr) ); };
1293/* Line 453 of lalr1.cc */
1294#line 1295 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1295 break;
1296 case 482: /* StringConcatExpr */
1297/* Line 453 of lalr1.cc */
1298#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1299 { release_hack( ((*yyvaluep).expr) ); };
1300/* Line 453 of lalr1.cc */
1301#line 1302 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1302 break;
1303 case 483: /* opt_FTIgnoreOption */
1304/* Line 453 of lalr1.cc */
1305#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1306 { release_hack( ((*yyvaluep).node) ); };
1307/* Line 453 of lalr1.cc */
1308#line 1309 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1309 break;
1310 case 484: /* RangeExpr */
1311/* Line 453 of lalr1.cc */
1312#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1313 { release_hack( ((*yyvaluep).expr) ); };
1314/* Line 453 of lalr1.cc */
1315#line 1316 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1316 break;
1317 case 485: /* AdditiveExpr */
1318/* Line 453 of lalr1.cc */
1319#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1320 { release_hack( ((*yyvaluep).expr) ); };
1321/* Line 453 of lalr1.cc */
1322#line 1323 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1323 break;
1324 case 486: /* MultiplicativeExpr */
1325/* Line 453 of lalr1.cc */
1326#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1327 { release_hack( ((*yyvaluep).expr) ); };
1328/* Line 453 of lalr1.cc */
1329#line 1330 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1330 break;
1331 case 487: /* UnionExpr */
1332/* Line 453 of lalr1.cc */
1333#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1334 { release_hack( ((*yyvaluep).expr) ); };
1335/* Line 453 of lalr1.cc */
1336#line 1337 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1337 break;
1338 case 488: /* IntersectExceptExpr */
1339/* Line 453 of lalr1.cc */
1340#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1341 { release_hack( ((*yyvaluep).expr) ); };
1342/* Line 453 of lalr1.cc */
1343#line 1344 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1344 break;
1345 case 489: /* InstanceofExpr */
1346/* Line 453 of lalr1.cc */
1347#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1348 { release_hack( ((*yyvaluep).expr) ); };
1349/* Line 453 of lalr1.cc */
1350#line 1351 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1351 break;
1352 case 490: /* TreatExpr */
1353/* Line 453 of lalr1.cc */
1354#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1355 { release_hack( ((*yyvaluep).expr) ); };
1356/* Line 453 of lalr1.cc */
1357#line 1358 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1358 break;
1359 case 491: /* CastableExpr */
1360/* Line 453 of lalr1.cc */
1361#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1362 { release_hack( ((*yyvaluep).expr) ); };
1363/* Line 453 of lalr1.cc */
1364#line 1365 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1365 break;
1366 case 492: /* CastExpr */
1367/* Line 453 of lalr1.cc */
1368#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1369 { release_hack( ((*yyvaluep).expr) ); };
1370/* Line 453 of lalr1.cc */
1371#line 1372 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1372 break;
1373 case 493: /* SingleType */
1374/* Line 453 of lalr1.cc */
1375#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1376 { release_hack( ((*yyvaluep).node) ); };
1377/* Line 453 of lalr1.cc */
1378#line 1379 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1379 break;
1380 case 494: /* UnaryExpr */
1381/* Line 453 of lalr1.cc */
1382#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1383 { release_hack( ((*yyvaluep).expr) ); };
1384/* Line 453 of lalr1.cc */
1385#line 1386 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1386 break;
1387 case 495: /* SignList */
1388/* Line 453 of lalr1.cc */
1389#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1390 { release_hack( ((*yyvaluep).node) ); };
1391/* Line 453 of lalr1.cc */
1392#line 1393 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1393 break;
1394 case 496: /* ValueExpr */
1395/* Line 453 of lalr1.cc */
1396#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1397 { release_hack( ((*yyvaluep).expr) ); };
1398/* Line 453 of lalr1.cc */
1399#line 1400 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1400 break;
1401 case 497: /* SimpleMapExpr */
1402/* Line 453 of lalr1.cc */
1403#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1404 { release_hack( ((*yyvaluep).expr) ); };
1405/* Line 453 of lalr1.cc */
1406#line 1407 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1407 break;
1408 case 498: /* ValueComp */
1409/* Line 453 of lalr1.cc */
1410#line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1411 { release_hack( ((*yyvaluep).node) ); };
1412/* Line 453 of lalr1.cc */
1413#line 1414 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1414 break;
1415 case 499: /* NodeComp */
1416/* Line 453 of lalr1.cc */
1417#line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1418 { release_hack( ((*yyvaluep).node) ); };
1419/* Line 453 of lalr1.cc */
1420#line 1421 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1421 break;
1422 case 500: /* ValidateExpr */
1423/* Line 453 of lalr1.cc */
1424#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1425 { release_hack( ((*yyvaluep).expr) ); };
1426/* Line 453 of lalr1.cc */
1427#line 1428 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1428 break;
1429 case 501: /* ExtensionExpr */
1430/* Line 453 of lalr1.cc */
1431#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1432 { release_hack( ((*yyvaluep).expr) ); };
1433/* Line 453 of lalr1.cc */
1434#line 1435 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1435 break;
1436 case 502: /* Pragma_list */
1437/* Line 453 of lalr1.cc */
1438#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1439 { release_hack( ((*yyvaluep).node) ); };
1440/* Line 453 of lalr1.cc */
1441#line 1442 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1442 break;
1443 case 503: /* Pragma */
1444/* Line 453 of lalr1.cc */
1445#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1446 { release_hack( ((*yyvaluep).node) ); };
1447/* Line 453 of lalr1.cc */
1448#line 1449 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1449 break;
1450 case 504: /* PathExpr */
1451/* Line 453 of lalr1.cc */
1452#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1453 { release_hack( ((*yyvaluep).expr) ); };
1454/* Line 453 of lalr1.cc */
1455#line 1456 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1456 break;
1457 case 506: /* RelativePathExpr */
1458/* Line 453 of lalr1.cc */
1459#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1460 { release_hack( ((*yyvaluep).expr) ); };
1461/* Line 453 of lalr1.cc */
1462#line 1463 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1463 break;
1464 case 507: /* StepExpr */
1465/* Line 453 of lalr1.cc */
1466#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1467 { release_hack( ((*yyvaluep).expr) ); };
1468/* Line 453 of lalr1.cc */
1469#line 1470 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1470 break;
1471 case 508: /* AxisStep */
1472/* Line 453 of lalr1.cc */
1473#line 945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1474 { release_hack( ((*yyvaluep).expr) ); };
1475/* Line 453 of lalr1.cc */
1476#line 1477 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1477 break;
1478 case 509: /* ForwardStep */
1479/* Line 453 of lalr1.cc */
1480#line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1481 { release_hack( ((*yyvaluep).node) ); };
1482/* Line 453 of lalr1.cc */
1483#line 1484 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1484 break;
1485 case 510: /* ForwardAxis */
1486/* Line 453 of lalr1.cc */
1487#line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1488 { release_hack( ((*yyvaluep).node) ); };
1489/* Line 453 of lalr1.cc */
1490#line 1491 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1491 break;
1492 case 511: /* AbbrevForwardStep */
1493/* Line 453 of lalr1.cc */
1494#line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1495 { release_hack( ((*yyvaluep).node) ); };
1496/* Line 453 of lalr1.cc */
1497#line 1498 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1498 break;
1499 case 512: /* ReverseStep */
1500/* Line 453 of lalr1.cc */
1501#line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1502 { release_hack( ((*yyvaluep).node) ); };
1503/* Line 453 of lalr1.cc */
1504#line 1505 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1505 break;
1506 case 513: /* ReverseAxis */
1507/* Line 453 of lalr1.cc */
1508#line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1509 { release_hack( ((*yyvaluep).node) ); };
1510/* Line 453 of lalr1.cc */
1511#line 1512 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1512 break;
1513 case 514: /* NodeTest */
1514/* Line 453 of lalr1.cc */
1515#line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1516 { release_hack( ((*yyvaluep).node) ); };
1517/* Line 453 of lalr1.cc */
1518#line 1519 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1519 break;
1520 case 515: /* NameTest */
1521/* Line 453 of lalr1.cc */
1522#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1523 { release_hack( ((*yyvaluep).node) ); };
1524/* Line 453 of lalr1.cc */
1525#line 1526 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1526 break;
1527 case 516: /* Wildcard */
1528/* Line 453 of lalr1.cc */
1529#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1530 { release_hack( ((*yyvaluep).node) ); };
1531/* Line 453 of lalr1.cc */
1532#line 1533 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1533 break;
1534 case 517: /* PostfixExpr */
1535/* Line 453 of lalr1.cc */
1536#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1537 { release_hack( ((*yyvaluep).expr) ); };
1538/* Line 453 of lalr1.cc */
1539#line 1540 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1540 break;
1541 case 518: /* PredicateList */
1542/* Line 453 of lalr1.cc */
1543#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1544 { release_hack( ((*yyvaluep).node) ); };
1545/* Line 453 of lalr1.cc */
1546#line 1547 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1547 break;
1548 case 519: /* Predicate */
1549/* Line 453 of lalr1.cc */
1550#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1551 { release_hack( ((*yyvaluep).expr) ); };
1552/* Line 453 of lalr1.cc */
1553#line 1554 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1554 break;
1555 case 520: /* PrimaryExpr */
1556/* Line 453 of lalr1.cc */
1557#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1558 { release_hack( ((*yyvaluep).expr) ); };
1559/* Line 453 of lalr1.cc */
1560#line 1561 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1561 break;
1562 case 521: /* Literal */
1563/* Line 453 of lalr1.cc */
1564#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1565 { release_hack( ((*yyvaluep).expr) ); };
1566/* Line 453 of lalr1.cc */
1567#line 1568 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1568 break;
1569 case 522: /* NumericLiteral */
1570/* Line 453 of lalr1.cc */
1571#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1572 { release_hack( ((*yyvaluep).expr) ); };
1573/* Line 453 of lalr1.cc */
1574#line 1575 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1575 break;
1576 case 523: /* VarRef */
1577/* Line 453 of lalr1.cc */
1578#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1579 { release_hack( ((*yyvaluep).expr) ); };
1580/* Line 453 of lalr1.cc */
1581#line 1582 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1582 break;
1583 case 524: /* ParenthesizedExpr */
1584/* Line 453 of lalr1.cc */
1585#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1586 { release_hack( ((*yyvaluep).expr) ); };
1587/* Line 453 of lalr1.cc */
1588#line 1589 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1589 break;
1590 case 525: /* ContextItemExpr */
1591/* Line 453 of lalr1.cc */
1592#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1593 { release_hack( ((*yyvaluep).expr) ); };
1594/* Line 453 of lalr1.cc */
1595#line 1596 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1596 break;
1597 case 526: /* OrderedExpr */
1598/* Line 453 of lalr1.cc */
1599#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1600 { release_hack( ((*yyvaluep).expr) ); };
1601/* Line 453 of lalr1.cc */
1602#line 1603 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1603 break;
1604 case 527: /* UnorderedExpr */
1605/* Line 453 of lalr1.cc */
1606#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1607 { release_hack( ((*yyvaluep).expr) ); };
1608/* Line 453 of lalr1.cc */
1609#line 1610 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1610 break;
1611 case 528: /* FunctionCall */
1612/* Line 453 of lalr1.cc */
1613#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1614 { release_hack( ((*yyvaluep).expr) ); };
1615/* Line 453 of lalr1.cc */
1616#line 1617 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1617 break;
1618 case 529: /* ArgList */
1619/* Line 453 of lalr1.cc */
1620#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1621 { release_hack( ((*yyvaluep).node) ); };
1622/* Line 453 of lalr1.cc */
1623#line 1624 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1624 break;
1625 case 533: /* Constructor */
1626/* Line 453 of lalr1.cc */
1627#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1628 { release_hack( ((*yyvaluep).expr) ); };
1629/* Line 453 of lalr1.cc */
1630#line 1631 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1631 break;
1632 case 534: /* DirectConstructor */
1633/* Line 453 of lalr1.cc */
1634#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1635 { release_hack( ((*yyvaluep).expr) ); };
1636/* Line 453 of lalr1.cc */
1637#line 1638 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1638 break;
1639 case 535: /* DirElemConstructor */
1640/* Line 453 of lalr1.cc */
1641#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1642 { release_hack( ((*yyvaluep).expr) ); };
1643/* Line 453 of lalr1.cc */
1644#line 1645 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1645 break;
1646 case 536: /* DirElemContentList */
1647/* Line 453 of lalr1.cc */
1648#line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1649 { release_hack( ((*yyvaluep).node) ); };
1650/* Line 453 of lalr1.cc */
1651#line 1652 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1652 break;
1653 case 537: /* DirAttributeList */
1654/* Line 453 of lalr1.cc */
1655#line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1656 { release_hack( ((*yyvaluep).node) ); };
1657/* Line 453 of lalr1.cc */
1658#line 1659 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1659 break;
1660 case 538: /* DirAttr */
1661/* Line 453 of lalr1.cc */
1662#line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1663 { release_hack( ((*yyvaluep).node) ); };
1664/* Line 453 of lalr1.cc */
1665#line 1666 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1666 break;
1667 case 540: /* DirAttributeValue */
1668/* Line 453 of lalr1.cc */
1669#line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1670 { release_hack( ((*yyvaluep).node) ); };
1671/* Line 453 of lalr1.cc */
1672#line 1673 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1673 break;
1674 case 541: /* opt_QuoteAttrContentList */
1675/* Line 453 of lalr1.cc */
1676#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1677 { release_hack( ((*yyvaluep).node) ); };
1678/* Line 453 of lalr1.cc */
1679#line 1680 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1680 break;
1681 case 542: /* QuoteAttrContentList */
1682/* Line 453 of lalr1.cc */
1683#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1684 { release_hack( ((*yyvaluep).node) ); };
1685/* Line 453 of lalr1.cc */
1686#line 1687 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1687 break;
1688 case 543: /* opt_AposAttrContentList */
1689/* Line 453 of lalr1.cc */
1690#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1691 { release_hack( ((*yyvaluep).node) ); };
1692/* Line 453 of lalr1.cc */
1693#line 1694 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1694 break;
1695 case 544: /* AposAttrContentList */
1696/* Line 453 of lalr1.cc */
1697#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1698 { release_hack( ((*yyvaluep).node) ); };
1699/* Line 453 of lalr1.cc */
1700#line 1701 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1701 break;
1702 case 545: /* QuoteAttrValueContent */
1703/* Line 453 of lalr1.cc */
1704#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1705 { release_hack( ((*yyvaluep).node) ); };
1706/* Line 453 of lalr1.cc */
1707#line 1708 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1708 break;
1709 case 546: /* AposAttrValueContent */
1710/* Line 453 of lalr1.cc */
1711#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1712 { release_hack( ((*yyvaluep).node) ); };
1713/* Line 453 of lalr1.cc */
1714#line 1715 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1715 break;
1716 case 547: /* DirElemContent */
1717/* Line 453 of lalr1.cc */
1718#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1719 { release_hack( ((*yyvaluep).expr) ); };
1720/* Line 453 of lalr1.cc */
1721#line 1722 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1722 break;
1723 case 548: /* CommonContent */
1724/* Line 453 of lalr1.cc */
1725#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1726 { release_hack( ((*yyvaluep).expr) ); };
1727/* Line 453 of lalr1.cc */
1728#line 1729 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1729 break;
1730 case 549: /* DirCommentConstructor */
1731/* Line 453 of lalr1.cc */
1732#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1733 { release_hack( ((*yyvaluep).expr) ); };
1734/* Line 453 of lalr1.cc */
1735#line 1736 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1736 break;
1737 case 550: /* DirPIConstructor */
1738/* Line 453 of lalr1.cc */
1739#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1740 { release_hack( ((*yyvaluep).expr) ); };
1741/* Line 453 of lalr1.cc */
1742#line 1743 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1743 break;
1744 case 551: /* CDataSection */
1745/* Line 453 of lalr1.cc */
1746#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1747 { release_hack( ((*yyvaluep).expr) ); };
1748/* Line 453 of lalr1.cc */
1749#line 1750 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1750 break;
1751 case 552: /* ComputedConstructor */
1752/* Line 453 of lalr1.cc */
1753#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1754 { release_hack( ((*yyvaluep).expr) ); };
1755/* Line 453 of lalr1.cc */
1756#line 1757 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1757 break;
1758 case 553: /* CompDocConstructor */
1759/* Line 453 of lalr1.cc */
1760#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1761 { release_hack( ((*yyvaluep).expr) ); };
1762/* Line 453 of lalr1.cc */
1763#line 1764 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1764 break;
1765 case 554: /* CompElemConstructor */
1766/* Line 453 of lalr1.cc */
1767#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1768 { release_hack( ((*yyvaluep).expr) ); };
1769/* Line 453 of lalr1.cc */
1770#line 1771 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1771 break;
1772 case 555: /* CompAttrConstructor */
1773/* Line 453 of lalr1.cc */
1774#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1775 { release_hack( ((*yyvaluep).expr) ); };
1776/* Line 453 of lalr1.cc */
1777#line 1778 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1778 break;
1779 case 556: /* CompTextConstructor */
1780/* Line 453 of lalr1.cc */
1781#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1782 { release_hack( ((*yyvaluep).expr) ); };
1783/* Line 453 of lalr1.cc */
1784#line 1785 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1785 break;
1786 case 557: /* CompCommentConstructor */
1787/* Line 453 of lalr1.cc */
1788#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1789 { release_hack( ((*yyvaluep).expr) ); };
1790/* Line 453 of lalr1.cc */
1791#line 1792 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1792 break;
1793 case 558: /* CompPIConstructor */
1794/* Line 453 of lalr1.cc */
1795#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1796 { release_hack( ((*yyvaluep).expr) ); };
1797/* Line 453 of lalr1.cc */
1798#line 1799 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1799 break;
1800 case 559: /* CompNamespaceConstructor */
1801/* Line 453 of lalr1.cc */
1802#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1803 { release_hack( ((*yyvaluep).expr) ); };
1804/* Line 453 of lalr1.cc */
1805#line 1806 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1806 break;
1807 case 560: /* TypeDeclaration */
1808/* Line 453 of lalr1.cc */
1809#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1810 { release_hack( ((*yyvaluep).node) ); };
1811/* Line 453 of lalr1.cc */
1812#line 1813 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1813 break;
1814 case 561: /* SequenceType */
1815/* Line 453 of lalr1.cc */
1816#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1817 { release_hack( ((*yyvaluep).node) ); };
1818/* Line 453 of lalr1.cc */
1819#line 1820 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1820 break;
1821 case 562: /* OccurrenceIndicator */
1822/* Line 453 of lalr1.cc */
1823#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1824 { release_hack( ((*yyvaluep).node) ); };
1825/* Line 453 of lalr1.cc */
1826#line 1827 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1827 break;
1828 case 563: /* ItemType */
1829/* Line 453 of lalr1.cc */
1830#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1831 { release_hack( ((*yyvaluep).node) ); };
1832/* Line 453 of lalr1.cc */
1833#line 1834 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1834 break;
1835 case 564: /* TypeList */
1836/* Line 453 of lalr1.cc */
1837#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1838 { release_hack( ((*yyvaluep).node) ); };
1839/* Line 453 of lalr1.cc */
1840#line 1841 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1841 break;
1842 case 565: /* GeneralizedAtomicType */
1843/* Line 453 of lalr1.cc */
1844#line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1845 { release_hack( ((*yyvaluep).node) ); };
1846/* Line 453 of lalr1.cc */
1847#line 1848 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1848 break;
1849 case 566: /* SimpleType */
1850/* Line 453 of lalr1.cc */
1851#line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1852 { release_hack( ((*yyvaluep).node) ); };
1853/* Line 453 of lalr1.cc */
1854#line 1855 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1855 break;
1856 case 567: /* KindTest */
1857/* Line 453 of lalr1.cc */
1858#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1859 { release_hack( ((*yyvaluep).node) ); };
1860/* Line 453 of lalr1.cc */
1861#line 1862 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1862 break;
1863 case 568: /* AnyKindTest */
1864/* Line 453 of lalr1.cc */
1865#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1866 { release_hack( ((*yyvaluep).node) ); };
1867/* Line 453 of lalr1.cc */
1868#line 1869 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1869 break;
1870 case 570: /* DocumentTest */
1871/* Line 453 of lalr1.cc */
1872#line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1873 { release_hack( ((*yyvaluep).node) ); };
1874/* Line 453 of lalr1.cc */
1875#line 1876 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1876 break;
1877 case 571: /* NamespaceTest */
1878/* Line 453 of lalr1.cc */
1879#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1880 { release_hack( ((*yyvaluep).node) ); };
1881/* Line 453 of lalr1.cc */
1882#line 1883 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1883 break;
1884 case 572: /* TextTest */
1885/* Line 453 of lalr1.cc */
1886#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1887 { release_hack( ((*yyvaluep).node) ); };
1888/* Line 453 of lalr1.cc */
1889#line 1890 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1890 break;
1891 case 573: /* CommentTest */
1892/* Line 453 of lalr1.cc */
1893#line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1894 { release_hack( ((*yyvaluep).node) ); };
1895/* Line 453 of lalr1.cc */
1896#line 1897 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1897 break;
1898 case 574: /* PITest */
1899/* Line 453 of lalr1.cc */
1900#line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1901 { release_hack( ((*yyvaluep).node) ); };
1902/* Line 453 of lalr1.cc */
1903#line 1904 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1904 break;
1905 case 575: /* AttributeTest */
1906/* Line 453 of lalr1.cc */
1907#line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1908 { release_hack( ((*yyvaluep).node) ); };
1909/* Line 453 of lalr1.cc */
1910#line 1911 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1911 break;
1912 case 576: /* SchemaAttributeTest */
1913/* Line 453 of lalr1.cc */
1914#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1915 { release_hack( ((*yyvaluep).node) ); };
1916/* Line 453 of lalr1.cc */
1917#line 1918 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1918 break;
1919 case 577: /* ElementTest */
1920/* Line 453 of lalr1.cc */
1921#line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1922 { release_hack( ((*yyvaluep).node) ); };
1923/* Line 453 of lalr1.cc */
1924#line 1925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1925 break;
1926 case 578: /* SchemaElementTest */
1927/* Line 453 of lalr1.cc */
1928#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1929 { release_hack( ((*yyvaluep).node) ); };
1930/* Line 453 of lalr1.cc */
1931#line 1932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1932 break;
1933 case 579: /* TypeName */
1934/* Line 453 of lalr1.cc */
1935#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1936 { release_hack( ((*yyvaluep).node) ); };
1937/* Line 453 of lalr1.cc */
1938#line 1939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1939 break;
1940 case 580: /* TypeName_WITH_HOOK */
1941/* Line 453 of lalr1.cc */
1942#line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1943 { release_hack( ((*yyvaluep).node) ); };
1944/* Line 453 of lalr1.cc */
1945#line 1946 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1946 break;
1947 case 581: /* StringLiteral */
1948/* Line 453 of lalr1.cc */
1949#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1950 { release_hack( ((*yyvaluep).expr) ); };
1951/* Line 453 of lalr1.cc */
1952#line 1953 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1953 break;
1954 case 583: /* AnyFunctionTest */
1955/* Line 453 of lalr1.cc */
1956#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1957 { release_hack( ((*yyvaluep).node) ); };
1958/* Line 453 of lalr1.cc */
1959#line 1960 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1960 break;
1961 case 584: /* TypedFunctionTest */
1962/* Line 453 of lalr1.cc */
1963#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1964 { release_hack( ((*yyvaluep).node) ); };
1965/* Line 453 of lalr1.cc */
1966#line 1967 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1967 break;
1968 case 587: /* InsertExpr */
1969/* Line 453 of lalr1.cc */
1970#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1971 { release_hack( ((*yyvaluep).expr) ); };
1972/* Line 453 of lalr1.cc */
1973#line 1974 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1974 break;
1975 case 588: /* DeleteExpr */
1976/* Line 453 of lalr1.cc */
1977#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1978 { release_hack( ((*yyvaluep).expr) ); };
1979/* Line 453 of lalr1.cc */
1980#line 1981 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1981 break;
1982 case 589: /* ReplaceExpr */
1983/* Line 453 of lalr1.cc */
1984#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1985 { release_hack( ((*yyvaluep).expr) ); };
1986/* Line 453 of lalr1.cc */
1987#line 1988 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1988 break;
1989 case 590: /* RenameExpr */
1990/* Line 453 of lalr1.cc */
1991#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1992 { release_hack( ((*yyvaluep).expr) ); };
1993/* Line 453 of lalr1.cc */
1994#line 1995 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
1995 break;
1996 case 591: /* TransformExpr */
1997/* Line 453 of lalr1.cc */
1998#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
1999 { release_hack( ((*yyvaluep).expr) ); };
2000/* Line 453 of lalr1.cc */
2001#line 2002 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2002 break;
2003 case 592: /* VarNameList */
2004/* Line 453 of lalr1.cc */
2005#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2006 { release_hack( ((*yyvaluep).expr) ); };
2007/* Line 453 of lalr1.cc */
2008#line 2009 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2009 break;
2010 case 593: /* VarNameDecl */
2011/* Line 453 of lalr1.cc */
2012#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2013 { release_hack( ((*yyvaluep).expr) ); };
2014/* Line 453 of lalr1.cc */
2015#line 2016 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2016 break;
2017 case 594: /* TryExpr */
2018/* Line 453 of lalr1.cc */
2019#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2020 { release_hack( ((*yyvaluep).expr) ); };
2021/* Line 453 of lalr1.cc */
2022#line 2023 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2023 break;
2024 case 595: /* CatchListExpr */
2025/* Line 453 of lalr1.cc */
2026#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2027 { release_hack( ((*yyvaluep).expr) ); };
2028/* Line 453 of lalr1.cc */
2029#line 2030 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2030 break;
2031 case 596: /* CatchExpr */
2032/* Line 453 of lalr1.cc */
2033#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2034 { release_hack( ((*yyvaluep).expr) ); };
2035/* Line 453 of lalr1.cc */
2036#line 2037 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2037 break;
2038 case 597: /* BracedExpr */
2039/* Line 453 of lalr1.cc */
2040#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2041 { release_hack( ((*yyvaluep).expr) ); };
2042/* Line 453 of lalr1.cc */
2043#line 2044 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2044 break;
2045 case 598: /* NameTestList */
2046/* Line 453 of lalr1.cc */
2047#line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2048 { delete ((*yyvaluep).name_test_list); };
2049/* Line 453 of lalr1.cc */
2050#line 2051 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2051 break;
2052 case 599: /* FTSelection */
2053/* Line 453 of lalr1.cc */
2054#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2055 { release_hack( ((*yyvaluep).node) ); };
2056/* Line 453 of lalr1.cc */
2057#line 2058 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2058 break;
2059 case 602: /* FTOr */
2060/* Line 453 of lalr1.cc */
2061#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2062 { release_hack( ((*yyvaluep).node) ); };
2063/* Line 453 of lalr1.cc */
2064#line 2065 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2065 break;
2066 case 603: /* FTAnd */
2067/* Line 453 of lalr1.cc */
2068#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2069 { release_hack( ((*yyvaluep).node) ); };
2070/* Line 453 of lalr1.cc */
2071#line 2072 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2072 break;
2073 case 604: /* FTMildNot */
2074/* Line 453 of lalr1.cc */
2075#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2076 { release_hack( ((*yyvaluep).node) ); };
2077/* Line 453 of lalr1.cc */
2078#line 2079 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2079 break;
2080 case 605: /* FTUnaryNot */
2081/* Line 453 of lalr1.cc */
2082#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2083 { release_hack( ((*yyvaluep).node) ); };
2084/* Line 453 of lalr1.cc */
2085#line 2086 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2086 break;
2087 case 606: /* FTPrimaryWithOptions */
2088/* Line 453 of lalr1.cc */
2089#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2090 { release_hack( ((*yyvaluep).node) ); };
2091/* Line 453 of lalr1.cc */
2092#line 2093 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2093 break;
2094 case 607: /* opt_FTMatchOptions */
2095/* Line 453 of lalr1.cc */
2096#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2097 { release_hack( ((*yyvaluep).node) ); };
2098/* Line 453 of lalr1.cc */
2099#line 2100 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2100 break;
2101 case 609: /* FTWeight */
2102/* Line 453 of lalr1.cc */
2103#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2104 { release_hack( ((*yyvaluep).node) ); };
2105/* Line 453 of lalr1.cc */
2106#line 2107 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2107 break;
2108 case 610: /* FTPrimary */
2109/* Line 453 of lalr1.cc */
2110#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2111 { release_hack( ((*yyvaluep).node) ); };
2112/* Line 453 of lalr1.cc */
2113#line 2114 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2114 break;
2115 case 611: /* opt_FTTimes */
2116/* Line 453 of lalr1.cc */
2117#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2118 { release_hack( ((*yyvaluep).node) ); };
2119/* Line 453 of lalr1.cc */
2120#line 2121 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2121 break;
2122 case 612: /* FTExtensionSelection */
2123/* Line 453 of lalr1.cc */
2124#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2125 { release_hack( ((*yyvaluep).node) ); };
2126/* Line 453 of lalr1.cc */
2127#line 2128 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2128 break;
2129 case 614: /* FTWords */
2130/* Line 453 of lalr1.cc */
2131#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2132 { release_hack( ((*yyvaluep).node) ); };
2133/* Line 453 of lalr1.cc */
2134#line 2135 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2135 break;
2136 case 615: /* FTWordsValue */
2137/* Line 453 of lalr1.cc */
2138#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2139 { release_hack( ((*yyvaluep).node) ); };
2140/* Line 453 of lalr1.cc */
2141#line 2142 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2142 break;
2143 case 617: /* FTAnyallOption */
2144/* Line 453 of lalr1.cc */
2145#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2146 { release_hack( ((*yyvaluep).node) ); };
2147/* Line 453 of lalr1.cc */
2148#line 2149 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2149 break;
2150 case 620: /* FTPosFilter */
2151/* Line 453 of lalr1.cc */
2152#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2153 { release_hack( ((*yyvaluep).node) ); };
2154/* Line 453 of lalr1.cc */
2155#line 2156 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2156 break;
2157 case 621: /* FTOrder */
2158/* Line 453 of lalr1.cc */
2159#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2160 { release_hack( ((*yyvaluep).node) ); };
2161/* Line 453 of lalr1.cc */
2162#line 2163 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2163 break;
2164 case 622: /* FTWindow */
2165/* Line 453 of lalr1.cc */
2166#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2167 { release_hack( ((*yyvaluep).node) ); };
2168/* Line 453 of lalr1.cc */
2169#line 2170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2170 break;
2171 case 623: /* FTDistance */
2172/* Line 453 of lalr1.cc */
2173#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2174 { release_hack( ((*yyvaluep).node) ); };
2175/* Line 453 of lalr1.cc */
2176#line 2177 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2177 break;
2178 case 624: /* FTUnit */
2179/* Line 453 of lalr1.cc */
2180#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2181 { release_hack( ((*yyvaluep).node) ); };
2182/* Line 453 of lalr1.cc */
2183#line 2184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2184 break;
2185 case 625: /* FTMatchOptions */
2186/* Line 453 of lalr1.cc */
2187#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2188 { release_hack( ((*yyvaluep).node) ); };
2189/* Line 453 of lalr1.cc */
2190#line 2191 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2191 break;
2192 case 626: /* FTMatchOption */
2193/* Line 453 of lalr1.cc */
2194#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2195 { release_hack( ((*yyvaluep).node) ); };
2196/* Line 453 of lalr1.cc */
2197#line 2198 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2198 break;
2199 case 627: /* FTCaseOption */
2200/* Line 453 of lalr1.cc */
2201#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2202 { release_hack( ((*yyvaluep).node) ); };
2203/* Line 453 of lalr1.cc */
2204#line 2205 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2205 break;
2206 case 628: /* FTDiacriticsOption */
2207/* Line 453 of lalr1.cc */
2208#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2209 { release_hack( ((*yyvaluep).node) ); };
2210/* Line 453 of lalr1.cc */
2211#line 2212 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2212 break;
2213 case 629: /* FTExtensionOption */
2214/* Line 453 of lalr1.cc */
2215#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2216 { release_hack( ((*yyvaluep).node) ); };
2217/* Line 453 of lalr1.cc */
2218#line 2219 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2219 break;
2220 case 630: /* FTStemOption */
2221/* Line 453 of lalr1.cc */
2222#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2223 { release_hack( ((*yyvaluep).node) ); };
2224/* Line 453 of lalr1.cc */
2225#line 2226 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2226 break;
2227 case 631: /* FTThesaurusOption */
2228/* Line 453 of lalr1.cc */
2229#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2230 { release_hack( ((*yyvaluep).node) ); };
2231/* Line 453 of lalr1.cc */
2232#line 2233 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2233 break;
2234 case 635: /* FTThesaurusID */
2235/* Line 453 of lalr1.cc */
2236#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2237 { release_hack( ((*yyvaluep).node) ); };
2238/* Line 453 of lalr1.cc */
2239#line 2240 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2240 break;
2241 case 638: /* FTStopWordOption */
2242/* Line 453 of lalr1.cc */
2243#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2244 { release_hack( ((*yyvaluep).node) ); };
2245/* Line 453 of lalr1.cc */
2246#line 2247 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2247 break;
2248 case 639: /* FTStopWords */
2249/* Line 453 of lalr1.cc */
2250#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2251 { release_hack( ((*yyvaluep).node) ); };
2252/* Line 453 of lalr1.cc */
2253#line 2254 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2254 break;
2255 case 643: /* FTStopWordsInclExcl */
2256/* Line 453 of lalr1.cc */
2257#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2258 { release_hack( ((*yyvaluep).node) ); };
2259/* Line 453 of lalr1.cc */
2260#line 2261 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2261 break;
2262 case 644: /* FTLanguageOption */
2263/* Line 453 of lalr1.cc */
2264#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2265 { release_hack( ((*yyvaluep).node) ); };
2266/* Line 453 of lalr1.cc */
2267#line 2268 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2268 break;
2269 case 645: /* FTWildCardOption */
2270/* Line 453 of lalr1.cc */
2271#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2272 { release_hack( ((*yyvaluep).node) ); };
2273/* Line 453 of lalr1.cc */
2274#line 2275 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2275 break;
2276 case 646: /* FTContent */
2277/* Line 453 of lalr1.cc */
2278#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2279 { release_hack( ((*yyvaluep).node) ); };
2280/* Line 453 of lalr1.cc */
2281#line 2282 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2282 break;
2283 case 647: /* FTTimes */
2284/* Line 453 of lalr1.cc */
2285#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2286 { release_hack( ((*yyvaluep).node) ); };
2287/* Line 453 of lalr1.cc */
2288#line 2289 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2289 break;
2290 case 648: /* FTRange */
2291/* Line 453 of lalr1.cc */
2292#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2293 { release_hack( ((*yyvaluep).node) ); };
2294/* Line 453 of lalr1.cc */
2295#line 2296 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2296 break;
2297 case 649: /* FTScope */
2298/* Line 453 of lalr1.cc */
2299#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2300 { release_hack( ((*yyvaluep).node) ); };
2301/* Line 453 of lalr1.cc */
2302#line 2303 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2303 break;
2304 case 650: /* FTBigUnit */
2305/* Line 453 of lalr1.cc */
2306#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2307 { release_hack( ((*yyvaluep).node) ); };
2308/* Line 453 of lalr1.cc */
2309#line 2310 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2310 break;
2311 case 651: /* FTIgnoreOption */
2312/* Line 453 of lalr1.cc */
2313#line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2314 { release_hack( ((*yyvaluep).node) ); };
2315/* Line 453 of lalr1.cc */
2316#line 2317 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2317 break;
2318 case 652: /* JSONArrayConstructor */
2319/* Line 453 of lalr1.cc */
2320#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2321 { release_hack( ((*yyvaluep).expr) ); };
2322/* Line 453 of lalr1.cc */
2323#line 2324 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2324 break;
2325 case 653: /* JSONSimpleObjectUnion */
2326/* Line 453 of lalr1.cc */
2327#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2328 { release_hack( ((*yyvaluep).expr) ); };
2329/* Line 453 of lalr1.cc */
2330#line 2331 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2331 break;
2332 case 654: /* JSONAccumulatorObjectUnion */
2333/* Line 453 of lalr1.cc */
2334#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2335 { release_hack( ((*yyvaluep).expr) ); };
2336/* Line 453 of lalr1.cc */
2337#line 2338 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2338 break;
2339 case 655: /* JSONObjectConstructor */
2340/* Line 453 of lalr1.cc */
2341#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2342 { release_hack( ((*yyvaluep).expr) ); };
2343/* Line 453 of lalr1.cc */
2344#line 2345 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2345 break;
2346 case 656: /* JSONPairList */
2347/* Line 453 of lalr1.cc */
2348#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2349 { release_hack( ((*yyvaluep).node) ); };
2350/* Line 453 of lalr1.cc */
2351#line 2352 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2352 break;
2353 case 657: /* JSONInsertExpr */
2354/* Line 453 of lalr1.cc */
2355#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2356 { release_hack( ((*yyvaluep).expr) ); };
2357/* Line 453 of lalr1.cc */
2358#line 2359 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2359 break;
2360 case 658: /* JSONAppendExpr */
2361/* Line 453 of lalr1.cc */
2362#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2363 { release_hack( ((*yyvaluep).expr) ); };
2364/* Line 453 of lalr1.cc */
2365#line 2366 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2366 break;
2367 case 659: /* JSONDeleteExpr */
2368/* Line 453 of lalr1.cc */
2369#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2370 { release_hack( ((*yyvaluep).expr) ); };
2371/* Line 453 of lalr1.cc */
2372#line 2373 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2373 break;
2374 case 660: /* JSONRenameExpr */
2375/* Line 453 of lalr1.cc */
2376#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2377 { release_hack( ((*yyvaluep).expr) ); };
2378/* Line 453 of lalr1.cc */
2379#line 2380 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2380 break;
2381 case 661: /* JSONReplaceExpr */
2382/* Line 453 of lalr1.cc */
2383#line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2384 { release_hack( ((*yyvaluep).expr) ); };
2385/* Line 453 of lalr1.cc */
2386#line 2387 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2387 break;
2388 case 664: /* QNAME */
2389/* Line 453 of lalr1.cc */
2390#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2391 { release_hack( ((*yyvaluep).expr) ); };
2392/* Line 453 of lalr1.cc */
2393#line 2394 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2394 break;
2395 case 665: /* FUNCTION_NAME */
2396/* Line 453 of lalr1.cc */
2397#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2398 { release_hack( ((*yyvaluep).expr) ); };
2399/* Line 453 of lalr1.cc */
2400#line 2401 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
2401 break;
2402 case 666: /* EQNAME */
2403/* Line 453 of lalr1.cc */
2404#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
2405 { release_hack( ((*yyvaluep).expr) ); };
2406/* Line 453 of lalr1.cc */
2407#line 2408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches