Merge lp:~nbrinza/zorba/hof into lp:zorba

Proposed by Nicolae Brinza
Status: Superseded
Proposed branch: lp:~nbrinza/zorba/hof
Merge into: lp:zorba
Diff against target: 39316 lines (+14445/-12655)
167 files modified
include/zorba/pregenerated/diagnostic_list.h (+4/-0)
modules/w3c/pregenerated/xqt-errors.xq (+16/-0)
src/api/serialization/serializer.cpp (+5/-0)
src/compiler/api/compiler_api.cpp (+1/-1)
src/compiler/codegen/plan_visitor.cpp (+129/-28)
src/compiler/expression/abstract_expr_visitor.h (+7/-6)
src/compiler/expression/expr_base.cpp (+7/-0)
src/compiler/expression/expr_base.h (+3/-0)
src/compiler/expression/expr_classes.h (+1/-0)
src/compiler/expression/expr_clone.cpp (+37/-15)
src/compiler/expression/expr_iter.cpp (+23/-6)
src/compiler/expression/expr_manager.cpp (+24/-8)
src/compiler/expression/expr_manager.h (+16/-5)
src/compiler/expression/expr_put.cpp (+59/-11)
src/compiler/expression/expr_type.cpp (+7/-0)
src/compiler/expression/expr_visitor.h (+6/-5)
src/compiler/expression/function_item_expr.cpp (+66/-42)
src/compiler/expression/function_item_expr.h (+79/-30)
src/compiler/expression/var_expr.cpp (+2/-1)
src/compiler/expression/var_expr.h (+2/-0)
src/compiler/parser/xquery_parser.cpp (+8635/-9944)
src/compiler/parser/xquery_parser.hpp (+40/-97)
src/compiler/parser/xquery_parser.y (+32/-8)
src/compiler/parser/xquery_scanner.cpp (+365/-379)
src/compiler/parsetree/parsenode_print_xml_visitor.cpp (+1/-0)
src/compiler/parsetree/parsenode_print_xqdoc_visitor.cpp (+15/-14)
src/compiler/parsetree/parsenode_print_xquery_visitor.cpp (+16/-6)
src/compiler/parsetree/parsenode_visitor.h (+1/-0)
src/compiler/parsetree/parsenodes.cpp (+19/-2)
src/compiler/parsetree/parsenodes.h (+32/-6)
src/compiler/rewriter/framework/rewriter_context.cpp (+1/-2)
src/compiler/rewriter/rules/fold_rules.cpp (+29/-20)
src/compiler/rewriter/rules/nodeid_rules.cpp (+11/-7)
src/compiler/rewriter/tools/dataflow_annotations.cpp (+8/-0)
src/compiler/rewriter/tools/udf_graph.cpp (+7/-3)
src/compiler/translator/translator.cpp (+1454/-837)
src/compiler/translator/translator.h (+15/-0)
src/context/dynamic_context.cpp (+31/-0)
src/context/dynamic_context.h (+8/-0)
src/context/root_static_context.cpp (+1/-0)
src/context/static_context.cpp (+56/-0)
src/context/static_context.h (+10/-1)
src/diagnostics/diagnostic_en.xml (+14/-0)
src/diagnostics/pregenerated/diagnostic_list.cpp (+6/-0)
src/diagnostics/pregenerated/dict_en.cpp (+2/-0)
src/functions/CMakeLists.txt (+1/-0)
src/functions/func_hof_impl.cpp (+218/-0)
src/functions/func_hof_impl.h (+38/-0)
src/functions/func_sequences_impl.cpp (+2/-0)
src/functions/function.h (+4/-4)
src/functions/function_consts.h (+3/-0)
src/functions/library.cpp (+2/-0)
src/functions/pregenerated/func_function_item_iter.cpp (+27/-29)
src/functions/pregenerated/func_function_item_iter.h (+50/-5)
src/functions/pregenerated/func_numerics.cpp (+2/-2)
src/functions/pregenerated/function_enum.h (+4/-2)
src/functions/signature.cpp (+122/-87)
src/functions/signature.h (+10/-0)
src/functions/udf.cpp (+19/-1)
src/functions/udf.h (+2/-2)
src/runtime/accessors/accessors_impl.cpp (+3/-2)
src/runtime/api/plan_iterator_wrapper.cpp (+133/-7)
src/runtime/api/plan_iterator_wrapper.h (+66/-7)
src/runtime/api/plan_wrapper.cpp (+33/-12)
src/runtime/api/plan_wrapper.h (+3/-0)
src/runtime/base/plan_iterator.cpp (+61/-2)
src/runtime/base/plan_iterator.h (+32/-24)
src/runtime/core/constructors.cpp (+14/-2)
src/runtime/core/flwor_iterator.cpp (+75/-58)
src/runtime/core/flwor_iterator.h (+50/-50)
src/runtime/core/fncall_iterator.cpp (+47/-20)
src/runtime/core/fncall_iterator.h (+24/-17)
src/runtime/core/item_iterator.cpp (+371/-16)
src/runtime/core/item_iterator.h (+70/-19)
src/runtime/core/sequencetypes.cpp (+1/-1)
src/runtime/core/var_iterators.cpp (+34/-2)
src/runtime/core/var_iterators.h (+28/-28)
src/runtime/function_item/dynamic_fncall_iterator.cpp (+147/-57)
src/runtime/function_item/dynamic_fncall_iterator.h (+57/-7)
src/runtime/function_item/function_item.cpp (+190/-84)
src/runtime/function_item/function_item.h (+86/-29)
src/runtime/function_item/function_item_iter_impl.cpp (+371/-25)
src/runtime/function_item/pregenerated/function_item_iter.cpp (+89/-26)
src/runtime/function_item/pregenerated/function_item_iter.h (+124/-15)
src/runtime/misc/materialize.cpp (+8/-0)
src/runtime/misc/materialize.h (+2/-0)
src/runtime/numerics/numerics_impl.cpp (+6/-3)
src/runtime/pregenerated/iterator_enum.h (+3/-1)
src/runtime/sequences/sequences_impl.cpp (+15/-15)
src/runtime/spec/function_item/function_item_iter.xml (+100/-30)
src/runtime/spec/numerics/numerics.xml (+2/-2)
src/runtime/spec/printer_visitor_cpp.xq (+4/-0)
src/runtime/strings/strings_impl.cpp (+20/-9)
src/runtime/util/item_iterator.cpp (+9/-0)
src/runtime/util/item_iterator.h (+3/-0)
src/runtime/visitors/planiter_visitor_impl_code.h (+3/-0)
src/runtime/visitors/planiter_visitor_impl_include.h (+2/-0)
src/runtime/visitors/pregenerated/planiter_visitor.h (+13/-3)
src/runtime/visitors/pregenerated/printer_visitor.cpp (+44/-12)
src/runtime/visitors/pregenerated/printer_visitor.h (+8/-2)
src/runtime/visitors/printer_visitor_impl.cpp (+40/-9)
src/runtime/visitors/printer_visitor_impl.h (+4/-0)
src/store/api/item.h (+45/-31)
src/store/api/iterator.h (+4/-0)
src/store/api/temp_seq.h (+5/-0)
src/store/naive/atomic_items.cpp (+7/-0)
src/store/naive/atomic_items.h (+20/-6)
src/store/naive/item.cpp (+6/-0)
src/store/naive/simple_lazy_temp_seq.cpp (+23/-1)
src/store/naive/simple_lazy_temp_seq.h (+4/-0)
src/store/naive/simple_temp_seq.cpp (+48/-0)
src/store/naive/simple_temp_seq.h (+11/-1)
src/types/typeimpl.cpp (+5/-3)
src/types/typeimpl.h (+1/-1)
src/types/typemanagerimpl.cpp (+14/-3)
src/types/typeops.cpp (+9/-2)
src/zorbaserialization/archiver_consts.h (+20/-15)
src/zorbaserialization/class_serializer.h (+21/-14)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-001.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-002.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-003.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-004.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-005.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-006.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-010.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-011.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-012.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-013.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-014.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-015.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-023.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-025.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-026.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-032.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-037.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-038.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-039.xml.res (+0/-1)
test/rbkt/ExpQueryResults/zorba/HigherOrder/hof-904.xml.res (+0/-1)
test/rbkt/Queries/zorba/HigherOrder/hof-001.xq (+0/-13)
test/rbkt/Queries/zorba/HigherOrder/hof-002.xq (+0/-17)
test/rbkt/Queries/zorba/HigherOrder/hof-003.lib (+0/-10)
test/rbkt/Queries/zorba/HigherOrder/hof-003.xq (+0/-11)
test/rbkt/Queries/zorba/HigherOrder/hof-004.xq (+0/-9)
test/rbkt/Queries/zorba/HigherOrder/hof-023.xq (+0/-11)
test/rbkt/Queries/zorba/HigherOrder/hof-025.xq (+0/-11)
test/rbkt/Queries/zorba/HigherOrder/hof-026.xq (+0/-17)
test/rbkt/Queries/zorba/HigherOrder/hof-032.xq (+0/-10)
test/rbkt/Queries/zorba/HigherOrder/hof-037.xq (+0/-17)
test/rbkt/Queries/zorba/HigherOrder/hof-038.xq (+0/-18)
test/rbkt/Queries/zorba/HigherOrder/hof-039.xq (+0/-22)
test/rbkt/Queries/zorba/HigherOrder/hof-101.xq.failing (+0/-7)
test/rbkt/Queries/zorba/HigherOrder/hof-901.spec (+0/-1)
test/rbkt/Queries/zorba/HigherOrder/hof-901.xq (+0/-13)
test/rbkt/Queries/zorba/HigherOrder/hof-902.spec (+0/-1)
test/rbkt/Queries/zorba/HigherOrder/hof-902.xq (+0/-13)
test/rbkt/Queries/zorba/HigherOrder/hof-904.xq (+0/-13)
test/rbkt/Queries/zorba/HigherOrder/hof-905.spec (+0/-1)
test/rbkt/Queries/zorba/HigherOrder/hof-905.xq (+0/-13)
test/rbkt/Queries/zorba/HigherOrder/hof-906.spec (+0/-1)
test/rbkt/Queries/zorba/HigherOrder/hof-906.xq (+0/-13)
test/rbkt/Queries/zorba/HigherOrder/hof-907.spec (+0/-1)
test/rbkt/Queries/zorba/HigherOrder/hof-907.xq (+0/-13)
test/rbkt/Queries/zorba/HigherOrder/hof-908.spec (+0/-1)
test/rbkt/Queries/zorba/HigherOrder/hof-908.xq (+0/-13)
test/rbkt/Queries/zorba/HigherOrder/hof-909.spec (+0/-1)
test/rbkt/Queries/zorba/HigherOrder/hof-909.xq (+0/-13)
test/rbkt/Queries/zorba/HigherOrder/userdefined.xsd (+0/-62)
To merge this branch: bzr merge lp:~nbrinza/zorba/hof
Reviewer Review Type Date Requested Status
Nicolae Brinza Pending
Review via email: mp+140721@code.launchpad.net

This proposal has been superseded by a proposal from 2012-12-23.

Commit message

Implementation of higher order functions.

Description of the change

Implementation of higher order functions.

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

Validation queue starting for merge proposal.
Log at: http://zorbatest.lambda.nu:8080/remotequeue/hof-2012-12-19T16-30-52.813Z/log.html

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

The attempt to merge lp:~nbrinza/zorba/hof into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:275 (message):
  Validation queue job hof-2012-12-19T16-30-52.813Z is finished. The final
  status was:

  29 tests did not succeed - changes not commited.

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

lp:~nbrinza/zorba/hof updated
10666. By Nicolae Brinza

Higher order functions work in progress (cp22)

10667. By Nicolae Brinza

Merged with Zorba trunk

10668. By Nicolae Brinza

Higher order functions work in progress (cp23)

10669. By Nicolae Brinza

Higher order functions work in progress (cp24)

10670. By Nicolae Brinza

Merged with Zorba trunk

10671. By Nicolae Brinza

Merged with Zorba trunk

10672. By Nicolae Brinza

Higher order functions work in progress (cp24 -- fixed a memory leak)

10673. By Nicolae Brinza

Merged with Zorba trunk

10674. By Nicolae Brinza

Higher order functions work in progress (cp26 -- fixed more tests)

10675. By Nicolae Brinza

Merged with Zorba trunk

10676. By Nicolae Brinza

Higher order functions work in progress (cp27)

10677. By Nicolae Brinza

Merged with Zorba trunk

10678. By Nicolae Brinza

Merged with Zorba trunk

10679. By Nicolae Brinza

Updated the iterator plans

10680. By Nicolae Brinza

Fixed a hof regression

10681. By Nicolae Brinza

Fixed a hof regression

10682. By Nicolae Brinza

Fixed hof regressions

10683. By Nicolae Brinza

Merged with Zorba trunk

10684. By Nicolae Brinza

Fixed hof regressions

10685. By Nicolae Brinza

Merged with Zorba trunk

10686. By Nicolae Brinza

Removed the test 'xquery_3_0' from expected failures as it now passes.

10687. By Nicolae Brinza

Fixed more hof regressions

10688. By Nicolae Brinza

Merged with Zorba trunk

10689. By Nicolae Brinza

Fixed more hof regressions -- fixed plan serialization working with hofs.

10690. By Nicolae Brinza

Merged with Zorba trunk

10691. By Nicolae Brinza

Added expected failures for tests with incorrect results in XQTTS

10692. By Nicolae Brinza

Added the expected failures to the w3c_known_failures.txt as well so that it gets picked up by the testdriver_mt

10693. By Nicolae Brinza

Fixed FOTS regressions

10694. By Nicolae Brinza

Attempt to remove an expected FOTS failure as the test is now passing

10695. By Nicolae Brinza

Adjusted more expected FOTS failures

10696. By Nicolae Brinza

math:pi() FOTS regression now passing.

10697. By Nicolae Brinza

HoF work in progress

10698. By Nicolae Brinza

Merged with Zorba trunk

10699. By Nicolae Brinza

Cleanup of HoF work

10700. By Nicolae Brinza

Updated iterator tree for the gflwor_04.iter test

10701. By Nicolae Brinza

HoF cleanup

10702. By Nicolae Brinza

Fixed issues reported by Markos.

10703. By Nicolae Brinza

Removed HoFs from the features system. They are now always supported.

10704. By Nicolae Brinza

Removed redundant arity checks

10705. By Nicolae Brinza

Enabled FOTS HoF tests

10706. By Nicolae Brinza

Fixed more fn:function-lookup() tests.

10707. By Nicolae Brinza

Fixed a small error in the code

10708. By Nicolae Brinza

Better static typing for dynamic_function_invocation_expr

10709. By Nicolae Brinza

The testdriver no longer attempts to set enable the HoF feature

10710. By Nicolae Brinza

dynamic_function_invocation_expr's flwor translation now uses allowing empty, so that the flow reaches the iterator and the proper error is thrown

10711. By Nicolae Brinza

Merged with Zorba trunk

10712. By Nicolae Brinza

Removed more obsolete HoF feature enabling code.

10713. By Nicolae Brinza

HoF work in progress

10714. By Nicolae Brinza

Pulled some changes from the hof-merge branch

10715. By Nicolae Brinza

Fixed fn:function-name() for coerced functions.

10716. By Nicolae Brinza

Pulled changes from the hof-merge branch

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'include/zorba/pregenerated/diagnostic_list.h'
--- include/zorba/pregenerated/diagnostic_list.h 2012-12-14 21:50:53 +0000
+++ include/zorba/pregenerated/diagnostic_list.h 2012-12-23 10:41:23 +0000
@@ -62,6 +62,8 @@
6262
63extern ZORBA_DLL_PUBLIC XQueryErrorCode XQTY0086;63extern ZORBA_DLL_PUBLIC XQueryErrorCode XQTY0086;
6464
65extern ZORBA_DLL_PUBLIC XQueryErrorCode XQTY0105;
66
65extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0009;67extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0009;
6668
67extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0012;69extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0012;
@@ -294,6 +296,8 @@
294296
295extern ZORBA_DLL_PUBLIC XQueryErrorCode FOUT1190;297extern ZORBA_DLL_PUBLIC XQueryErrorCode FOUT1190;
296298
299extern ZORBA_DLL_PUBLIC XQueryErrorCode FOFL0001;
300
297extern ZORBA_DLL_PUBLIC XQueryErrorCode XUST0001;301extern ZORBA_DLL_PUBLIC XQueryErrorCode XUST0001;
298302
299extern ZORBA_DLL_PUBLIC XQueryErrorCode XUST0002;303extern ZORBA_DLL_PUBLIC XQueryErrorCode XUST0002;
300304
=== modified file 'modules/w3c/pregenerated/xqt-errors.xq'
--- modules/w3c/pregenerated/xqt-errors.xq 2012-12-03 18:29:05 +0000
+++ modules/w3c/pregenerated/xqt-errors.xq 2012-12-23 10:41:23 +0000
@@ -194,6 +194,14 @@
194194
195(:~195(:~
196 :196 :
197 : It is a type error if the content sequence in an element constructor contains a function item.
198 :
199 : @see http://www.w3.org/2005/xqt-errors
200:)
201declare variable $err:XQTY0105 as xs:QName := fn:QName($err:NS, "err:XQTY0105");
202
203(:~
204 :
197 : An implementation that does not support the Schema Import Feature must205 : An implementation that does not support the Schema Import Feature must
198 : raise a static error if a Prolog contains a schema import.206 : raise a static error if a Prolog contains a schema import.
199 : 207 :
@@ -1274,6 +1282,14 @@
12741282
1275(:~1283(:~
1276 :1284 :
1285 : This error is raised if the fn:function-lookup returns a context-dependent function and the context-dependent function is then called.
1286 :
1287 : @see http://www.w3.org/2005/xqt-errors
1288:)
1289declare variable $err:FOFL0001 as xs:QName := fn:QName($err:NS, "err:FOFL0001");
1290
1291(:~
1292 :
1277 : It is a static error if an updating expression is used in any position1293 : It is a static error if an updating expression is used in any position
1278 : other than one of the following:1294 : other than one of the following:
1279 : - The topmost expression in the body of a query.1295 : - The topmost expression in the body of a query.
12801296
=== modified file 'src/api/serialization/serializer.cpp'
--- src/api/serialization/serializer.cpp 2012-10-15 19:25:46 +0000
+++ src/api/serialization/serializer.cpp 2012-12-23 10:41:23 +0000
@@ -455,6 +455,11 @@
455455
456 thePreviousItemKind = PREVIOUS_ITEM_WAS_TEXT;456 thePreviousItemKind = PREVIOUS_ITEM_WAS_TEXT;
457 }457 }
458 else if (item->isFunction()) // TODO: what about function items serialization?
459 {
460 // throw XQUERY_EXCEPTION(err::SENR0001, ERROR_PARAMS(item->show(), "function item node"));
461 tr << item->show();
462 }
458 else if (!theEmitAttributes 463 else if (!theEmitAttributes
459 && item->getNodeKind() == store::StoreConsts::attributeNode)464 && item->getNodeKind() == store::StoreConsts::attributeNode)
460 {465 {
461466
=== modified file 'src/compiler/api/compiler_api.cpp'
--- src/compiler/api/compiler_api.cpp 2012-12-14 07:27:04 +0000
+++ src/compiler/api/compiler_api.cpp 2012-12-23 10:41:23 +0000
@@ -355,7 +355,7 @@
355 // are actually non-deterministic and mark them as such. This has to be done355 // are actually non-deterministic and mark them as such. This has to be done
356 // before optimization.356 // before optimization.
357 udfGraph.inferDeterminism();357 udfGraph.inferDeterminism();
358358
359 if (theCompilerCB->theConfig.opt_level <= CompilerCB::config::O0)359 if (theCompilerCB->theConfig.opt_level <= CompilerCB::config::O0)
360 {360 {
361 theCompilerCB->setPhase(CompilerCB::NONE);361 theCompilerCB->setPhase(CompilerCB::NONE);
362362
=== modified file 'src/compiler/codegen/plan_visitor.cpp'
--- src/compiler/codegen/plan_visitor.cpp 2012-12-18 15:09:02 +0000
+++ src/compiler/codegen/plan_visitor.cpp 2012-12-23 10:41:23 +0000
@@ -465,29 +465,62 @@
465void end_visit(function_item_expr& v)465void end_visit(function_item_expr& v)
466{466{
467 CODEGEN_TRACE_OUT("");467 CODEGEN_TRACE_OUT("");
468 store::Item_t lQName = v.get_qname();468
469 store::Item_t lFItem;469 DynamicFunctionInfo* fnInfo = v.get_dynamic_fn_info();
470470 fnInfo->theCCB = theCCB;
471 bool isInline = (lQName == 0);471 fnInfo->theSctx = sctx;
472472 fnInfo->theLoc = qloc;
473 if (!isInline)473 fnInfo->theFunction = v.get_function();
474 {474 fnInfo->theQName = v.get_qname();
475 // literal function item475 fnInfo->theArity = v.get_arity();
476 lFItem = new FunctionItem(theCCB, sctx, &v);476
477 }477 if (v.is_inline())
478 else
479 {478 {
480 // inline function479 // inline function
481 std::vector<PlanIter_t> lVariableValues;480 size_t lSize = v.get_scoped_vars_values().size();
482 size_t lSize = v.get_vars().size();481
483 for (size_t i = 0; i < lSize; ++i)482 for (size_t i = 0; i < lSize; ++i)
484 {483 {
485 lVariableValues.push_back(pop_itstack());484 // if (!v.get_is_global_var()[i])
485 {
486 PlanIter_t varIter = NULL;
487 PlanIter_t enclosedIter = NULL;
488
489 if (!v.get_is_global_var()[i])
490 {
491 varIter = pop_itstack();
492 enclosedIter = varIter;
493 fnInfo->theScopedVarsIterators.push_back(varIter);
494 }
495
496 /*
497 store::Item* var_qname = NULL;
498 if (dynamic_cast<LetVarIterator*>(varIter.getp()) != NULL)
499 var_qname = dynamic_cast<LetVarIterator*>(varIter.getp())->getVarName();
500 else if (dynamic_cast<ForVarIterator*>(varIter.getp()) != NULL)
501 var_qname = dynamic_cast<ForVarIterator*>(varIter.getp())->getVarName();
502 else
503 var_qname = v.get_scoped_vars_names()[i].getp();
504
505 std::cerr << "--> PlanVisitor function_item_expr: var name: " << v.get_scoped_vars_names()[i]->show()
506 << " global: " << v.get_is_global_var()[i]
507 << " with iter: "
508 << (enclosedIter.getp()?enclosedIter->toString() : "NULL");
509 if (dynamic_cast<LetVarIterator*>(enclosedIter.getp()) != NULL)
510 std::cerr << " var name: " << dynamic_cast<LetVarIterator*>(enclosedIter.getp())->getVarName()->show();
511 else if (dynamic_cast<ForVarIterator*>(enclosedIter.getp()) != NULL)
512 std::cerr << " var name: " << dynamic_cast<ForVarIterator*>(enclosedIter.getp())->getVarName()->show();
513 else
514 std::cerr << " var name (from the expr, not the iterator): " << (var_qname? var_qname->show() : "NULL");
515 std::cerr << std::endl;
516 */
517 }
486 }518 }
487 lFItem = new FunctionItem(theCCB, sctx, &v, lVariableValues);519
520 std::reverse(fnInfo->theScopedVarsIterators.begin(), fnInfo->theScopedVarsIterators.end());
488 }521 }
489522
490 push_itstack(new SingletonIterator (sctx, qloc, lFItem));523 push_itstack(new DynamicFunctionIterator(sctx, qloc, fnInfo));
491}524}
492525
493526
@@ -506,18 +539,49 @@
506539
507 ulong numArgs = (ulong)v.get_args().size() + 1;540 ulong numArgs = (ulong)v.get_args().size() + 1;
508541
509 std::vector<PlanIter_t> argIters(numArgs);542 std::vector<PlanIter_t> argIters;
510543
511 for (size_t i = 1; i < numArgs; ++i)544 bool isPartialApply = false;
512 {545
513 argIters[i] = pop_itstack();546 // the arguments are reversed on the stack
514 }547 for (csize i=0; i<v.get_dot_vars().size(); i++)
515548 {
516 argIters[0] = pop_itstack();549 PlanIter_t iter = pop_itstack();
517550 argIters.push_back(iter);
518 push_itstack(new DynamicFnCallIterator(sctx, qloc, argIters));551 // std::cerr << "--> plan_visitor dot var iterator: " << iter->toString() << std::endl; // TODO
519}552 }
520553
554 for (size_t i = 0; i < numArgs-1; ++i)
555 {
556 if (v.get_args()[i]->get_expr_kind() == argument_placeholder_expr_kind)
557 isPartialApply = true;
558
559 argIters.push_back(pop_itstack());
560 }
561
562 argIters.push_back(pop_itstack());
563
564 std::reverse(argIters.begin(), argIters.end());
565
566 push_itstack(new DynamicFnCallIterator(sctx, qloc, argIters, v.get_dot_vars().size(), isPartialApply, v.theCoercionTargetType));
567}
568
569
570/***************************************************************************//**
571
572********************************************************************************/
573bool begin_visit(argument_placeholder_expr& v)
574{
575 CODEGEN_TRACE_IN("");
576 return true;
577}
578
579void end_visit(argument_placeholder_expr& v)
580{
581 CODEGEN_TRACE_OUT("");
582 PlanIter_t it = new ArgumentPlaceholderIterator(sctx, qloc);
583 push_itstack(it);
584}
521585
522/***************************************************************************//**586/***************************************************************************//**
523587
@@ -739,6 +803,8 @@
739803
740 bool isForVar = false;804 bool isForVar = false;
741805
806 // std::cerr << "--> general_var_codegen() on var: " << var.toString();
807
742 switch (var.get_kind())808 switch (var.get_kind())
743 {809 {
744 case var_expr::for_var:810 case var_expr::for_var:
@@ -829,6 +895,7 @@
829895
830 case var_expr::arg_var:896 case var_expr::arg_var:
831 {897 {
898 ZORBA_ASSERT(arg_var_iter_map != NULL);
832 PlanIter_t iter = base_var_codegen(var, *arg_var_iter_map);899 PlanIter_t iter = base_var_codegen(var, *arg_var_iter_map);
833 push_itstack(iter);900 push_itstack(iter);
834 break;901 break;
@@ -849,6 +916,7 @@
849 }916 }
850917
851 case var_expr::prolog_var:918 case var_expr::prolog_var:
919 case var_expr::hof_var:
852 {920 {
853 push_itstack(new CtxVarIterator(sctx,921 push_itstack(new CtxVarIterator(sctx,
854 qloc,922 qloc,
@@ -3553,6 +3621,11 @@
3553#ifndef NDEBUG3621#ifndef NDEBUG
3554 if (!itstack.empty())3622 if (!itstack.empty())
3555 {3623 {
3624 std::cout << "Plan_visitor partial iterator tree:\n"; // TODO: remove this debug output
3625 XMLIterPrinter vp(std::cout);
3626 print_iter_plan(vp, res);
3627 std::cout<< std::endl;
3628
3556 std::cout << "\nPlan_visitor stack still contains "3629 std::cout << "\nPlan_visitor stack still contains "
3557 << itstack.size() << " entries: " << std::endl;3630 << itstack.size() << " entries: " << std::endl;
3558 while (!itstack.empty())3631 while (!itstack.empty())
@@ -3665,9 +3738,37 @@
3665 hash64map<std::vector<LetVarIter_t> *>* arg_var_map)3738 hash64map<std::vector<LetVarIter_t> *>* arg_var_map)
3666{3739{
3667 plan_visitor c(ccb, nextDynamicVarId, arg_var_map);3740 plan_visitor c(ccb, nextDynamicVarId, arg_var_map);
3741
3742 /*
3743 std::cerr << "------------------- codegen: -------------------\n";
3744 if (dynamic_cast<function_item_expr*>(root) != NULL)
3745 std::cerr << "--> function_item_expr " << root->get_loc() << std::endl;
3746
3747 std::cerr << std::endl;
3748 std::cerr << root->toString() << std::endl;
3749 std::cerr << "------------------------------------------------\n";
3750 */
3751
3668 root->accept(c);3752 root->accept(c);
3669 PlanIter_t result = c.result();3753 PlanIter_t result = c.result();
36703754
3755 /*
3756 std::cerr << "--> arg_var_map: " << arg_var_map << " size: " << (arg_var_map==NULL?0 : arg_var_map->size()) << " iterators: ";
3757 if (arg_var_map != NULL)
3758 {
3759 csize i = 0;
3760 for (checked_vector<hash64map<std::vector<LetVarIter_t> *>::entry>::const_iterator it = arg_var_map->begin(); it != arg_var_map->end(); ++it, ++i)
3761 {
3762 var_expr* var = (var_expr*)it->key;
3763 std::cerr << std::endl << "--> [" << i << "] " << var->toString() << "--> [" << i << "] referenced by:";
3764 for (csize j=0; j < it->val->size(); j++)
3765 std::cerr << " " << (*it->val)[j]->getId() << " = LetVarIterator";
3766 }
3767 }
3768 std::cerr << std::endl << "------------------------------------------------\n";
3769 */
3770
3771
3671 if (result != NULL &&3772 if (result != NULL &&
3672 descr != NULL &&3773 descr != NULL &&
3673 Properties::instance()->printIteratorTree())3774 Properties::instance()->printIteratorTree())
36743775
=== modified file 'src/compiler/expression/abstract_expr_visitor.h'
--- src/compiler/expression/abstract_expr_visitor.h 2012-09-19 21:16:15 +0000
+++ src/compiler/expression/abstract_expr_visitor.h 2012-12-23 10:41:23 +0000
@@ -1,12 +1,12 @@
1/*1/*
2 * Copyright 2006-2008 The FLWOR Foundation.2 * Copyright 2006-2008 The FLWOR Foundation.
3 * 3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at6 * You may obtain a copy of the License at
7 * 7 *
8 * http://www.apache.org/licenses/LICENSE-2.08 * http://www.apache.org/licenses/LICENSE-2.0
9 * 9 *
10 * Unless required by applicable law or agreed to in writing, software10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,18 +22,18 @@
22#include "compiler/expression/expr_visitor.h"22#include "compiler/expression/expr_visitor.h"
2323
24/*______________________________________________________________________24/*______________________________________________________________________
25| 25|
26| Design note: Visitor pattern. See, for example:26| Design note: Visitor pattern. See, for example:
27| "Modern C++ Design" by Andrei Alexandrescu,27| "Modern C++ Design" by Andrei Alexandrescu,
28| Addison Wesley (2001), Chapter 10.28| Addison Wesley (2001), Chapter 10.
29|_______________________________________________________________________*/29|_______________________________________________________________________*/
3030
31namespace zorba 31namespace zorba
32{32{
3333
34class abstract_expr_visitor : public expr_visitor34class abstract_expr_visitor : public expr_visitor
35{35{
36public: 36public:
37 virtual ~abstract_expr_visitor() {}37 virtual ~abstract_expr_visitor() {}
3838
39public:39public:
@@ -80,6 +80,7 @@
80 EXPR_VISITOR_METHODS(trycatch_expr);80 EXPR_VISITOR_METHODS(trycatch_expr);
81 EXPR_VISITOR_METHODS(function_item_expr);81 EXPR_VISITOR_METHODS(function_item_expr);
82 EXPR_VISITOR_METHODS(dynamic_function_invocation_expr);82 EXPR_VISITOR_METHODS(dynamic_function_invocation_expr);
83 EXPR_VISITOR_METHODS(argument_placeholder_epxr);
8384
84 EXPR_VISITOR_METHODS (delete_expr);85 EXPR_VISITOR_METHODS (delete_expr);
85 EXPR_VISITOR_METHODS (insert_expr);86 EXPR_VISITOR_METHODS (insert_expr);
8687
=== modified file 'src/compiler/expression/expr_base.cpp'
--- src/compiler/expression/expr_base.cpp 2012-12-06 22:49:35 +0000
+++ src/compiler/expression/expr_base.cpp 2012-12-23 10:41:23 +0000
@@ -288,6 +288,13 @@
288 return oss.str();288 return oss.str();
289}289}
290290
291/*******************************************************************************
292 to mirror the Item's class show() method
293********************************************************************************/
294std::string expr::show() const
295{
296 return toString();
297}
291298
292/*******************************************************************************299/*******************************************************************************
293300
294301
=== modified file 'src/compiler/expression/expr_base.h'
--- src/compiler/expression/expr_base.h 2012-12-06 22:49:35 +0000
+++ src/compiler/expression/expr_base.h 2012-12-23 10:41:23 +0000
@@ -70,6 +70,7 @@
7070
71 fo_expr_kind,71 fo_expr_kind,
72 dynamic_function_invocation_expr_kind,72 dynamic_function_invocation_expr_kind,
73 argument_placeholder_expr_kind,
73 function_item_expr_kind,74 function_item_expr_kind,
7475
75 castable_expr_kind,76 castable_expr_kind,
@@ -269,6 +270,8 @@
269270
270 std::string toString() const;271 std::string toString() const;
271272
273 std::string show() const; // to mirror the Item's class show() method
274
272public:275public:
273 //276 //
274 void setVisitId(uint8_t id) { theVisitId = id; }277 void setVisitId(uint8_t id) { theVisitId = id; }
275278
=== modified file 'src/compiler/expression/expr_classes.h'
--- src/compiler/expression/expr_classes.h 2012-09-19 21:16:15 +0000
+++ src/compiler/expression/expr_classes.h 2012-12-23 10:41:23 +0000
@@ -50,6 +50,7 @@
50 class trycatch_expr;50 class trycatch_expr;
51 class function_item_expr;51 class function_item_expr;
52 class dynamic_function_invocation_expr;52 class dynamic_function_invocation_expr;
53 class argument_placeholder_expr;
5354
54 class insert_expr;55 class insert_expr;
55 class delete_expr;56 class delete_expr;
5657
=== modified file 'src/compiler/expression/expr_clone.cpp'
--- src/compiler/expression/expr_clone.cpp 2012-12-11 00:22:26 +0000
+++ src/compiler/expression/expr_clone.cpp 2012-12-23 10:41:23 +0000
@@ -31,6 +31,7 @@
31#include "compiler/api/compilercb.h"31#include "compiler/api/compilercb.h"
3232
33#include "functions/function.h"33#include "functions/function.h"
34#include "functions/udf.h"
3435
35#include "diagnostics/xquery_diagnostics.h"36#include "diagnostics/xquery_diagnostics.h"
36#include "diagnostics/util_macros.h"37#include "diagnostics/util_macros.h"
@@ -147,7 +148,7 @@
147148
148 std::vector<expr*> names;149 std::vector<expr*> names;
149 std::vector<expr*> values;150 std::vector<expr*> values;
150 151
151 names.reserve(e->theNames.size());152 names.reserve(e->theNames.size());
152 values.reserve(e->theValues.size());153 values.reserve(e->theValues.size());
153154
@@ -333,7 +334,7 @@
333 }334 }
334 case dynamic_function_invocation_expr_kind:335 case dynamic_function_invocation_expr_kind:
335 {336 {
336 const dynamic_function_invocation_expr* e = 337 const dynamic_function_invocation_expr* e =
337 static_cast<const dynamic_function_invocation_expr*>(this);338 static_cast<const dynamic_function_invocation_expr*>(this);
338339
339 checked_vector<expr*> newArgs;340 checked_vector<expr*> newArgs;
@@ -344,12 +345,27 @@
344 newArgs.push_back((*ite)->clone(udf, subst));345 newArgs.push_back((*ite)->clone(udf, subst));
345 }346 }
346 347
348 checked_vector<expr*> newDotVars;
349 for (checked_vector<expr*>::const_iterator ite = e->theDotVars.begin();
350 ite != e->theDotVars.end();
351 ++ite)
352 {
353 newDotVars.push_back((*ite)->clone(udf, subst));
354 }
355
347 newExpr = theCCB->theEM->356 newExpr = theCCB->theEM->
348 create_dynamic_function_invocation_expr(theSctx,357 create_dynamic_function_invocation_expr(theSctx,
349 udf,358 udf,
350 theLoc,359 theLoc,
351 e->theExpr->clone(udf, subst),360 e->theExpr->clone(udf, subst),
352 newArgs);361 newArgs,
362 newDotVars,
363 e->theCoercionTargetType);
364 break;
365 }
366 case argument_placeholder_expr_kind:
367 {
368 newExpr = theCCB->theEM->create_argument_placeholder_expr(theSctx, udf, theLoc);
353 break;369 break;
354 }370 }
355 case function_item_expr_kind:371 case function_item_expr_kind:
@@ -359,17 +375,23 @@
359 function_item_expr* cloneExpr = theCCB->theEM->375 function_item_expr* cloneExpr = theCCB->theEM->
360 create_function_item_expr(theSctx,376 create_function_item_expr(theSctx,
361 udf,377 udf,
362 theLoc,378 get_loc(),
363 e->theFunction->getName(),379 e->theDynamicFunctionInfo->theFunction,
364 e->theFunction.getp(),380 e->theDynamicFunctionInfo->theFunction->getName(),
365 e->theArity);381 e->theDynamicFunctionInfo->theArity,
382 e->is_inline(),
383 e->needs_context_item());
366384
367 std::vector<expr*> lNewVariables;385 std::vector<expr*>::const_iterator varIter = e->theDynamicFunctionInfo->theScopedVarsValues.begin();
368 for (std::vector<expr*>::const_iterator ite = e->theScopedVariables.begin();386 std::vector<var_expr*>::const_iterator substVarIter = e->theDynamicFunctionInfo->theSubstVarsValues.begin();
369 ite != e->theScopedVariables.end();387 std::vector<store::Item_t>::const_iterator nameIter = e->theDynamicFunctionInfo->theScopedVarsNames.begin();
370 ++ite)388 std::vector<int>::const_iterator isGlobalIter = e->theDynamicFunctionInfo->theIsGlobalVar.begin();
389 for (; varIter != e->theDynamicFunctionInfo->theScopedVarsValues.end(); ++varIter, ++substVarIter, ++nameIter, ++isGlobalIter)
371 {390 {
372 cloneExpr->add_variable((*ite)->clone(udf, subst));391 cloneExpr->add_variable((*varIter) ? (*varIter)->clone(udf, subst) : NULL,
392 (*substVarIter) ? static_cast<var_expr*>((*substVarIter)->clone(udf, subst)) : NULL,
393 *nameIter,
394 *isGlobalIter);
373 }395 }
374396
375 newExpr = cloneExpr;397 newExpr = cloneExpr;
@@ -579,7 +601,7 @@
579601
580 transform_expr* cloneExpr = theCCB->theEM->602 transform_expr* cloneExpr = theCCB->theEM->
581 create_transform_expr(theSctx, udf, theLoc);603 create_transform_expr(theSctx, udf, theLoc);
582 604
583 for (std::vector<copy_clause*>::const_iterator ite = e->theCopyClauses.begin();605 for (std::vector<copy_clause*>::const_iterator ite = e->theCopyClauses.begin();
584 ite != e->theCopyClauses.end();606 ite != e->theCopyClauses.end();
585 ++ite)607 ++ite)
@@ -675,10 +697,10 @@
675 for (; ite != end; ++ite)697 for (; ite != end; ++ite)
676 {698 {
677 assert(subst.find(*ite) != subst.end());699 assert(subst.find(*ite) != subst.end());
678 700
679 clonedExits.push_back(subst[*ite]);701 clonedExits.push_back(subst[*ite]);
680 }702 }
681 703
682 newExpr = theCCB->theEM->704 newExpr = theCCB->theEM->
683 create_exit_catcher_expr(theSctx, udf, theLoc, clonedInput, clonedExits);705 create_exit_catcher_expr(theSctx, udf, theLoc, clonedInput, clonedExits);
684706
685707
=== modified file 'src/compiler/expression/expr_iter.cpp'
--- src/compiler/expression/expr_iter.cpp 2012-12-12 07:36:20 +0000
+++ src/compiler/expression/expr_iter.cpp 2012-12-23 10:41:23 +0000
@@ -195,9 +195,9 @@
195195
196 theArgsIter = oc->theOrderingExprs.begin();196 theArgsIter = oc->theOrderingExprs.begin();
197 theArgsEnd = oc->theOrderingExprs.end();197 theArgsEnd = oc->theOrderingExprs.end();
198 198
199 theCurrentChild = &(*theArgsIter);199 theCurrentChild = &(*theArgsIter);
200 200
201 ++theArgsIter;201 ++theArgsIter;
202 theState = 3;202 theState = 3;
203 return;203 return;
@@ -242,7 +242,7 @@
242 while (theWincondIter < 2)242 while (theWincondIter < 2)
243 {243 {
244 window_clause* wc = static_cast<window_clause *>(*theClausesIter);244 window_clause* wc = static_cast<window_clause *>(*theClausesIter);
245 245
246 flwor_wincond* wincond = (theWincondIter == 0 ?246 flwor_wincond* wincond = (theWincondIter == 0 ?
247 wc->theWinStartCond :247 wc->theWinStartCond :
248 wc->theWinStopCond );248 wc->theWinStopCond );
@@ -269,7 +269,7 @@
269 ++theArgsIter;269 ++theArgsIter;
270 return;270 return;
271 }271 }
272 272
273 theState = 1;273 theState = 1;
274 ++theClausesIter;274 ++theClausesIter;
275 goto nextclause;275 goto nextclause;
@@ -691,10 +691,12 @@
691691
692 EXPR_ITER_BEGIN();692 EXPR_ITER_BEGIN();
693693
694 theArgsIter = fiExpr->theScopedVariables.begin();694 theArgsIter = fiExpr->theDynamicFunctionInfo->theScopedVarsValues.begin();
695 theArgsEnd = fiExpr->theScopedVariables.end();695 theArgsEnd = fiExpr->theDynamicFunctionInfo->theScopedVarsValues.end();
696 for (; theArgsIter != theArgsEnd; ++theArgsIter)696 for (; theArgsIter != theArgsEnd; ++theArgsIter)
697 {697 {
698 if ( ! *theArgsIter) // TODO: the vars values for prolog variables is null, so they have to be skipped, or the optimizer will trip and fall off. Maybe null vars values need not be remembered
699 continue;
698 EXPR_ITER_NEXT(*theArgsIter);700 EXPR_ITER_NEXT(*theArgsIter);
699 }701 }
700702
@@ -717,11 +719,26 @@
717 {719 {
718 EXPR_ITER_NEXT(*theArgsIter);720 EXPR_ITER_NEXT(*theArgsIter);
719 }721 }
722
723 theArgsIter = dfiExpr->theDotVars.begin();
724 theArgsEnd = dfiExpr->theDotVars.end();
725 for (; theArgsIter != theArgsEnd; ++theArgsIter)
726 {
727 if ( ! *theArgsIter)
728 continue;
729 EXPR_ITER_NEXT(*theArgsIter);
730 }
720731
721 EXPR_ITER_END();732 EXPR_ITER_END();
722 return;733 return;
723 }734 }
724735
736 case argument_placeholder_expr_kind:
737 {
738 theIsDone = true;
739 return;
740 }
741
725 case insert_expr_kind:742 case insert_expr_kind:
726 {743 {
727 insert_expr* insExpr = static_cast<insert_expr*>(theExpr);744 insert_expr* insExpr = static_cast<insert_expr*>(theExpr);
728745
=== modified file 'src/compiler/expression/expr_manager.cpp'
--- src/compiler/expression/expr_manager.cpp 2012-10-26 07:13:42 +0000
+++ src/compiler/expression/expr_manager.cpp 2012-12-23 10:41:23 +0000
@@ -787,9 +787,21 @@
787 user_function* udf,787 user_function* udf,
788 const QueryLoc& loc,788 const QueryLoc& loc,
789 expr* anExpr,789 expr* anExpr,
790 const std::vector<expr*>& args)790 const std::vector<expr*>& args,
791{791 const std::vector<expr*>& dotVars,
792 CREATE_AND_RETURN_EXPR(dynamic_function_invocation_expr, sctx, udf, loc, anExpr, args);792 xqtref_t coercionTargetType)
793{
794 CREATE_AND_RETURN_EXPR(dynamic_function_invocation_expr, sctx, udf, loc, anExpr, args, dotVars, coercionTargetType);
795}
796
797
798argument_placeholder_expr*
799ExprManager::create_argument_placeholder_expr(
800 static_context* sctx,
801 user_function* udf,
802 const QueryLoc& loc)
803{
804 CREATE_AND_RETURN_EXPR(argument_placeholder_expr, sctx, udf, loc);
793}805}
794806
795807
@@ -797,20 +809,24 @@
797 static_context* sctx,809 static_context* sctx,
798 user_function* udf,810 user_function* udf,
799 const QueryLoc& loc,811 const QueryLoc& loc,
800 const store::Item* aQName,
801 function* f,812 function* f,
802 uint32_t aArity)813 store::Item* aQName,
814 uint32_t aArity,
815 bool isInline,
816 bool needsContextItem)
803{817{
804 CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc, aQName, f, aArity);818 CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc, f, aQName, aArity, isInline, needsContextItem);
805}819}
806820
807821
808function_item_expr* ExprManager::create_function_item_expr(822function_item_expr* ExprManager::create_function_item_expr(
809 static_context* sctx,823 static_context* sctx,
810 user_function* udf,824 user_function* udf,
811 const QueryLoc& loc)825 const QueryLoc& loc,
826 bool isInline,
827 bool needsContextItem)
812{828{
813 CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc);829 CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc, isInline, needsContextItem);
814}830}
815831
816832
817833
=== modified file 'src/compiler/expression/expr_manager.h'
--- src/compiler/expression/expr_manager.h 2012-10-26 07:13:42 +0000
+++ src/compiler/expression/expr_manager.h 2012-12-23 10:41:23 +0000
@@ -480,20 +480,31 @@
480 user_function* udf,480 user_function* udf,
481 const QueryLoc& loc,481 const QueryLoc& loc,
482 expr* anExpr,482 expr* anExpr,
483 const std::vector<expr*>& args);483 const std::vector<expr*>& args,
484 const std::vector<expr*>& dotVars,
485 xqtref_t coercionTargetType);
486
487 argument_placeholder_expr* create_argument_placeholder_expr(
488 static_context* sctx,
489 user_function* udf,
490 const QueryLoc& loc);
484491
485 function_item_expr* create_function_item_expr(492 function_item_expr* create_function_item_expr(
486 static_context* sctx,493 static_context* sctx,
487 user_function* udf,494 user_function* udf,
488 const QueryLoc& loc,495 const QueryLoc& loc,
489 const store::Item* aQName,
490 function* f,496 function* f,
491 uint32_t aArity);497 store::Item* aQName,
498 uint32_t aArity,
499 bool isInline,
500 bool needsContextItem);
492501
493 function_item_expr* create_function_item_expr(502 function_item_expr* create_function_item_expr(
494 static_context* sctx,503 static_context* sctx,
495 user_function* udf,504 user_function* udf,
496 const QueryLoc& loc);505 const QueryLoc& loc,
506 bool isInline,
507 bool needsContextItem);
497508
498 ftcontains_expr* create_ftcontains_expr(509 ftcontains_expr* create_ftcontains_expr(
499 static_context*,510 static_context*,
@@ -607,7 +618,7 @@
607 user_function* udf,618 user_function* udf,
608 const QueryLoc& loc,619 const QueryLoc& loc,
609 bool general);620 bool general);
610 621
611 pragma* create_pragma(622 pragma* create_pragma(
612 const store::Item_t&,623 const store::Item_t&,
613 const zstring&);624 const zstring&);
614625
=== modified file 'src/compiler/expression/expr_put.cpp'
--- src/compiler/expression/expr_put.cpp 2012-12-06 22:49:35 +0000
+++ src/compiler/expression/expr_put.cpp 2012-12-23 10:41:23 +0000
@@ -152,7 +152,10 @@
152152
153 BEGIN_PUT_NO_EOL(vref) ;153 BEGIN_PUT_NO_EOL(vref) ;
154 put_qname(varExpr->get_name(), os);154 put_qname(varExpr->get_name(), os);
155 os << expr_addr(varExpr) << " ]" << endl;155 os << expr_addr(varExpr);
156 os << " kind=" << var_expr::decode_var_kind(varExpr->get_kind()); // TODO: remove this info
157 os << " uniqueId=" << varExpr->get_unique_id(); // TODO: remove this info
158 os << " ]" << endl;
156 return os;159 return os;
157 }160 }
158 else161 else
@@ -185,6 +188,11 @@
185 put_qname(get_name(), os);188 put_qname(get_name(), os);
186 }189 }
187190
191 if (get_kind() == prolog_var || get_kind() == hof_var)
192 {
193 os << " uniqueId=" << theUniqueId;
194 }
195
188#if VERBOSE196#if VERBOSE
189 if (theDeclaredType != NULL)197 if (theDeclaredType != NULL)
190 {198 {
@@ -224,7 +232,7 @@
224 }232 }
225233
226 os << endl << indent << "[\n" << inc_indent;234 os << endl << indent << "[\n" << inc_indent;
227 235
228 theDomainExpr->put(os);236 theDomainExpr->put(os);
229237
230 END_PUT();238 END_PUT();
@@ -499,7 +507,7 @@
499ostream& fo_expr::put(ostream& os) const507ostream& fo_expr::put(ostream& os) const
500{508{
501 const store::Item* qname = theFunction->getName();509 const store::Item* qname = theFunction->getName();
502 BEGIN_PUT_MSG( qname->getStringValue() << "/" << num_args() );510 BEGIN_PUT_MSG( qname->getStringValue() << "#" << num_args() );
503 csize numArgs = num_args();511 csize numArgs = num_args();
504512
505 for (csize i = 0; i < numArgs; ++i)513 for (csize i = 0; i < numArgs; ++i)
@@ -525,18 +533,43 @@
525533
526std::ostream& function_item_expr::put(std::ostream& os) const534std::ostream& function_item_expr::put(std::ostream& os) const
527{535{
528 os << indent << "funtion_item_expr " << expr_addr(this) << inc_indent;536 os << indent << "funtion_item_expr" << expr_addr(this) << inc_indent;
529537
530 if (theQName != NULL)538 if (theDynamicFunctionInfo->theQName != NULL)
531 {539 {
532 os << " " << theQName->getStringValue() << "/" << theArity;540 os << " " << theDynamicFunctionInfo->theQName->getStringValue()
541 << "#" << theDynamicFunctionInfo->theArity;
533 os << dec_indent << endl;542 os << dec_indent << endl;
534 return os;543 return os;
535 }544 }
536 else545 else
537 {546 {
538 os << " inline udf (" << theFunction.getp() << ") [\n";547 os << " inline udf (" << theDynamicFunctionInfo->theFunction << ") [\n";
539 reinterpret_cast<const user_function*>(theFunction.getp())->getBody()->put(os);548
549 const signature& sig = get_function()->getSignature();
550 std::vector<xqtref_t> paramTypes;
551 for (csize i=0; i < sig.paramCount(); i++)
552 paramTypes.push_back(sig[i]);
553 xqtref_t funcType = get_type_manager()->create_function_type(paramTypes, sig.returnType(), TypeConstants::QUANT_ONE);
554
555 // TODO: remove type
556 os << indent << "type: " << funcType->toString() << std::endl;
557
558 for (ulong i = 0; i < theDynamicFunctionInfo->theScopedVarsValues.size(); i++)
559 {
560 os << indent << "using $"
561 << theDynamicFunctionInfo->theScopedVarsNames[i]->getStringValue()
562 << (theDynamicFunctionInfo->theIsGlobalVar[i] ? " global=1" : "") << " := [";
563 os << endl << inc_indent;
564 if (theDynamicFunctionInfo->theScopedVarsValues[i])
565 theDynamicFunctionInfo->theScopedVarsValues[i]->put(os);
566 os << dec_indent << indent << "]" << endl;
567 }
568
569 if (theDynamicFunctionInfo->theFunction != NULL &&
570 static_cast<user_function*>(theDynamicFunctionInfo->theFunction.getp())->getBody() != NULL)
571 static_cast<user_function*>(theDynamicFunctionInfo->theFunction.getp())->getBody()->put(os);
572
540 END_PUT();573 END_PUT();
541 }574 }
542}575}
@@ -545,16 +578,31 @@
545ostream& dynamic_function_invocation_expr::put(ostream& os) const578ostream& dynamic_function_invocation_expr::put(ostream& os) const
546{579{
547 BEGIN_PUT( dynamic_function_invocation_expr );580 BEGIN_PUT( dynamic_function_invocation_expr );
548581
549 theExpr->put(os);582 theExpr->put(os);
550583
551 for (csize i = 0; i < theArgs.size(); ++i)584 for (csize i = 0; i < theArgs.size(); ++i)
552 theArgs[i]->put(os);585 theArgs[i]->put(os);
586
587 for (csize i = 0; i < theDotVars.size(); i++)
588 if (theDotVars[i] != NULL)
589 {
590 os << indent << "using $";
591 theDotVars[i]->put(os);
592 }
553593
554 END_PUT();594 END_PUT();
555}595}
556596
557597
598ostream& argument_placeholder_expr::put(ostream& os) const
599{
600 BEGIN_PUT_NO_EOL( argument_placeholder_expr );
601 os << "? ]\n";
602 return os;
603}
604
605
558ostream& instanceof_expr::put( ostream& os) const606ostream& instanceof_expr::put( ostream& os) const
559{607{
560 BEGIN_PUT_MSG("instanceof_expr " << theTargetType->toSchemaString());608 BEGIN_PUT_MSG("instanceof_expr " << theTargetType->toSchemaString());
@@ -742,7 +790,7 @@
742790
743 if (theValue->isFunction())791 if (theValue->isFunction())
744 {792 {
745 os << "functrion item [ " << theValue->show() << " ]";793 os << "function item [ " << theValue->show() << " ]";
746 }794 }
747 else795 else
748 {796 {
749797
=== modified file 'src/compiler/expression/expr_type.cpp'
--- src/compiler/expression/expr_type.cpp 2012-12-06 22:49:35 +0000
+++ src/compiler/expression/expr_type.cpp 2012-12-23 10:41:23 +0000
@@ -254,6 +254,7 @@
254 case var_expr::catch_var: // TODO254 case var_expr::catch_var: // TODO
255 case var_expr::arg_var:255 case var_expr::arg_var:
256 case var_expr::eval_var:256 case var_expr::eval_var:
257 case var_expr::hof_var:
257 {258 {
258 break;259 break;
259 }260 }
@@ -600,6 +601,12 @@
600 return;601 return;
601 }602 }
602603
604 case argument_placeholder_expr_kind:
605 {
606 theType = rtm.ITEM_TYPE_STAR;
607 return;
608 }
609
603 case function_item_expr_kind:610 case function_item_expr_kind:
604 {611 {
605 theType = rtm.ANY_FUNCTION_TYPE_ONE;612 theType = rtm.ANY_FUNCTION_TYPE_ONE;
606613
=== modified file 'src/compiler/expression/expr_visitor.h'
--- src/compiler/expression/expr_visitor.h 2012-09-19 21:16:15 +0000
+++ src/compiler/expression/expr_visitor.h 2012-12-23 10:41:23 +0000
@@ -1,12 +1,12 @@
1/*1/*
2 * Copyright 2006-2008 The FLWOR Foundation.2 * Copyright 2006-2008 The FLWOR Foundation.
3 * 3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at6 * You may obtain a copy of the License at
7 * 7 *
8 * http://www.apache.org/licenses/LICENSE-2.08 * http://www.apache.org/licenses/LICENSE-2.0
9 * 9 *
10 * Unless required by applicable law or agreed to in writing, software10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,7 +20,7 @@
20#include <zorba/config.h>20#include <zorba/config.h>
21#include "compiler/expression/expr_classes.h"21#include "compiler/expression/expr_classes.h"
2222
23namespace zorba 23namespace zorba
24{24{
2525
26#ifndef ZORBA_NO_FULL_TEXT26#ifndef ZORBA_NO_FULL_TEXT
@@ -29,7 +29,7 @@
2929
30class expr_visitor30class expr_visitor
31{31{
32public: 32public:
3333
34 virtual ~expr_visitor() { }34 virtual ~expr_visitor() { }
3535
@@ -78,6 +78,7 @@
78 DECL_EXPR_VISITOR_VISIT_MEM_FNS( trycatch_expr );78 DECL_EXPR_VISITOR_VISIT_MEM_FNS( trycatch_expr );
79 DECL_EXPR_VISITOR_VISIT_MEM_FNS( function_item_expr );79 DECL_EXPR_VISITOR_VISIT_MEM_FNS( function_item_expr );
80 DECL_EXPR_VISITOR_VISIT_MEM_FNS( dynamic_function_invocation_expr );80 DECL_EXPR_VISITOR_VISIT_MEM_FNS( dynamic_function_invocation_expr );
81 DECL_EXPR_VISITOR_VISIT_MEM_FNS( argument_placeholder_expr );
8182
82 DECL_EXPR_VISITOR_VISIT_MEM_FNS(insert_expr);83 DECL_EXPR_VISITOR_VISIT_MEM_FNS(insert_expr);
83 DECL_EXPR_VISITOR_VISIT_MEM_FNS(delete_expr);84 DECL_EXPR_VISITOR_VISIT_MEM_FNS(delete_expr);
8485
=== modified file 'src/compiler/expression/function_item_expr.cpp'
--- src/compiler/expression/function_item_expr.cpp 2012-10-09 14:06:08 +0000
+++ src/compiler/expression/function_item_expr.cpp 2012-12-23 10:41:23 +0000
@@ -15,6 +15,8 @@
15 */15 */
16#include "stdafx.h"16#include "stdafx.h"
1717
18#include "store/api/item_factory.h"
19
18#include "compiler/expression/function_item_expr.h"20#include "compiler/expression/function_item_expr.h"
19#include "compiler/expression/expr_visitor.h"21#include "compiler/expression/expr_visitor.h"
2022
@@ -27,7 +29,7 @@
27namespace zorba {29namespace zorba {
2830
2931
30DEF_EXPR_ACCEPT (dynamic_function_invocation_expr)32DEF_EXPR_ACCEPT (dynamic_function_invocation_expr);
3133
3234
33dynamic_function_invocation_expr::dynamic_function_invocation_expr(35dynamic_function_invocation_expr::dynamic_function_invocation_expr(
@@ -36,11 +38,15 @@
36 user_function* udf,38 user_function* udf,
37 const QueryLoc& loc,39 const QueryLoc& loc,
38 expr* anExpr,40 expr* anExpr,
39 const std::vector<expr*>& args)41 const std::vector<expr*>& args,
42 const std::vector<expr*>& dotVars,
43 xqtref_t coercionTargetType)
40 :44 :
41 expr(ccb, sctx, udf, loc, dynamic_function_invocation_expr_kind),45 expr(ccb, sctx, udf, loc, dynamic_function_invocation_expr_kind),
42 theExpr(anExpr),46 theExpr(anExpr),
43 theArgs(args)47 theArgs(args),
48 theDotVars(dotVars),
49 theCoercionTargetType(coercionTargetType)
44{50{
45 assert(anExpr != 0);51 assert(anExpr != 0);
46 compute_scripting_kind();52 compute_scripting_kind();
@@ -61,7 +67,19 @@
6167
62********************************************************************************/68********************************************************************************/
6369
64DEF_EXPR_ACCEPT (function_item_expr)70DEF_EXPR_ACCEPT (argument_placeholder_expr);
71
72void argument_placeholder_expr::compute_scripting_kind()
73{
74 theScriptingKind = SIMPLE_EXPR;
75}
76
77
78/*******************************************************************************
79
80********************************************************************************/
81
82DEF_EXPR_ACCEPT (function_item_expr);
6583
6684
67function_item_expr::function_item_expr(85function_item_expr::function_item_expr(
@@ -69,14 +87,20 @@
69 static_context* sctx,87 static_context* sctx,
70 user_function* udf,88 user_function* udf,
71 const QueryLoc& loc,89 const QueryLoc& loc,
72 const store::Item* aQName,
73 function* f,90 function* f,
74 uint32_t aArity)91 store::Item* aQName,
92 uint32_t aArity,
93 bool isInline,
94 bool needsContextItem)
75 :95 :
76 expr(ccb, sctx, udf, loc, function_item_expr_kind),96 expr(ccb, sctx, udf, loc, function_item_expr_kind),
77 theQName(const_cast<store::Item*>(aQName)),97 theDynamicFunctionInfo(new DynamicFunctionInfo(
78 theFunction(f),98 loc,
79 theArity(aArity)99 f,
100 aQName,
101 aArity,
102 isInline,
103 needsContextItem))
80{104{
81 assert(f != NULL);105 assert(f != NULL);
82 compute_scripting_kind();106 compute_scripting_kind();
@@ -87,46 +111,35 @@
87 CompilerCB* ccb,111 CompilerCB* ccb,
88 static_context* sctx,112 static_context* sctx,
89 user_function* udf,113 user_function* udf,
90 const QueryLoc& loc)114 const QueryLoc& loc,
115 bool isInline,
116 bool needsContextItem)
91 :117 :
92 expr(ccb, sctx, udf, loc, function_item_expr_kind),118 expr(ccb, sctx, udf, loc, function_item_expr_kind),
93 theQName(0),119 theDynamicFunctionInfo(new DynamicFunctionInfo(
94 theFunction(NULL),120 loc,
95 theArity(0)121 NULL,
122 NULL,
123 0,
124 isInline,
125 needsContextItem))
96{126{
97 theScriptingKind = SIMPLE_EXPR;127 theScriptingKind = SIMPLE_EXPR;
98}128}
99129
100130
101function_item_expr::~function_item_expr()131void function_item_expr::add_variable(expr* var, var_expr* substVar, const store::Item_t& name, int isGlobal)
102{132{
103}133 theDynamicFunctionInfo->add_variable(var, substVar, name, isGlobal);
104134}
105135
106user_function* function_item_expr::get_function() const 136
107{137void function_item_expr::set_function(user_function* udf)
108 assert(theFunction->isUdf());138{
109 return static_cast<user_function*>(theFunction.getp());139 theDynamicFunctionInfo->theFunction = udf;
110}140 theDynamicFunctionInfo->theArity = udf->getArity();
111141 theDynamicFunctionInfo->theQName = udf->getName();
112142 // compute_scripting_kind();
113void function_item_expr::add_variable(expr* var)
114{
115 theScopedVariables.push_back(var);
116}
117
118
119const std::vector<expr*>& function_item_expr::get_vars() const
120{
121 return theScopedVariables;
122}
123
124
125void function_item_expr::set_function(user_function_t& udf)
126{
127 theFunction = udf;
128 theArity = udf->getArity();
129 compute_scripting_kind();
130}143}
131144
132145
@@ -136,6 +149,17 @@
136 theScriptingKind = SIMPLE_EXPR;149 theScriptingKind = SIMPLE_EXPR;
137}150}
138151
152store::Item_t function_item_expr::create_inline_fname(const QueryLoc& loc)
153{
154 store::Item_t name;
155 std::stringstream ss;
156 ss << "inline function(";
157 ss << loc;
158 ss << ")";
159 GENV_ITEMFACTORY->createQName(name, "", "", ss.str());
160 return name;
161}
162
139163
140}//end of namespace164}//end of namespace
141/* vim:set et sw=2 ts=2: */165/* vim:set et sw=2 ts=2: */
142166
=== modified file 'src/compiler/expression/function_item_expr.h'
--- src/compiler/expression/function_item_expr.h 2012-10-09 14:06:08 +0000
+++ src/compiler/expression/function_item_expr.h 2012-12-23 10:41:23 +0000
@@ -23,9 +23,38 @@
2323
24#include "store/naive/shared_types.h"24#include "store/naive/shared_types.h"
2525
26#include "runtime/function_item/function_item.h"
27
28
26namespace zorba {29namespace zorba {
2730
28/*******************************************************************************31/*******************************************************************************
32 [133] ArgumentPlaceholder ::= "?"
33********************************************************************************/
34class argument_placeholder_expr : public expr
35{
36 friend class ExprIterator;
37 friend class expr;
38 friend class ExprManager;
39
40protected:
41 argument_placeholder_expr(CompilerCB* ccb, static_context* sctx, user_function* udf, const QueryLoc& loc)
42 :
43 expr(ccb, sctx, udf, loc, argument_placeholder_expr_kind)
44 {
45 compute_scripting_kind();
46 }
47
48public:
49 void compute_scripting_kind();
50
51 void accept(expr_visitor&);
52
53 std::ostream& put(std::ostream& os) const;
54};
55
56
57/*******************************************************************************
2958
30 [121] FilterExpr ::= PrimaryExpr (Predicate | DynamicFunctionInvocation)*59 [121] FilterExpr ::= PrimaryExpr (Predicate | DynamicFunctionInvocation)*
3160
@@ -43,6 +72,12 @@
43protected:72protected:
44 expr * theExpr;73 expr * theExpr;
45 std::vector<expr*> theArgs;74 std::vector<expr*> theArgs;
75
76 std::vector<expr*> theDotVars; // context item vars
77
78 // TODO: must be protected
79public:
80 xqtref_t theCoercionTargetType;
4681
47protected:82protected:
48 dynamic_function_invocation_expr(83 dynamic_function_invocation_expr(
@@ -51,12 +86,16 @@
51 user_function* udf,86 user_function* udf,
52 const QueryLoc& loc,87 const QueryLoc& loc,
53 expr* anExpr,88 expr* anExpr,
54 const std::vector<expr*>& args);89 const std::vector<expr*>& args,
90 const std::vector<expr*>& dotVars,
91 xqtref_t coercionTargetType);
5592
56public:93public:
57 const expr* get_function() const { return theExpr; }94 const expr* get_function() const { return theExpr; }
5895
59 const std::vector<expr*>& get_args() const { return theArgs; }96 const std::vector<expr*>& get_args() const { return theArgs; }
97
98 const std::vector<expr*>& get_dot_vars() const { return theDotVars; }
6099
61 void compute_scripting_kind();100 void compute_scripting_kind();
62101
@@ -74,10 +113,6 @@
74113
75 InlineFunction ::= "function" "(" ParamList? ")" ("as" SequenceType)? EnclosedExpr114 InlineFunction ::= "function" "(" ParamList? ")" ("as" SequenceType)? EnclosedExpr
76115
77 theQName :
78 NULL in case of inline function. Otherwise, the qname of the named function
79 in the LiteralFunctionItem.
80
81 theFunction :116 theFunction :
82 This is always a pointer to a user_function obj. In case of an inline function117 This is always a pointer to a user_function obj. In case of an inline function
83 expr, it is an anonymous user_function obj that is created on-the-fly by the118 expr, it is an anonymous user_function obj that is created on-the-fly by the
@@ -103,50 +138,64 @@
103 friend class expr;138 friend class expr;
104 friend class ExprManager;139 friend class ExprManager;
105140
106private:141protected:
107 store::Item_t theQName;142 DynamicFunctionInfo_t theDynamicFunctionInfo;
108 function_t theFunction;143
109 uint32_t theArity;
110 std::vector<expr*> theScopedVariables;
111
112public:
113
114protected:144protected:
115 function_item_expr(145 function_item_expr(
116 CompilerCB* ccb,146 CompilerCB* ccb,
117 static_context* sctx,147 static_context* sctx,
118 user_function* udf,148 user_function* udf,
119 const QueryLoc& loc,149 const QueryLoc& loc,
120 const store::Item* aQName,
121 function* f,150 function* f,
122 uint32_t aArity);151 store::Item* aQName,
152 uint32_t aArity,
153 bool isInline,
154 bool needsContextItem);
123155
124 function_item_expr(156 function_item_expr(
125 CompilerCB* ccb,157 CompilerCB* ccb,
126 static_context* sctx,158 static_context* sctx,
127 user_function* udf,159 user_function* udf,
128 const QueryLoc& loc);160 const QueryLoc& loc,
129161 bool isInline,
162 bool needsContextItem);
163
130public:164public:
131 ~function_item_expr();165 DynamicFunctionInfo* get_dynamic_fn_info() { return theDynamicFunctionInfo; }
132166
133 void add_variable(expr* var);167 void add_variable(expr* var, var_expr* substVar, const store::Item_t& name, int isGlobal);
134168
135 void set_function(user_function_t& udf);169 const std::vector<expr*>& get_scoped_vars_values() const { return theDynamicFunctionInfo->theScopedVarsValues; }
136170
137 user_function* get_function() const;171 const std::vector<var_expr*>& get_subst_vars_values() const { return theDynamicFunctionInfo->theSubstVarsValues; }
138172
139 const store::Item_t& get_qname() const { return theQName; }173 const std::vector<store::Item_t>& get_scoped_vars_names() const { return theDynamicFunctionInfo->theScopedVarsNames; }
140174
141 uint32_t get_arity() const { return theArity; }175 const std::vector<int>& get_is_global_var() const { return theDynamicFunctionInfo->theIsGlobalVar; }
142176
143 const std::vector<expr*>& get_vars() const;177 void set_function(user_function* udf);
178
179 function* get_function() const { return theDynamicFunctionInfo->theFunction; }
180
181 const store::Item_t& get_qname() const { return theDynamicFunctionInfo->theQName; }
182
183 uint32_t get_arity() const { return theDynamicFunctionInfo->theArity; }
184
185 bool is_inline() const { return theDynamicFunctionInfo->theIsInline; }
186
187 bool needs_context_item() const { return theDynamicFunctionInfo->theNeedsContextItem; }
144188
145 void compute_scripting_kind();189 void compute_scripting_kind();
146190
147 void accept(expr_visitor&);191 void accept(expr_visitor&);
148192
149 std::ostream& put(std::ostream& os) const;193 std::ostream& put(std::ostream& os) const;
194
195public:
196 // Given a location, will create an inline function name string such
197 // as "inline function(loc)"
198 static store::Item_t create_inline_fname(const QueryLoc& loc);
150};199};
151200
152} //end of namespace201} //end of namespace
153202
=== modified file 'src/compiler/expression/var_expr.cpp'
--- src/compiler/expression/var_expr.cpp 2012-12-06 22:49:35 +0000
+++ src/compiler/expression/var_expr.cpp 2012-12-23 10:41:23 +0000
@@ -53,6 +53,7 @@
53 case count_var: return "CNT"; break;53 case count_var: return "CNT"; break;
54 case score_var: return "SCORE"; break;54 case score_var: return "SCORE"; break;
55 case prolog_var: return "PROLOG"; break;55 case prolog_var: return "PROLOG"; break;
56 case hof_var: return "HOF"; break;
56 case local_var: return "LOCAL"; break;57 case local_var: return "LOCAL"; break;
57 case catch_var: return "CATCH"; break;58 case catch_var: return "CATCH"; break;
58 case copy_var: return "COPY"; break;59 case copy_var: return "COPY"; break;
@@ -315,7 +316,7 @@
315********************************************************************************/316********************************************************************************/
316void var_expr::remove_set_expr(expr* e)317void var_expr::remove_set_expr(expr* e)
317{318{
318 assert(theVarKind == local_var || theVarKind == prolog_var);319 assert(theVarKind == local_var || theVarKind == prolog_var || theVarKind == hof_var);
319320
320 bool found = false;321 bool found = false;
321 VarSetExprs::iterator ite = theSetExprs.begin();322 VarSetExprs::iterator ite = theSetExprs.begin();
322323
=== modified file 'src/compiler/expression/var_expr.h'
--- src/compiler/expression/var_expr.h 2012-12-06 22:49:35 +0000
+++ src/compiler/expression/var_expr.h 2012-12-23 10:41:23 +0000
@@ -145,6 +145,8 @@
145145
146 prolog_var,146 prolog_var,
147147
148 hof_var, // used by HoF functions, behaves similarly to prolog vars
149
148 local_var,150 local_var,
149151
150 arg_var152 arg_var
151153
=== modified file 'src/compiler/parser/xquery_parser.cpp'
--- src/compiler/parser/xquery_parser.cpp 2012-10-08 12:09:36 +0000
+++ src/compiler/parser/xquery_parser.cpp 2012-12-23 10:41:23 +0000
@@ -1,10 +1,8 @@
11/* A Bison parser, made by GNU Bison 2.6.2. */
2/* A Bison parser, made by GNU Bison 2.4.1. */
32
4/* Skeleton implementation for Bison LALR(1) parsers in C++3/* Skeleton implementation for Bison LALR(1) parsers in C++
5 4
6 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software5 Copyright (C) 2002-2012 Free Software Foundation, Inc.
7 Foundation, Inc.
8 6
9 This program is free software: you can redistribute it and/or modify7 This program is free software: you can redistribute it and/or modify
10 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
@@ -36,9 +34,8 @@
36#define yylex zorbalex34#define yylex zorbalex
3735
38/* First part of user declarations. */36/* First part of user declarations. */
3937/* Line 278 of lalr1.cc */
40/* Line 311 of lalr1.cc */38#line 87 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
41#line 87 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
4239
4340
44#include "common/common.h"41#include "common/common.h"
@@ -73,17 +70,15 @@
73using namespace zorba;70using namespace zorba;
7471
7572
7673/* Line 278 of lalr1.cc */
77/* Line 311 of lalr1.cc */74#line 75 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
78#line 79 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
7975
8076
81#include "xquery_parser.hpp"77#include "xquery_parser.hpp"
8278
83/* User implementation prologue. */79/* User implementation prologue. */
8480/* Line 284 of lalr1.cc */
85/* Line 317 of lalr1.cc */81#line 908 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
86#line 908 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
8782
88// HACK to trigger rchandle release: rchandles are freed when refcount == 083// HACK to trigger rchandle release: rchandles are freed when refcount == 0
89// (not <= 0); but Bison never increments the refcount, so we do it manually...84// (not <= 0); but Bison never increments the refcount, so we do it manually...
@@ -93,9 +88,8 @@
93 RCHelper::removeReference( ref );88 RCHelper::removeReference( ref );
94 }89 }
95}90}
9691/* Line 284 of lalr1.cc */
97/* Line 317 of lalr1.cc */92#line 1033 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
98#line 1033 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
9993
100#include "compiler/parser/xquery_scanner.h"94#include "compiler/parser/xquery_scanner.h"
10195
@@ -103,12 +97,20 @@
103#define yylex driver.lexer->lex97#define yylex driver.lexer->lex
10498
10599
106100/* Line 284 of lalr1.cc */
107/* Line 317 of lalr1.cc */101#line 102 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
108#line 109 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"102
103
104# ifndef YY_NULL
105# if defined __cplusplus && 201103L <= __cplusplus
106# define YY_NULL nullptr
107# else
108# define YY_NULL 0
109# endif
110# endif
109111
110#ifndef YY_112#ifndef YY_
111# if YYENABLE_NLS113# if defined YYENABLE_NLS && YYENABLE_NLS
112# if ENABLE_NLS114# if ENABLE_NLS
113# include <libintl.h> /* FIXME: INFRINGES ON USER NAME SPACE */115# include <libintl.h> /* FIXME: INFRINGES ON USER NAME SPACE */
114# define YY_(msgid) dgettext ("bison-runtime", msgid)116# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -119,6 +121,27 @@
119# endif121# endif
120#endif122#endif
121123
124#define YYRHSLOC(Rhs, K) ((Rhs)[K])
125/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
126 If N is 0, then set CURRENT to the empty location which ends
127 the previous symbol: RHS[0] (always defined). */
128
129# ifndef YYLLOC_DEFAULT
130# define YYLLOC_DEFAULT(Current, Rhs, N) \
131 do \
132 if (N) \
133 { \
134 (Current).begin = YYRHSLOC (Rhs, 1).begin; \
135 (Current).end = YYRHSLOC (Rhs, N).end; \
136 } \
137 else \
138 { \
139 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
140 } \
141 while (/*CONSTCOND*/ false)
142# endif
143
144
122/* Suppress unused-variable warnings by "using" E. */145/* Suppress unused-variable warnings by "using" E. */
123#define YYUSE(e) ((void) (e))146#define YYUSE(e) ((void) (e))
124147
@@ -168,14 +191,9 @@
168#define YYRECOVERING() (!!yyerrstatus_)191#define YYRECOVERING() (!!yyerrstatus_)
169192
170193
171/* Line 380 of lalr1.cc */
172#line 1 "[Bison:b4_percent_define_default]"
173
174namespace zorba {194namespace zorba {
175195/* Line 352 of lalr1.cc */
176/* Line 380 of lalr1.cc */196#line 197 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
177#line 178 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
178#if YYERROR_VERBOSE
179197
180 /* Return YYSTR after stripping away unnecessary quotes and198 /* Return YYSTR after stripping away unnecessary quotes and
181 backslashes, so that it's suitable for yyerror. The heuristic is199 backslashes, so that it's suitable for yyerror. The heuristic is
@@ -214,7 +232,6 @@
214 return yystr;232 return yystr;
215 }233 }
216234
217#endif
218235
219 /// Build a parser object.236 /// Build a parser object.
220 xquery_parser::xquery_parser (xquery_driver& driver_yyarg)237 xquery_parser::xquery_parser (xquery_driver& driver_yyarg)
@@ -242,6 +259,9 @@
242 {259 {
243 YYUSE (yylocationp);260 YYUSE (yylocationp);
244 YYUSE (yyvaluep);261 YYUSE (yyvaluep);
262 std::ostream& yyo = debug_stream ();
263 std::ostream& yyoutput = yyo;
264 YYUSE (yyoutput);
245 switch (yytype)265 switch (yytype)
246 {266 {
247 default:267 default:
@@ -274,2525 +294,1965 @@
274294
275 switch (yytype)295 switch (yytype)
276 {296 {
277 case 110: /* "\"'DECIMAL'\"" */297 case 110: /* "'DECIMAL'" */
278298/* Line 453 of lalr1.cc */
279/* Line 480 of lalr1.cc */299#line 906 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
280#line 906 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"300 { delete ((*yyvaluep).decval); };
281 { delete (yyvaluep->decval); };301/* Line 453 of lalr1.cc */
282302#line 303 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
283/* Line 480 of lalr1.cc */303 break;
284#line 285 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"304 case 124: /* "'DOUBLE'" */
285 break;305/* Line 453 of lalr1.cc */
286 case 124: /* "\"'DOUBLE'\"" */306#line 905 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
287307 { delete ((*yyvaluep).dval); };
288/* Line 480 of lalr1.cc */308/* Line 453 of lalr1.cc */
289#line 905 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"309#line 310 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
290 { delete (yyvaluep->dval); };310 break;
291311 case 149: /* "'INTEGER'" */
292/* Line 480 of lalr1.cc */312/* Line 453 of lalr1.cc */
293#line 294 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"313#line 904 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
294 break;314 { delete ((*yyvaluep).ival); };
295 case 149: /* "\"'INTEGER'\"" */315/* Line 453 of lalr1.cc */
296316#line 317 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
297/* Line 480 of lalr1.cc */317 break;
298#line 904 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"318 case 338: /* VersionDecl */
299 { delete (yyvaluep->ival); };319/* Line 453 of lalr1.cc */
300320#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
301/* Line 480 of lalr1.cc */321 { release_hack( ((*yyvaluep).node) ); };
302#line 303 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"322/* Line 453 of lalr1.cc */
303 break;323#line 324 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
304 case 338: /* "VersionDecl" */324 break;
305325 case 339: /* MainModule */
306/* Line 480 of lalr1.cc */326/* Line 453 of lalr1.cc */
307#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"327#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
308 { release_hack( (yyvaluep->node) ); };328 { release_hack( ((*yyvaluep).node) ); };
309329/* Line 453 of lalr1.cc */
310/* Line 480 of lalr1.cc */330#line 331 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
311#line 312 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"331 break;
312 break;332 case 340: /* LibraryModule */
313 case 339: /* "MainModule" */333/* Line 453 of lalr1.cc */
314334#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
315/* Line 480 of lalr1.cc */335 { release_hack( ((*yyvaluep).node) ); };
316#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"336/* Line 453 of lalr1.cc */
317 { release_hack( (yyvaluep->node) ); };337#line 338 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
318338 break;
319/* Line 480 of lalr1.cc */339 case 341: /* ModuleDecl */
320#line 321 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"340/* Line 453 of lalr1.cc */
321 break;341#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
322 case 340: /* "LibraryModule" */342 { release_hack( ((*yyvaluep).node) ); };
323343/* Line 453 of lalr1.cc */
324/* Line 480 of lalr1.cc */344#line 345 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
325#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"345 break;
326 { release_hack( (yyvaluep->node) ); };346 case 342: /* SIND_DeclList */
327347/* Line 453 of lalr1.cc */
328/* Line 480 of lalr1.cc */348#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
329#line 330 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"349 { release_hack( ((*yyvaluep).node) ); };
330 break;350/* Line 453 of lalr1.cc */
331 case 341: /* "ModuleDecl" */351#line 352 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
332352 break;
333/* Line 480 of lalr1.cc */353 case 343: /* SIND_Decl */
334#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"354/* Line 453 of lalr1.cc */
335 { release_hack( (yyvaluep->node) ); };355#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
336356 { release_hack( ((*yyvaluep).node) ); };
337/* Line 480 of lalr1.cc */357/* Line 453 of lalr1.cc */
338#line 339 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"358#line 359 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
339 break;359 break;
340 case 342: /* "SIND_DeclList" */360 case 344: /* Setter */
341361/* Line 453 of lalr1.cc */
342/* Line 480 of lalr1.cc */362#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
343#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"363 { release_hack( ((*yyvaluep).node) ); };
344 { release_hack( (yyvaluep->node) ); };364/* Line 453 of lalr1.cc */
345365#line 366 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
346/* Line 480 of lalr1.cc */366 break;
347#line 348 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"367 case 345: /* BoundarySpaceDecl */
348 break;368/* Line 453 of lalr1.cc */
349 case 343: /* "SIND_Decl" */369#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
350370 { release_hack( ((*yyvaluep).node) ); };
351/* Line 480 of lalr1.cc */371/* Line 453 of lalr1.cc */
352#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"372#line 373 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
353 { release_hack( (yyvaluep->node) ); };373 break;
354374 case 346: /* DefaultCollationDecl */
355/* Line 480 of lalr1.cc */375/* Line 453 of lalr1.cc */
356#line 357 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"376#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
357 break;377 { release_hack( ((*yyvaluep).node) ); };
358 case 344: /* "Setter" */378/* Line 453 of lalr1.cc */
359379#line 380 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
360/* Line 480 of lalr1.cc */380 break;
361#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"381 case 347: /* BaseURIDecl */
362 { release_hack( (yyvaluep->node) ); };382/* Line 453 of lalr1.cc */
363383#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
364/* Line 480 of lalr1.cc */384 { release_hack( ((*yyvaluep).node) ); };
365#line 366 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"385/* Line 453 of lalr1.cc */
366 break;386#line 387 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
367 case 345: /* "BoundarySpaceDecl" */387 break;
368388 case 348: /* ConstructionDecl */
369/* Line 480 of lalr1.cc */389/* Line 453 of lalr1.cc */
370#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"390#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
371 { release_hack( (yyvaluep->node) ); };391 { release_hack( ((*yyvaluep).node) ); };
372392/* Line 453 of lalr1.cc */
373/* Line 480 of lalr1.cc */393#line 394 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
374#line 375 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"394 break;
375 break;395 case 349: /* OrderingModeDecl */
376 case 346: /* "DefaultCollationDecl" */396/* Line 453 of lalr1.cc */
377397#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
378/* Line 480 of lalr1.cc */398 { release_hack( ((*yyvaluep).node) ); };
379#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"399/* Line 453 of lalr1.cc */
380 { release_hack( (yyvaluep->node) ); };400#line 401 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
381401 break;
382/* Line 480 of lalr1.cc */402 case 350: /* EmptyOrderDecl */
383#line 384 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"403/* Line 453 of lalr1.cc */
384 break;404#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
385 case 347: /* "BaseURIDecl" */405 { release_hack( ((*yyvaluep).node) ); };
386406/* Line 453 of lalr1.cc */
387/* Line 480 of lalr1.cc */407#line 408 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
388#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"408 break;
389 { release_hack( (yyvaluep->node) ); };409 case 351: /* CopyNamespacesDecl */
390410/* Line 453 of lalr1.cc */
391/* Line 480 of lalr1.cc */411#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
392#line 393 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"412 { release_hack( ((*yyvaluep).node) ); };
393 break;413/* Line 453 of lalr1.cc */
394 case 348: /* "ConstructionDecl" */414#line 415 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
395415 break;
396/* Line 480 of lalr1.cc */416 case 352: /* Import */
397#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"417/* Line 453 of lalr1.cc */
398 { release_hack( (yyvaluep->node) ); };418#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
399419 { release_hack( ((*yyvaluep).node) ); };
400/* Line 480 of lalr1.cc */420/* Line 453 of lalr1.cc */
401#line 402 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"421#line 422 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
402 break;422 break;
403 case 349: /* "OrderingModeDecl" */423 case 353: /* SchemaImport */
404424/* Line 453 of lalr1.cc */
405/* Line 480 of lalr1.cc */425#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
406#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"426 { release_hack( ((*yyvaluep).node) ); };
407 { release_hack( (yyvaluep->node) ); };427/* Line 453 of lalr1.cc */
408428#line 429 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
409/* Line 480 of lalr1.cc */429 break;
410#line 411 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"430 case 354: /* URILiteralList */
411 break;431/* Line 453 of lalr1.cc */
412 case 350: /* "EmptyOrderDecl" */432#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
413433 { release_hack( ((*yyvaluep).node) ); };
414/* Line 480 of lalr1.cc */434/* Line 453 of lalr1.cc */
415#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"435#line 436 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
416 { release_hack( (yyvaluep->node) ); };436 break;
417437 case 355: /* SchemaPrefix */
418/* Line 480 of lalr1.cc */438/* Line 453 of lalr1.cc */
419#line 420 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"439#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
420 break;440 { release_hack( ((*yyvaluep).node) ); };
421 case 351: /* "CopyNamespacesDecl" */441/* Line 453 of lalr1.cc */
422442#line 443 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
423/* Line 480 of lalr1.cc */443 break;
424#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"444 case 356: /* ModuleImport */
425 { release_hack( (yyvaluep->node) ); };445/* Line 453 of lalr1.cc */
426446#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
427/* Line 480 of lalr1.cc */447 { release_hack( ((*yyvaluep).node) ); };
428#line 429 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"448/* Line 453 of lalr1.cc */
429 break;449#line 450 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
430 case 352: /* "Import" */450 break;
431451 case 357: /* NamespaceDecl */
432/* Line 480 of lalr1.cc */452/* Line 453 of lalr1.cc */
433#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"453#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
434 { release_hack( (yyvaluep->node) ); };454 { release_hack( ((*yyvaluep).node) ); };
435455/* Line 453 of lalr1.cc */
436/* Line 480 of lalr1.cc */456#line 457 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
437#line 438 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"457 break;
438 break;458 case 358: /* DefaultNamespaceDecl */
439 case 353: /* "SchemaImport" */459/* Line 453 of lalr1.cc */
440460#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
441/* Line 480 of lalr1.cc */461 { release_hack( ((*yyvaluep).node) ); };
442#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"462/* Line 453 of lalr1.cc */
443 { release_hack( (yyvaluep->node) ); };463#line 464 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
444464 break;
445/* Line 480 of lalr1.cc */465 case 359: /* VFO_DeclList */
446#line 447 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"466/* Line 453 of lalr1.cc */
447 break;467#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
448 case 354: /* "URILiteralList" */468 { release_hack( ((*yyvaluep).node) ); };
449469/* Line 453 of lalr1.cc */
450/* Line 480 of lalr1.cc */470#line 471 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
451#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"471 break;
452 { release_hack( (yyvaluep->node) ); };472 case 360: /* VFO_Decl */
453473/* Line 453 of lalr1.cc */
454/* Line 480 of lalr1.cc */474#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
455#line 456 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"475 { release_hack( ((*yyvaluep).node) ); };
456 break;476/* Line 453 of lalr1.cc */
457 case 355: /* "SchemaPrefix" */477#line 478 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
458478 break;
459/* Line 480 of lalr1.cc */479 case 361: /* DecimalFormatDecl */
460#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"480/* Line 453 of lalr1.cc */
461 { release_hack( (yyvaluep->node) ); };481#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
462482 { release_hack( ((*yyvaluep).node) ); };
463/* Line 480 of lalr1.cc */483/* Line 453 of lalr1.cc */
464#line 465 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"484#line 485 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
465 break;485 break;
466 case 356: /* "ModuleImport" */486 case 362: /* DecimalFormatParamList */
467487/* Line 453 of lalr1.cc */
468/* Line 480 of lalr1.cc */488#line 932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
469#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"489 { delete ((*yyvaluep).vstrpair); };
470 { release_hack( (yyvaluep->node) ); };490/* Line 453 of lalr1.cc */
471491#line 492 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
472/* Line 480 of lalr1.cc */492 break;
473#line 474 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"493 case 363: /* DecimalFormatParam */
474 break;494/* Line 453 of lalr1.cc */
475 case 357: /* "NamespaceDecl" */495#line 932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
476496 { delete ((*yyvaluep).strpair); };
477/* Line 480 of lalr1.cc */497/* Line 453 of lalr1.cc */
478#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"498#line 499 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
479 { release_hack( (yyvaluep->node) ); };499 break;
480500 case 365: /* OptionDecl */
481/* Line 480 of lalr1.cc */501/* Line 453 of lalr1.cc */
482#line 483 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"502#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
483 break;503 { release_hack( ((*yyvaluep).node) ); };
484 case 358: /* "DefaultNamespaceDecl" */504/* Line 453 of lalr1.cc */
485505#line 506 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
486/* Line 480 of lalr1.cc */506 break;
487#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"507 case 366: /* FTOptionDecl */
488 { release_hack( (yyvaluep->node) ); };508/* Line 453 of lalr1.cc */
489509#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
490/* Line 480 of lalr1.cc */510 { release_hack( ((*yyvaluep).node) ); };
491#line 492 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"511/* Line 453 of lalr1.cc */
492 break;512#line 513 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
493 case 359: /* "VFO_DeclList" */513 break;
494514 case 367: /* CtxItemDecl */
495/* Line 480 of lalr1.cc */515/* Line 453 of lalr1.cc */
496#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"516#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
497 { release_hack( (yyvaluep->node) ); };517 { release_hack( ((*yyvaluep).node) ); };
498518/* Line 453 of lalr1.cc */
499/* Line 480 of lalr1.cc */519#line 520 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
500#line 501 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"520 break;
501 break;521 case 368: /* CtxItemDecl2 */
502 case 360: /* "VFO_Decl" */522/* Line 453 of lalr1.cc */
503523#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
504/* Line 480 of lalr1.cc */524 { release_hack( ((*yyvaluep).node) ); };
505#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"525/* Line 453 of lalr1.cc */
506 { release_hack( (yyvaluep->node) ); };526#line 527 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
507527 break;
508/* Line 480 of lalr1.cc */528 case 369: /* CtxItemDecl3 */
509#line 510 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"529/* Line 453 of lalr1.cc */
510 break;530#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
511 case 361: /* "DecimalFormatDecl" */531 { release_hack( ((*yyvaluep).node) ); };
512532/* Line 453 of lalr1.cc */
513/* Line 480 of lalr1.cc */533#line 534 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
514#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"534 break;
515 { release_hack( (yyvaluep->node) ); };535 case 370: /* CtxItemDecl4 */
516536/* Line 453 of lalr1.cc */
517/* Line 480 of lalr1.cc */537#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
518#line 519 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"538 { release_hack( ((*yyvaluep).node) ); };
519 break;539/* Line 453 of lalr1.cc */
520 case 362: /* "DecimalFormatParamList" */540#line 541 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
521541 break;
522/* Line 480 of lalr1.cc */542 case 371: /* VarDecl */
523#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"543/* Line 453 of lalr1.cc */
524 { delete (yyvaluep->vstrpair); };544#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
525545 { release_hack( ((*yyvaluep).node) ); };
526/* Line 480 of lalr1.cc */546/* Line 453 of lalr1.cc */
527#line 528 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"547#line 548 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
528 break;548 break;
529 case 363: /* "DecimalFormatParam" */549 case 372: /* VarNameAndType */
530550/* Line 453 of lalr1.cc */
531/* Line 480 of lalr1.cc */551#line 932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
532#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"552 { delete ((*yyvaluep).varnametype); };
533 { delete (yyvaluep->strpair); };553/* Line 453 of lalr1.cc */
534554#line 555 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
535/* Line 480 of lalr1.cc */555 break;
536#line 537 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"556 case 373: /* AnnotationList */
537 break;557/* Line 453 of lalr1.cc */
538 case 365: /* "OptionDecl" */558#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
539559 { release_hack( ((*yyvaluep).node) ); };
540/* Line 480 of lalr1.cc */560/* Line 453 of lalr1.cc */
541#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"561#line 562 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
542 { release_hack( (yyvaluep->node) ); };562 break;
543563 case 374: /* Annotation */
544/* Line 480 of lalr1.cc */564/* Line 453 of lalr1.cc */
545#line 546 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"565#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
546 break;566 { release_hack( ((*yyvaluep).node) ); };
547 case 366: /* "FTOptionDecl" */567/* Line 453 of lalr1.cc */
548568#line 569 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
549/* Line 480 of lalr1.cc */569 break;
550#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"570 case 375: /* AnnotationLiteralList */
551 { release_hack( (yyvaluep->node) ); };571/* Line 453 of lalr1.cc */
552572#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
553/* Line 480 of lalr1.cc */573 { release_hack( ((*yyvaluep).node) ); };
554#line 555 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"574/* Line 453 of lalr1.cc */
555 break;575#line 576 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
556 case 367: /* "CtxItemDecl" */576 break;
557577 case 376: /* FunctionDecl */
558/* Line 480 of lalr1.cc */578/* Line 453 of lalr1.cc */
559#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"579#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
560 { release_hack( (yyvaluep->node) ); };580 { release_hack( ((*yyvaluep).node) ); };
561581/* Line 453 of lalr1.cc */
562/* Line 480 of lalr1.cc */582#line 583 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
563#line 564 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"583 break;
564 break;584 case 377: /* FunctionDecl2 */
565 case 368: /* "CtxItemDecl2" */585/* Line 453 of lalr1.cc */
566586#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
567/* Line 480 of lalr1.cc */587 { release_hack( ((*yyvaluep).node) ); };
568#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"588/* Line 453 of lalr1.cc */
569 { release_hack( (yyvaluep->node) ); };589#line 590 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
570590 break;
571/* Line 480 of lalr1.cc */591 case 378: /* FunctionDeclSimple */
572#line 573 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"592/* Line 453 of lalr1.cc */
573 break;593#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
574 case 369: /* "CtxItemDecl3" */594 { release_hack( ((*yyvaluep).node) ); };
575595/* Line 453 of lalr1.cc */
576/* Line 480 of lalr1.cc */596#line 597 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
577#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"597 break;
578 { release_hack( (yyvaluep->node) ); };598 case 379: /* FunctionDeclUpdating */
579599/* Line 453 of lalr1.cc */
580/* Line 480 of lalr1.cc */600#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
581#line 582 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"601 { release_hack( ((*yyvaluep).node) ); };
582 break;602/* Line 453 of lalr1.cc */
583 case 370: /* "CtxItemDecl4" */603#line 604 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
584604 break;
585/* Line 480 of lalr1.cc */605 case 380: /* FunctionSig */
586#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"606/* Line 453 of lalr1.cc */
587 { release_hack( (yyvaluep->node) ); };607#line 932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
588608 { delete ((*yyvaluep).fnsig); };
589/* Line 480 of lalr1.cc */609/* Line 453 of lalr1.cc */
590#line 591 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"610#line 611 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
591 break;611 break;
592 case 371: /* "VarDecl" */612 case 381: /* ParamList */
593613/* Line 453 of lalr1.cc */
594/* Line 480 of lalr1.cc */614#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
595#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"615 { release_hack( ((*yyvaluep).node) ); };
596 { release_hack( (yyvaluep->node) ); };616/* Line 453 of lalr1.cc */
597617#line 618 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
598/* Line 480 of lalr1.cc */618 break;
599#line 600 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"619 case 382: /* Param */
600 break;620/* Line 453 of lalr1.cc */
601 case 372: /* "VarNameAndType" */621#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
602622 { release_hack( ((*yyvaluep).node) ); };
603/* Line 480 of lalr1.cc */623/* Line 453 of lalr1.cc */
604#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"624#line 625 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
605 { delete (yyvaluep->varnametype); };625 break;
606626 case 383: /* CollectionDecl */
607/* Line 480 of lalr1.cc */627/* Line 453 of lalr1.cc */
608#line 609 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"628#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
609 break;629 { release_hack( ((*yyvaluep).node) ); };
610 case 373: /* "AnnotationList" */630/* Line 453 of lalr1.cc */
611631#line 632 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
612/* Line 480 of lalr1.cc */632 break;
613#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"633 case 385: /* IndexDecl */
614 { release_hack( (yyvaluep->node) ); };634/* Line 453 of lalr1.cc */
615635#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
616/* Line 480 of lalr1.cc */636 { release_hack( ((*yyvaluep).node) ); };
617#line 618 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"637/* Line 453 of lalr1.cc */
618 break;638#line 639 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
619 case 374: /* "Annotation" */639 break;
620640 case 386: /* IndexKeyList */
621/* Line 480 of lalr1.cc */641/* Line 453 of lalr1.cc */
622#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"642#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
623 { release_hack( (yyvaluep->node) ); };643 { release_hack( ((*yyvaluep).node) ); };
624644/* Line 453 of lalr1.cc */
625/* Line 480 of lalr1.cc */645#line 646 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
626#line 627 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"646 break;
627 break;647 case 387: /* IndexKeySpec */
628 case 375: /* "AnnotationLiteralList" */648/* Line 453 of lalr1.cc */
629649#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
630/* Line 480 of lalr1.cc */650 { release_hack( ((*yyvaluep).node) ); };
631#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"651/* Line 453 of lalr1.cc */
632 { release_hack( (yyvaluep->node) ); };652#line 653 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
633653 break;
634/* Line 480 of lalr1.cc */654 case 388: /* IntegrityConstraintDecl */
635#line 636 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"655/* Line 453 of lalr1.cc */
636 break;656#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
637 case 376: /* "FunctionDecl" */657 { release_hack( ((*yyvaluep).node) ); };
638658/* Line 453 of lalr1.cc */
639/* Line 480 of lalr1.cc */659#line 660 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
640#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"660 break;
641 { release_hack( (yyvaluep->node) ); };661 case 389: /* QueryBody */
642662/* Line 453 of lalr1.cc */
643/* Line 480 of lalr1.cc */663#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
644#line 645 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"664 { release_hack( ((*yyvaluep).expr) ); };
645 break;665/* Line 453 of lalr1.cc */
646 case 377: /* "FunctionDecl2" */666#line 667 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
647667 break;
648/* Line 480 of lalr1.cc */668 case 390: /* StatementsAndOptionalExprTop */
649#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"669/* Line 453 of lalr1.cc */
650 { release_hack( (yyvaluep->node) ); };670#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
651671 { release_hack( ((*yyvaluep).expr) ); };
652/* Line 480 of lalr1.cc */672/* Line 453 of lalr1.cc */
653#line 654 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"673#line 674 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
654 break;674 break;
655 case 378: /* "FunctionDeclSimple" */675 case 391: /* StatementsAndOptionalExpr */
656676/* Line 453 of lalr1.cc */
657/* Line 480 of lalr1.cc */677#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
658#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"678 { release_hack( ((*yyvaluep).expr) ); };
659 { release_hack( (yyvaluep->node) ); };679/* Line 453 of lalr1.cc */
660680#line 681 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
661/* Line 480 of lalr1.cc */681 break;
662#line 663 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"682 case 392: /* StatementsAndExpr */
663 break;683/* Line 453 of lalr1.cc */
664 case 379: /* "FunctionDeclUpdating" */684#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
665685 { release_hack( ((*yyvaluep).expr) ); };
666/* Line 480 of lalr1.cc */686/* Line 453 of lalr1.cc */
667#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"687#line 688 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
668 { release_hack( (yyvaluep->node) ); };688 break;
669689 case 393: /* Statements */
670/* Line 480 of lalr1.cc */690/* Line 453 of lalr1.cc */
671#line 672 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"691#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
672 break;692 { release_hack( ((*yyvaluep).expr) ); };
673 case 380: /* "FunctionSig" */693/* Line 453 of lalr1.cc */
674694#line 695 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
675/* Line 480 of lalr1.cc */695 break;
676#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"696 case 394: /* Statement */
677 { delete (yyvaluep->fnsig); };697/* Line 453 of lalr1.cc */
678698#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
679/* Line 480 of lalr1.cc */699 { release_hack( ((*yyvaluep).expr) ); };
680#line 681 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"700/* Line 453 of lalr1.cc */
681 break;701#line 702 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
682 case 381: /* "ParamList" */702 break;
683703 case 395: /* BlockStatement */
684/* Line 480 of lalr1.cc */704/* Line 453 of lalr1.cc */
685#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"705#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
686 { release_hack( (yyvaluep->node) ); };706 { release_hack( ((*yyvaluep).expr) ); };
687707/* Line 453 of lalr1.cc */
688/* Line 480 of lalr1.cc */708#line 709 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
689#line 690 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"709 break;
690 break;710 case 396: /* BlockExpr */
691 case 382: /* "Param" */711/* Line 453 of lalr1.cc */
692712#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
693/* Line 480 of lalr1.cc */713 { release_hack( ((*yyvaluep).expr) ); };
694#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"714/* Line 453 of lalr1.cc */
695 { release_hack( (yyvaluep->node) ); };715#line 716 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
696716 break;
697/* Line 480 of lalr1.cc */717 case 397: /* EnclosedStatementsAndOptionalExpr */
698#line 699 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"718/* Line 453 of lalr1.cc */
699 break;719#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
700 case 383: /* "CollectionDecl" */720 { release_hack( ((*yyvaluep).expr) ); };
701721/* Line 453 of lalr1.cc */
702/* Line 480 of lalr1.cc */722#line 723 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
703#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"723 break;
704 { release_hack( (yyvaluep->node) ); };724 case 398: /* VarDeclStatement */
705725/* Line 453 of lalr1.cc */
706/* Line 480 of lalr1.cc */726#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
707#line 708 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"727 { release_hack( ((*yyvaluep).expr) ); };
708 break;728/* Line 453 of lalr1.cc */
709 case 385: /* "IndexDecl" */729#line 730 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
710730 break;
711/* Line 480 of lalr1.cc */731 case 401: /* AssignStatement */
712#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"732/* Line 453 of lalr1.cc */
713 { release_hack( (yyvaluep->node) ); };733#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
714734 { release_hack( ((*yyvaluep).expr) ); };
715/* Line 480 of lalr1.cc */735/* Line 453 of lalr1.cc */
716#line 717 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"736#line 737 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
717 break;737 break;
718 case 386: /* "IndexKeyList" */738 case 402: /* ApplyStatement */
719739/* Line 453 of lalr1.cc */
720/* Line 480 of lalr1.cc */740#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
721#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"741 { release_hack( ((*yyvaluep).expr) ); };
722 { release_hack( (yyvaluep->node) ); };742/* Line 453 of lalr1.cc */
723743#line 744 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
724/* Line 480 of lalr1.cc */744 break;
725#line 726 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"745 case 403: /* ExitStatement */
726 break;746/* Line 453 of lalr1.cc */
727 case 387: /* "IndexKeySpec" */747#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
728748 { release_hack( ((*yyvaluep).expr) ); };
729/* Line 480 of lalr1.cc */749/* Line 453 of lalr1.cc */
730#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"750#line 751 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
731 { release_hack( (yyvaluep->node) ); };751 break;
732752 case 404: /* WhileStatement */
733/* Line 480 of lalr1.cc */753/* Line 453 of lalr1.cc */
734#line 735 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"754#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
735 break;755 { release_hack( ((*yyvaluep).expr) ); };
736 case 388: /* "IntegrityConstraintDecl" */756/* Line 453 of lalr1.cc */
737757#line 758 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
738/* Line 480 of lalr1.cc */758 break;
739#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"759 case 405: /* FlowCtlStatement */
740 { release_hack( (yyvaluep->node) ); };760/* Line 453 of lalr1.cc */
741761#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
742/* Line 480 of lalr1.cc */762 { release_hack( ((*yyvaluep).expr) ); };
743#line 744 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"763/* Line 453 of lalr1.cc */
744 break;764#line 765 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
745 case 389: /* "QueryBody" */765 break;
746766 case 406: /* FLWORStatement */
747/* Line 480 of lalr1.cc */767/* Line 453 of lalr1.cc */
748#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"768#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
749 { release_hack( (yyvaluep->expr) ); };769 { release_hack( ((*yyvaluep).expr) ); };
750770/* Line 453 of lalr1.cc */
751/* Line 480 of lalr1.cc */771#line 772 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
752#line 753 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"772 break;
753 break;773 case 407: /* ReturnStatement */
754 case 390: /* "StatementsAndOptionalExprTop" */774/* Line 453 of lalr1.cc */
755775#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
756/* Line 480 of lalr1.cc */776 { release_hack( ((*yyvaluep).expr) ); };
757#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"777/* Line 453 of lalr1.cc */
758 { release_hack( (yyvaluep->expr) ); };778#line 779 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
759779 break;
760/* Line 480 of lalr1.cc */780 case 408: /* IfStatement */
761#line 762 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"781/* Line 453 of lalr1.cc */
762 break;782#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
763 case 391: /* "StatementsAndOptionalExpr" */783 { release_hack( ((*yyvaluep).expr) ); };
764784/* Line 453 of lalr1.cc */
765/* Line 480 of lalr1.cc */785#line 786 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
766#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"786 break;
767 { release_hack( (yyvaluep->expr) ); };787 case 409: /* TryStatement */
768788/* Line 453 of lalr1.cc */
769/* Line 480 of lalr1.cc */789#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
770#line 771 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"790 { release_hack( ((*yyvaluep).expr) ); };
771 break;791/* Line 453 of lalr1.cc */
772 case 392: /* "StatementsAndExpr" */792#line 793 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
773793 break;
774/* Line 480 of lalr1.cc */794 case 410: /* CatchListStatement */
775#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"795/* Line 453 of lalr1.cc */
776 { release_hack( (yyvaluep->expr) ); };796#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
777797 { release_hack( ((*yyvaluep).expr) ); };
778/* Line 480 of lalr1.cc */798/* Line 453 of lalr1.cc */
779#line 780 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"799#line 800 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
780 break;800 break;
781 case 393: /* "Statements" */801 case 411: /* CatchStatement */
782802/* Line 453 of lalr1.cc */
783/* Line 480 of lalr1.cc */803#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
784#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"804 { release_hack( ((*yyvaluep).expr) ); };
785 { release_hack( (yyvaluep->expr) ); };805/* Line 453 of lalr1.cc */
786806#line 807 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
787/* Line 480 of lalr1.cc */807 break;
788#line 789 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"808 case 412: /* Expr */
789 break;809/* Line 453 of lalr1.cc */
790 case 394: /* "Statement" */810#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
791811 { release_hack( ((*yyvaluep).expr) ); };
792/* Line 480 of lalr1.cc */812/* Line 453 of lalr1.cc */
793#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"813#line 814 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
794 { release_hack( (yyvaluep->expr) ); };814 break;
795815 case 413: /* ExprSingle */
796/* Line 480 of lalr1.cc */816/* Line 453 of lalr1.cc */
797#line 798 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"817#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
798 break;818 { release_hack( ((*yyvaluep).expr) ); };
799 case 395: /* "BlockStatement" */819/* Line 453 of lalr1.cc */
800820#line 821 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
801/* Line 480 of lalr1.cc */821 break;
802#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"822 case 414: /* ExprSimple */
803 { release_hack( (yyvaluep->expr) ); };823/* Line 453 of lalr1.cc */
804824#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
805/* Line 480 of lalr1.cc */825 { release_hack( ((*yyvaluep).expr) ); };
806#line 807 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"826/* Line 453 of lalr1.cc */
807 break;827#line 828 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
808 case 396: /* "BlockExpr" */828 break;
809829 case 415: /* FLWORExpr */
810/* Line 480 of lalr1.cc */830/* Line 453 of lalr1.cc */
811#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"831#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
812 { release_hack( (yyvaluep->expr) ); };832 { release_hack( ((*yyvaluep).expr) ); };
813833/* Line 453 of lalr1.cc */
814/* Line 480 of lalr1.cc */834#line 835 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
815#line 816 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"835 break;
816 break;836 case 416: /* ReturnExpr */
817 case 397: /* "EnclosedStatementsAndOptionalExpr" */837/* Line 453 of lalr1.cc */
818838#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
819/* Line 480 of lalr1.cc */839 { release_hack( ((*yyvaluep).expr) ); };
820#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"840/* Line 453 of lalr1.cc */
821 { release_hack( (yyvaluep->expr) ); };841#line 842 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
822842 break;
823/* Line 480 of lalr1.cc */843 case 419: /* FLWORWinCond */
824#line 825 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"844/* Line 453 of lalr1.cc */
825 break;845#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
826 case 398: /* "VarDeclStatement" */846 { release_hack( ((*yyvaluep).node) ); };
827847/* Line 453 of lalr1.cc */
828/* Line 480 of lalr1.cc */848#line 849 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
829#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"849 break;
830 { release_hack( (yyvaluep->expr) ); };850 case 420: /* WindowClause */
831851/* Line 453 of lalr1.cc */
832/* Line 480 of lalr1.cc */852#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
833#line 834 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"853 { release_hack( ((*yyvaluep).node) ); };
834 break;854/* Line 453 of lalr1.cc */
835 case 401: /* "AssignStatement" */855#line 856 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
836856 break;
837/* Line 480 of lalr1.cc */857 case 421: /* CountClause */
838#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"858/* Line 453 of lalr1.cc */
839 { release_hack( (yyvaluep->expr) ); };859#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
840860 { release_hack( ((*yyvaluep).node) ); };
841/* Line 480 of lalr1.cc */861/* Line 453 of lalr1.cc */
842#line 843 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"862#line 863 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
843 break;863 break;
844 case 402: /* "ApplyStatement" */864 case 422: /* ForLetWinClause */
845865/* Line 453 of lalr1.cc */
846/* Line 480 of lalr1.cc */866#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
847#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"867 { release_hack( ((*yyvaluep).node) ); };
848 { release_hack( (yyvaluep->expr) ); };868/* Line 453 of lalr1.cc */
849869#line 870 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
850/* Line 480 of lalr1.cc */870 break;
851#line 852 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"871 case 424: /* FLWORClauseList */
852 break;872/* Line 453 of lalr1.cc */
853 case 403: /* "ExitStatement" */873#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
854874 { release_hack( ((*yyvaluep).node) ); };
855/* Line 480 of lalr1.cc */875/* Line 453 of lalr1.cc */
856#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"876#line 877 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
857 { release_hack( (yyvaluep->expr) ); };877 break;
858878 case 425: /* ForClause */
859/* Line 480 of lalr1.cc */879/* Line 453 of lalr1.cc */
860#line 861 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"880#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
861 break;881 { release_hack( ((*yyvaluep).node) ); };
862 case 404: /* "WhileStatement" */882/* Line 453 of lalr1.cc */
863883#line 884 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
864/* Line 480 of lalr1.cc */884 break;
865#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"885 case 426: /* VarInDeclList */
866 { release_hack( (yyvaluep->expr) ); };886/* Line 453 of lalr1.cc */
867887#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
868/* Line 480 of lalr1.cc */888 { release_hack( ((*yyvaluep).node) ); };
869#line 870 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"889/* Line 453 of lalr1.cc */
870 break;890#line 891 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
871 case 405: /* "FlowCtlStatement" */891 break;
872892 case 427: /* VarInDecl */
873/* Line 480 of lalr1.cc */893/* Line 453 of lalr1.cc */
874#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"894#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
875 { release_hack( (yyvaluep->expr) ); };895 { release_hack( ((*yyvaluep).node) ); };
876896/* Line 453 of lalr1.cc */
877/* Line 480 of lalr1.cc */897#line 898 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
878#line 879 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"898 break;
879 break;899 case 428: /* PositionalVar */
880 case 406: /* "FLWORStatement" */900/* Line 453 of lalr1.cc */
881901#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
882/* Line 480 of lalr1.cc */902 { release_hack( ((*yyvaluep).node) ); };
883#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"903/* Line 453 of lalr1.cc */
884 { release_hack( (yyvaluep->expr) ); };904#line 905 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
885905 break;
886/* Line 480 of lalr1.cc */906 case 429: /* FTScoreVar */
887#line 888 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"907/* Line 453 of lalr1.cc */
888 break;908#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
889 case 407: /* "ReturnStatement" */909 { release_hack( ((*yyvaluep).node) ); };
890910/* Line 453 of lalr1.cc */
891/* Line 480 of lalr1.cc */911#line 912 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
892#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"912 break;
893 { release_hack( (yyvaluep->expr) ); };913 case 430: /* LetClause */
894914/* Line 453 of lalr1.cc */
895/* Line 480 of lalr1.cc */915#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
896#line 897 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"916 { release_hack( ((*yyvaluep).node) ); };
897 break;917/* Line 453 of lalr1.cc */
898 case 408: /* "IfStatement" */918#line 919 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
899919 break;
900/* Line 480 of lalr1.cc */920 case 431: /* VarGetsDeclList */
901#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"921/* Line 453 of lalr1.cc */
902 { release_hack( (yyvaluep->expr) ); };922#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
903923 { release_hack( ((*yyvaluep).node) ); };
904/* Line 480 of lalr1.cc */924/* Line 453 of lalr1.cc */
905#line 906 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"925#line 926 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
906 break;926 break;
907 case 409: /* "TryStatement" */927 case 432: /* VarGetsDecl */
908928/* Line 453 of lalr1.cc */
909/* Line 480 of lalr1.cc */929#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
910#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"930 { release_hack( ((*yyvaluep).node) ); };
911 { release_hack( (yyvaluep->expr) ); };931/* Line 453 of lalr1.cc */
912932#line 933 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
913/* Line 480 of lalr1.cc */933 break;
914#line 915 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"934 case 433: /* WindowVarDecl */
915 break;935/* Line 453 of lalr1.cc */
916 case 410: /* "CatchListStatement" */936#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
917937 { release_hack( ((*yyvaluep).node) ); };
918/* Line 480 of lalr1.cc */938/* Line 453 of lalr1.cc */
919#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"939#line 940 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
920 { release_hack( (yyvaluep->expr) ); };940 break;
921941 case 434: /* WindowVars */
922/* Line 480 of lalr1.cc */942/* Line 453 of lalr1.cc */
923#line 924 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"943#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
924 break;944 { release_hack( ((*yyvaluep).node) ); };
925 case 411: /* "CatchStatement" */945/* Line 453 of lalr1.cc */
926946#line 947 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
927/* Line 480 of lalr1.cc */947 break;
928#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"948 case 435: /* WindowVars3 */
929 { release_hack( (yyvaluep->expr) ); };949/* Line 453 of lalr1.cc */
930950#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
931/* Line 480 of lalr1.cc */951 { release_hack( ((*yyvaluep).node) ); };
932#line 933 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"952/* Line 453 of lalr1.cc */
933 break;953#line 954 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
934 case 412: /* "Expr" */954 break;
935955 case 436: /* WindowVars2 */
936/* Line 480 of lalr1.cc */956/* Line 453 of lalr1.cc */
937#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"957#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
938 { release_hack( (yyvaluep->expr) ); };958 { release_hack( ((*yyvaluep).node) ); };
939959/* Line 453 of lalr1.cc */
940/* Line 480 of lalr1.cc */960#line 961 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
941#line 942 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"961 break;
942 break;962 case 437: /* WhereClause */
943 case 413: /* "ExprSingle" */963/* Line 453 of lalr1.cc */
944964#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
945/* Line 480 of lalr1.cc */965 { release_hack( ((*yyvaluep).node) ); };
946#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"966/* Line 453 of lalr1.cc */
947 { release_hack( (yyvaluep->expr) ); };967#line 968 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
948968 break;
949/* Line 480 of lalr1.cc */969 case 438: /* GroupByClause */
950#line 951 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"970/* Line 453 of lalr1.cc */
951 break;971#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
952 case 414: /* "ExprSimple" */972 { release_hack( ((*yyvaluep).node) ); };
953973/* Line 453 of lalr1.cc */
954/* Line 480 of lalr1.cc */974#line 975 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
955#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"975 break;
956 { release_hack( (yyvaluep->expr) ); };976 case 439: /* GroupSpecList */
957977/* Line 453 of lalr1.cc */
958/* Line 480 of lalr1.cc */978#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
959#line 960 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"979 { release_hack( ((*yyvaluep).node) ); };
960 break;980/* Line 453 of lalr1.cc */
961 case 415: /* "FLWORExpr" */981#line 982 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
962982 break;
963/* Line 480 of lalr1.cc */983 case 440: /* GroupSpec */
964#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"984/* Line 453 of lalr1.cc */
965 { release_hack( (yyvaluep->expr) ); };985#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
966986 { release_hack( ((*yyvaluep).node) ); };
967/* Line 480 of lalr1.cc */987/* Line 453 of lalr1.cc */
968#line 969 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"988#line 989 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
969 break;989 break;
970 case 416: /* "ReturnExpr" */990 case 441: /* GroupCollationSpec */
971991/* Line 453 of lalr1.cc */
972/* Line 480 of lalr1.cc */992#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
973#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"993 { release_hack( ((*yyvaluep).node) ); };
974 { release_hack( (yyvaluep->expr) ); };994/* Line 453 of lalr1.cc */
975995#line 996 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
976/* Line 480 of lalr1.cc */996 break;
977#line 978 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"997 case 442: /* OrderByClause */
978 break;998/* Line 453 of lalr1.cc */
979 case 419: /* "FLWORWinCond" */999#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
9801000 { release_hack( ((*yyvaluep).node) ); };
981/* Line 480 of lalr1.cc */1001/* Line 453 of lalr1.cc */
982#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1002#line 1003 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
983 { release_hack( (yyvaluep->node) ); };1003 break;
9841004 case 443: /* OrderSpecList */
985/* Line 480 of lalr1.cc */1005/* Line 453 of lalr1.cc */
986#line 987 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1006#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
987 break;1007 { release_hack( ((*yyvaluep).node) ); };
988 case 420: /* "WindowClause" */1008/* Line 453 of lalr1.cc */
9891009#line 1010 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
990/* Line 480 of lalr1.cc */1010 break;
991#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1011 case 444: /* OrderSpec */
992 { release_hack( (yyvaluep->node) ); };1012/* Line 453 of lalr1.cc */
9931013#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
994/* Line 480 of lalr1.cc */1014 { release_hack( ((*yyvaluep).node) ); };
995#line 996 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1015/* Line 453 of lalr1.cc */
996 break;1016#line 1017 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
997 case 421: /* "CountClause" */1017 break;
9981018 case 445: /* OrderModifier */
999/* Line 480 of lalr1.cc */1019/* Line 453 of lalr1.cc */
1000#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1020#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1001 { release_hack( (yyvaluep->node) ); };1021 { release_hack( ((*yyvaluep).node) ); };
10021022/* Line 453 of lalr1.cc */
1003/* Line 480 of lalr1.cc */1023#line 1024 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1004#line 1005 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1024 break;
1005 break;1025 case 446: /* OrderDirSpec */
1006 case 422: /* "ForLetWinClause" */1026/* Line 453 of lalr1.cc */
10071027#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1008/* Line 480 of lalr1.cc */1028 { release_hack( ((*yyvaluep).node) ); };
1009#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1029/* Line 453 of lalr1.cc */
1010 { release_hack( (yyvaluep->node) ); };1030#line 1031 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
10111031 break;
1012/* Line 480 of lalr1.cc */1032 case 447: /* OrderEmptySpec */
1013#line 1014 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1033/* Line 453 of lalr1.cc */
1014 break;1034#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1015 case 424: /* "FLWORClauseList" */1035 { release_hack( ((*yyvaluep).node) ); };
10161036/* Line 453 of lalr1.cc */
1017/* Line 480 of lalr1.cc */1037#line 1038 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1018#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1038 break;
1019 { release_hack( (yyvaluep->node) ); };1039 case 448: /* OrderCollationSpec */
10201040/* Line 453 of lalr1.cc */
1021/* Line 480 of lalr1.cc */1041#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1022#line 1023 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1042 { release_hack( ((*yyvaluep).node) ); };
1023 break;1043/* Line 453 of lalr1.cc */
1024 case 425: /* "ForClause" */1044#line 1045 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
10251045 break;
1026/* Line 480 of lalr1.cc */1046 case 449: /* QuantifiedExpr */
1027#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1047/* Line 453 of lalr1.cc */
1028 { release_hack( (yyvaluep->node) ); };1048#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
10291049 { release_hack( ((*yyvaluep).expr) ); };
1030/* Line 480 of lalr1.cc */1050/* Line 453 of lalr1.cc */
1031#line 1032 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1051#line 1052 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1032 break;1052 break;
1033 case 426: /* "VarInDeclList" */1053 case 450: /* QVarInDeclList */
10341054/* Line 453 of lalr1.cc */
1035/* Line 480 of lalr1.cc */1055#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1036#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1056 { release_hack( ((*yyvaluep).node) ); };
1037 { release_hack( (yyvaluep->node) ); };1057/* Line 453 of lalr1.cc */
10381058#line 1059 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1039/* Line 480 of lalr1.cc */1059 break;
1040#line 1041 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1060 case 451: /* QVarInDecl */
1041 break;1061/* Line 453 of lalr1.cc */
1042 case 427: /* "VarInDecl" */1062#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
10431063 { release_hack( ((*yyvaluep).node) ); };
1044/* Line 480 of lalr1.cc */1064/* Line 453 of lalr1.cc */
1045#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1065#line 1066 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1046 { release_hack( (yyvaluep->node) ); };1066 break;
10471067 case 452: /* SwitchExpr */
1048/* Line 480 of lalr1.cc */1068/* Line 453 of lalr1.cc */
1049#line 1050 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1069#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1050 break;1070 { release_hack( ((*yyvaluep).expr) ); };
1051 case 428: /* "PositionalVar" */1071/* Line 453 of lalr1.cc */
10521072#line 1073 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1053/* Line 480 of lalr1.cc */1073 break;
1054#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1074 case 453: /* SwitchCaseClauseList */
1055 { release_hack( (yyvaluep->node) ); };1075/* Line 453 of lalr1.cc */
10561076#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1057/* Line 480 of lalr1.cc */1077 { release_hack( ((*yyvaluep).node) ); };
1058#line 1059 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1078/* Line 453 of lalr1.cc */
1059 break;1079#line 1080 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1060 case 429: /* "FTScoreVar" */1080 break;
10611081 case 454: /* SwitchCaseClause */
1062/* Line 480 of lalr1.cc */1082/* Line 453 of lalr1.cc */
1063#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1083#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1064 { release_hack( (yyvaluep->node) ); };1084 { release_hack( ((*yyvaluep).node) ); };
10651085/* Line 453 of lalr1.cc */
1066/* Line 480 of lalr1.cc */1086#line 1087 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1067#line 1068 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1087 break;
1068 break;1088 case 455: /* SwitchCaseOperandList */
1069 case 430: /* "LetClause" */1089/* Line 453 of lalr1.cc */
10701090#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1071/* Line 480 of lalr1.cc */1091 { release_hack( ((*yyvaluep).node) ); };
1072#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1092/* Line 453 of lalr1.cc */
1073 { release_hack( (yyvaluep->node) ); };1093#line 1094 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
10741094 break;
1075/* Line 480 of lalr1.cc */1095 case 456: /* SwitchStatement */
1076#line 1077 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1096/* Line 453 of lalr1.cc */
1077 break;1097#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1078 case 431: /* "VarGetsDeclList" */1098 { release_hack( ((*yyvaluep).expr) ); };
10791099/* Line 453 of lalr1.cc */
1080/* Line 480 of lalr1.cc */1100#line 1101 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1081#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1101 break;
1082 { release_hack( (yyvaluep->node) ); };1102 case 459: /* TypeswitchExpr */
10831103/* Line 453 of lalr1.cc */
1084/* Line 480 of lalr1.cc */1104#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1085#line 1086 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1105 { release_hack( ((*yyvaluep).expr) ); };
1086 break;1106/* Line 453 of lalr1.cc */
1087 case 432: /* "VarGetsDecl" */1107#line 1108 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
10881108 break;
1089/* Line 480 of lalr1.cc */1109 case 460: /* TypeswitchStatement */
1090#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1110/* Line 453 of lalr1.cc */
1091 { release_hack( (yyvaluep->node) ); };1111#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
10921112 { release_hack( ((*yyvaluep).expr) ); };
1093/* Line 480 of lalr1.cc */1113/* Line 453 of lalr1.cc */
1094#line 1095 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1114#line 1115 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1095 break;1115 break;
1096 case 433: /* "WindowVarDecl" */1116 case 461: /* CaseClauseList */
10971117/* Line 453 of lalr1.cc */
1098/* Line 480 of lalr1.cc */1118#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1099#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1119 { release_hack( ((*yyvaluep).node) ); };
1100 { release_hack( (yyvaluep->node) ); };1120/* Line 453 of lalr1.cc */
11011121#line 1122 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1102/* Line 480 of lalr1.cc */1122 break;
1103#line 1104 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1123 case 462: /* CaseClause */
1104 break;1124/* Line 453 of lalr1.cc */
1105 case 434: /* "WindowVars" */1125#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
11061126 { release_hack( ((*yyvaluep).node) ); };
1107/* Line 480 of lalr1.cc */1127/* Line 453 of lalr1.cc */
1108#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1128#line 1129 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1109 { release_hack( (yyvaluep->node) ); };1129 break;
11101130 case 465: /* IfExpr */
1111/* Line 480 of lalr1.cc */1131/* Line 453 of lalr1.cc */
1112#line 1113 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1132#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1113 break;1133 { release_hack( ((*yyvaluep).expr) ); };
1114 case 435: /* "WindowVars3" */1134/* Line 453 of lalr1.cc */
11151135#line 1136 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1116/* Line 480 of lalr1.cc */1136 break;
1117#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1137 case 466: /* OrExpr */
1118 { release_hack( (yyvaluep->node) ); };1138/* Line 453 of lalr1.cc */
11191139#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1120/* Line 480 of lalr1.cc */1140 { release_hack( ((*yyvaluep).expr) ); };
1121#line 1122 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1141/* Line 453 of lalr1.cc */
1122 break;1142#line 1143 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1123 case 436: /* "WindowVars2" */1143 break;
11241144 case 467: /* AndExpr */
1125/* Line 480 of lalr1.cc */1145/* Line 453 of lalr1.cc */
1126#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1146#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1127 { release_hack( (yyvaluep->node) ); };1147 { release_hack( ((*yyvaluep).expr) ); };
11281148/* Line 453 of lalr1.cc */
1129/* Line 480 of lalr1.cc */1149#line 1150 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1130#line 1131 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1150 break;
1131 break;1151 case 468: /* ComparisonExpr */
1132 case 437: /* "WhereClause" */1152/* Line 453 of lalr1.cc */
11331153#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1134/* Line 480 of lalr1.cc */1154 { release_hack( ((*yyvaluep).expr) ); };
1135#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1155/* Line 453 of lalr1.cc */
1136 { release_hack( (yyvaluep->node) ); };1156#line 1157 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
11371157 break;
1138/* Line 480 of lalr1.cc */1158 case 470: /* FTContainsExpr */
1139#line 1140 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1159/* Line 453 of lalr1.cc */
1140 break;1160#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1141 case 438: /* "GroupByClause" */1161 { release_hack( ((*yyvaluep).expr) ); };
11421162/* Line 453 of lalr1.cc */
1143/* Line 480 of lalr1.cc */1163#line 1164 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1144#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1164 break;
1145 { release_hack( (yyvaluep->node) ); };1165 case 471: /* StringConcatExpr */
11461166/* Line 453 of lalr1.cc */
1147/* Line 480 of lalr1.cc */1167#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1148#line 1149 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1168 { release_hack( ((*yyvaluep).expr) ); };
1149 break;1169/* Line 453 of lalr1.cc */
1150 case 439: /* "GroupSpecList" */1170#line 1171 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
11511171 break;
1152/* Line 480 of lalr1.cc */1172 case 472: /* opt_FTIgnoreOption */
1153#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1173/* Line 453 of lalr1.cc */
1154 { release_hack( (yyvaluep->node) ); };1174#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
11551175 { release_hack( ((*yyvaluep).node) ); };
1156/* Line 480 of lalr1.cc */1176/* Line 453 of lalr1.cc */
1157#line 1158 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1177#line 1178 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1158 break;1178 break;
1159 case 440: /* "GroupSpec" */1179 case 473: /* RangeExpr */
11601180/* Line 453 of lalr1.cc */
1161/* Line 480 of lalr1.cc */1181#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1162#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1182 { release_hack( ((*yyvaluep).expr) ); };
1163 { release_hack( (yyvaluep->node) ); };1183/* Line 453 of lalr1.cc */
11641184#line 1185 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1165/* Line 480 of lalr1.cc */1185 break;
1166#line 1167 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1186 case 474: /* AdditiveExpr */
1167 break;1187/* Line 453 of lalr1.cc */
1168 case 441: /* "GroupCollationSpec" */1188#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
11691189 { release_hack( ((*yyvaluep).expr) ); };
1170/* Line 480 of lalr1.cc */1190/* Line 453 of lalr1.cc */
1171#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1191#line 1192 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1172 { release_hack( (yyvaluep->node) ); };1192 break;
11731193 case 475: /* MultiplicativeExpr */
1174/* Line 480 of lalr1.cc */1194/* Line 453 of lalr1.cc */
1175#line 1176 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1195#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1176 break;1196 { release_hack( ((*yyvaluep).expr) ); };
1177 case 442: /* "OrderByClause" */1197/* Line 453 of lalr1.cc */
11781198#line 1199 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1179/* Line 480 of lalr1.cc */1199 break;
1180#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1200 case 476: /* UnionExpr */
1181 { release_hack( (yyvaluep->node) ); };1201/* Line 453 of lalr1.cc */
11821202#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1183/* Line 480 of lalr1.cc */1203 { release_hack( ((*yyvaluep).expr) ); };
1184#line 1185 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1204/* Line 453 of lalr1.cc */
1185 break;1205#line 1206 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1186 case 443: /* "OrderSpecList" */1206 break;
11871207 case 477: /* IntersectExceptExpr */
1188/* Line 480 of lalr1.cc */1208/* Line 453 of lalr1.cc */
1189#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1209#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1190 { release_hack( (yyvaluep->node) ); };1210 { release_hack( ((*yyvaluep).expr) ); };
11911211/* Line 453 of lalr1.cc */
1192/* Line 480 of lalr1.cc */1212#line 1213 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1193#line 1194 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1213 break;
1194 break;1214 case 478: /* InstanceofExpr */
1195 case 444: /* "OrderSpec" */1215/* Line 453 of lalr1.cc */
11961216#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1197/* Line 480 of lalr1.cc */1217 { release_hack( ((*yyvaluep).expr) ); };
1198#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1218/* Line 453 of lalr1.cc */
1199 { release_hack( (yyvaluep->node) ); };1219#line 1220 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
12001220 break;
1201/* Line 480 of lalr1.cc */1221 case 479: /* TreatExpr */
1202#line 1203 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1222/* Line 453 of lalr1.cc */
1203 break;1223#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1204 case 445: /* "OrderModifier" */1224 { release_hack( ((*yyvaluep).expr) ); };
12051225/* Line 453 of lalr1.cc */
1206/* Line 480 of lalr1.cc */1226#line 1227 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1207#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1227 break;
1208 { release_hack( (yyvaluep->node) ); };1228 case 480: /* CastableExpr */
12091229/* Line 453 of lalr1.cc */
1210/* Line 480 of lalr1.cc */1230#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1211#line 1212 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1231 { release_hack( ((*yyvaluep).expr) ); };
1212 break;1232/* Line 453 of lalr1.cc */
1213 case 446: /* "OrderDirSpec" */1233#line 1234 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
12141234 break;
1215/* Line 480 of lalr1.cc */1235 case 481: /* CastExpr */
1216#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1236/* Line 453 of lalr1.cc */
1217 { release_hack( (yyvaluep->node) ); };1237#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
12181238 { release_hack( ((*yyvaluep).expr) ); };
1219/* Line 480 of lalr1.cc */1239/* Line 453 of lalr1.cc */
1220#line 1221 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1240#line 1241 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1221 break;1241 break;
1222 case 447: /* "OrderEmptySpec" */1242 case 482: /* UnaryExpr */
12231243/* Line 453 of lalr1.cc */
1224/* Line 480 of lalr1.cc */1244#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1225#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1245 { release_hack( ((*yyvaluep).expr) ); };
1226 { release_hack( (yyvaluep->node) ); };1246/* Line 453 of lalr1.cc */
12271247#line 1248 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1228/* Line 480 of lalr1.cc */1248 break;
1229#line 1230 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1249 case 483: /* SignList */
1230 break;1250/* Line 453 of lalr1.cc */
1231 case 448: /* "OrderCollationSpec" */1251#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
12321252 { release_hack( ((*yyvaluep).node) ); };
1233/* Line 480 of lalr1.cc */1253/* Line 453 of lalr1.cc */
1234#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1254#line 1255 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1235 { release_hack( (yyvaluep->node) ); };1255 break;
12361256 case 484: /* ValueExpr */
1237/* Line 480 of lalr1.cc */1257/* Line 453 of lalr1.cc */
1238#line 1239 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1258#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1239 break;1259 { release_hack( ((*yyvaluep).expr) ); };
1240 case 449: /* "QuantifiedExpr" */1260/* Line 453 of lalr1.cc */
12411261#line 1262 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1242/* Line 480 of lalr1.cc */1262 break;
1243#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1263 case 485: /* SimpleMapExpr */
1244 { release_hack( (yyvaluep->expr) ); };1264/* Line 453 of lalr1.cc */
12451265#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1246/* Line 480 of lalr1.cc */1266 { release_hack( ((*yyvaluep).expr) ); };
1247#line 1248 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1267/* Line 453 of lalr1.cc */
1248 break;1268#line 1269 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1249 case 450: /* "QVarInDeclList" */1269 break;
12501270 case 486: /* ValueComp */
1251/* Line 480 of lalr1.cc */1271/* Line 453 of lalr1.cc */
1252#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1272#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1253 { release_hack( (yyvaluep->node) ); };1273 { release_hack( ((*yyvaluep).node) ); };
12541274/* Line 453 of lalr1.cc */
1255/* Line 480 of lalr1.cc */1275#line 1276 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1256#line 1257 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1276 break;
1257 break;1277 case 487: /* NodeComp */
1258 case 451: /* "QVarInDecl" */1278/* Line 453 of lalr1.cc */
12591279#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1260/* Line 480 of lalr1.cc */1280 { release_hack( ((*yyvaluep).node) ); };
1261#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1281/* Line 453 of lalr1.cc */
1262 { release_hack( (yyvaluep->node) ); };1282#line 1283 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
12631283 break;
1264/* Line 480 of lalr1.cc */1284 case 488: /* ValidateExpr */
1265#line 1266 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1285/* Line 453 of lalr1.cc */
1266 break;1286#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1267 case 452: /* "SwitchExpr" */1287 { release_hack( ((*yyvaluep).expr) ); };
12681288/* Line 453 of lalr1.cc */
1269/* Line 480 of lalr1.cc */1289#line 1290 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1270#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1290 break;
1271 { release_hack( (yyvaluep->expr) ); };1291 case 489: /* ExtensionExpr */
12721292/* Line 453 of lalr1.cc */
1273/* Line 480 of lalr1.cc */1293#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1274#line 1275 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1294 { release_hack( ((*yyvaluep).expr) ); };
1275 break;1295/* Line 453 of lalr1.cc */
1276 case 453: /* "SwitchCaseClauseList" */1296#line 1297 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
12771297 break;
1278/* Line 480 of lalr1.cc */1298 case 490: /* Pragma_list */
1279#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1299/* Line 453 of lalr1.cc */
1280 { release_hack( (yyvaluep->node) ); };1300#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
12811301 { release_hack( ((*yyvaluep).node) ); };
1282/* Line 480 of lalr1.cc */1302/* Line 453 of lalr1.cc */
1283#line 1284 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1303#line 1304 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1284 break;1304 break;
1285 case 454: /* "SwitchCaseClause" */1305 case 491: /* Pragma */
12861306/* Line 453 of lalr1.cc */
1287/* Line 480 of lalr1.cc */1307#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1288#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1308 { release_hack( ((*yyvaluep).node) ); };
1289 { release_hack( (yyvaluep->node) ); };1309/* Line 453 of lalr1.cc */
12901310#line 1311 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1291/* Line 480 of lalr1.cc */1311 break;
1292#line 1293 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1312 case 492: /* PathExpr */
1293 break;1313/* Line 453 of lalr1.cc */
1294 case 455: /* "SwitchCaseOperandList" */1314#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
12951315 { release_hack( ((*yyvaluep).expr) ); };
1296/* Line 480 of lalr1.cc */1316/* Line 453 of lalr1.cc */
1297#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1317#line 1318 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1298 { release_hack( (yyvaluep->node) ); };1318 break;
12991319 case 494: /* RelativePathExpr */
1300/* Line 480 of lalr1.cc */1320/* Line 453 of lalr1.cc */
1301#line 1302 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"1321#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
1302 break;1322 { release_hack( ((*yyvaluep).expr) ); };
1303 case 456: /* "SwitchStatement" */1323/* Line 453 of lalr1.cc */
13041324#line 1325 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
1305/* Line 480 of lalr1.cc */1325 break;
1306#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"1326 case 495: /* StepExpr */
1307 { release_hack( (yyvaluep->expr) ); };1327/* Line 453 of lalr1.cc */
1308
1309/* Line 480 of lalr1.cc */
1310#line 1311 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1311 break;
1312 case 459: /* "TypeswitchExpr" */
1313
1314/* Line 480 of lalr1.cc */
1315#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1316 { release_hack( (yyvaluep->expr) ); };
1317
1318/* Line 480 of lalr1.cc */
1319#line 1320 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1320 break;
1321 case 460: /* "TypeswitchStatement" */
1322
1323/* Line 480 of lalr1.cc */
1324#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1325 { release_hack( (yyvaluep->expr) ); };
1326
1327/* Line 480 of lalr1.cc */
1328#line 1329 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1329 break;
1330 case 461: /* "CaseClauseList" */
1331
1332/* Line 480 of lalr1.cc */
1333#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1334 { release_hack( (yyvaluep->node) ); };
1335
1336/* Line 480 of lalr1.cc */
1337#line 1338 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1338 break;
1339 case 462: /* "CaseClause" */
1340
1341/* Line 480 of lalr1.cc */
1342#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1343 { release_hack( (yyvaluep->node) ); };
1344
1345/* Line 480 of lalr1.cc */
1346#line 1347 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1347 break;
1348 case 465: /* "IfExpr" */
1349
1350/* Line 480 of lalr1.cc */
1351#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1352 { release_hack( (yyvaluep->expr) ); };
1353
1354/* Line 480 of lalr1.cc */
1355#line 1356 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1356 break;
1357 case 466: /* "OrExpr" */
1358
1359/* Line 480 of lalr1.cc */
1360#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1361 { release_hack( (yyvaluep->expr) ); };
1362
1363/* Line 480 of lalr1.cc */
1364#line 1365 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1365 break;
1366 case 467: /* "AndExpr" */
1367
1368/* Line 480 of lalr1.cc */
1369#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1370 { release_hack( (yyvaluep->expr) ); };
1371
1372/* Line 480 of lalr1.cc */
1373#line 1374 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1374 break;
1375 case 468: /* "ComparisonExpr" */
1376
1377/* Line 480 of lalr1.cc */
1378#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1379 { release_hack( (yyvaluep->expr) ); };
1380
1381/* Line 480 of lalr1.cc */
1382#line 1383 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1383 break;
1384 case 470: /* "FTContainsExpr" */
1385
1386/* Line 480 of lalr1.cc */
1387#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1388 { release_hack( (yyvaluep->expr) ); };
1389
1390/* Line 480 of lalr1.cc */
1391#line 1392 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1392 break;
1393 case 471: /* "StringConcatExpr" */
1394
1395/* Line 480 of lalr1.cc */
1396#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1397 { release_hack( (yyvaluep->expr) ); };
1398
1399/* Line 480 of lalr1.cc */
1400#line 1401 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1401 break;
1402 case 472: /* "opt_FTIgnoreOption" */
1403
1404/* Line 480 of lalr1.cc */
1405#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1406 { release_hack( (yyvaluep->node) ); };
1407
1408/* Line 480 of lalr1.cc */
1409#line 1410 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1410 break;
1411 case 473: /* "RangeExpr" */
1412
1413/* Line 480 of lalr1.cc */
1414#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1415 { release_hack( (yyvaluep->expr) ); };
1416
1417/* Line 480 of lalr1.cc */
1418#line 1419 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1419 break;
1420 case 474: /* "AdditiveExpr" */
1421
1422/* Line 480 of lalr1.cc */
1423#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1424 { release_hack( (yyvaluep->expr) ); };
1425
1426/* Line 480 of lalr1.cc */
1427#line 1428 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1428 break;
1429 case 475: /* "MultiplicativeExpr" */
1430
1431/* Line 480 of lalr1.cc */
1432#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1433 { release_hack( (yyvaluep->expr) ); };
1434
1435/* Line 480 of lalr1.cc */
1436#line 1437 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1437 break;
1438 case 476: /* "UnionExpr" */
1439
1440/* Line 480 of lalr1.cc */
1441#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1442 { release_hack( (yyvaluep->expr) ); };
1443
1444/* Line 480 of lalr1.cc */
1445#line 1446 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1446 break;
1447 case 477: /* "IntersectExceptExpr" */
1448
1449/* Line 480 of lalr1.cc */
1450#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1451 { release_hack( (yyvaluep->expr) ); };
1452
1453/* Line 480 of lalr1.cc */
1454#line 1455 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1455 break;
1456 case 478: /* "InstanceofExpr" */
1457
1458/* Line 480 of lalr1.cc */
1459#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1460 { release_hack( (yyvaluep->expr) ); };
1461
1462/* Line 480 of lalr1.cc */
1463#line 1464 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1464 break;
1465 case 479: /* "TreatExpr" */
1466
1467/* Line 480 of lalr1.cc */
1468#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1469 { release_hack( (yyvaluep->expr) ); };
1470
1471/* Line 480 of lalr1.cc */
1472#line 1473 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1473 break;
1474 case 480: /* "CastableExpr" */
1475
1476/* Line 480 of lalr1.cc */
1477#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1478 { release_hack( (yyvaluep->expr) ); };
1479
1480/* Line 480 of lalr1.cc */
1481#line 1482 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1482 break;
1483 case 481: /* "CastExpr" */
1484
1485/* Line 480 of lalr1.cc */
1486#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1487 { release_hack( (yyvaluep->expr) ); };
1488
1489/* Line 480 of lalr1.cc */
1490#line 1491 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1491 break;
1492 case 482: /* "UnaryExpr" */
1493
1494/* Line 480 of lalr1.cc */
1495#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1496 { release_hack( (yyvaluep->expr) ); };
1497
1498/* Line 480 of lalr1.cc */
1499#line 1500 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1500 break;
1501 case 483: /* "SignList" */
1502
1503/* Line 480 of lalr1.cc */
1504#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1505 { release_hack( (yyvaluep->node) ); };
1506
1507/* Line 480 of lalr1.cc */
1508#line 1509 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1509 break;
1510 case 484: /* "ValueExpr" */
1511
1512/* Line 480 of lalr1.cc */
1513#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1514 { release_hack( (yyvaluep->expr) ); };
1515
1516/* Line 480 of lalr1.cc */
1517#line 1518 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1518 break;
1519 case 485: /* "SimpleMapExpr" */
1520
1521/* Line 480 of lalr1.cc */
1522#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1523 { release_hack( (yyvaluep->expr) ); };
1524
1525/* Line 480 of lalr1.cc */
1526#line 1527 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1527 break;
1528 case 486: /* "ValueComp" */
1529
1530/* Line 480 of lalr1.cc */
1531#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1532 { release_hack( (yyvaluep->node) ); };
1533
1534/* Line 480 of lalr1.cc */
1535#line 1536 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1536 break;
1537 case 487: /* "NodeComp" */
1538
1539/* Line 480 of lalr1.cc */
1540#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1541 { release_hack( (yyvaluep->node) ); };
1542
1543/* Line 480 of lalr1.cc */
1544#line 1545 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1545 break;
1546 case 488: /* "ValidateExpr" */
1547
1548/* Line 480 of lalr1.cc */
1549#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1550 { release_hack( (yyvaluep->expr) ); };
1551
1552/* Line 480 of lalr1.cc */
1553#line 1554 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1554 break;
1555 case 489: /* "ExtensionExpr" */
1556
1557/* Line 480 of lalr1.cc */
1558#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1559 { release_hack( (yyvaluep->expr) ); };
1560
1561/* Line 480 of lalr1.cc */
1562#line 1563 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1563 break;
1564 case 490: /* "Pragma_list" */
1565
1566/* Line 480 of lalr1.cc */
1567#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1568 { release_hack( (yyvaluep->node) ); };
1569
1570/* Line 480 of lalr1.cc */
1571#line 1572 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1572 break;
1573 case 491: /* "Pragma" */
1574
1575/* Line 480 of lalr1.cc */
1576#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1577 { release_hack( (yyvaluep->node) ); };
1578
1579/* Line 480 of lalr1.cc */
1580#line 1581 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1581 break;
1582 case 492: /* "PathExpr" */
1583
1584/* Line 480 of lalr1.cc */
1585#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1586 { release_hack( (yyvaluep->expr) ); };
1587
1588/* Line 480 of lalr1.cc */
1589#line 1590 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1590 break;
1591 case 494: /* "RelativePathExpr" */
1592
1593/* Line 480 of lalr1.cc */
1594#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1595 { release_hack( (yyvaluep->expr) ); };
1596
1597/* Line 480 of lalr1.cc */
1598#line 1599 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1599 break;
1600 case 495: /* "StepExpr" */
1601
1602/* Line 480 of lalr1.cc */
1603#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1604 { release_hack( (yyvaluep->expr) ); };
1605
1606/* Line 480 of lalr1.cc */
1607#line 1608 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1608 break;
1609 case 496: /* "AxisStep" */
1610
1611/* Line 480 of lalr1.cc */
1612#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1613 { release_hack( (yyvaluep->expr) ); };
1614
1615/* Line 480 of lalr1.cc */
1616#line 1617 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1617 break;
1618 case 497: /* "ForwardStep" */
1619
1620/* Line 480 of lalr1.cc */
1621#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1622 { release_hack( (yyvaluep->node) ); };
1623
1624/* Line 480 of lalr1.cc */
1625#line 1626 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1626 break;
1627 case 498: /* "ForwardAxis" */
1628
1629/* Line 480 of lalr1.cc */
1630#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1631 { release_hack( (yyvaluep->node) ); };
1632
1633/* Line 480 of lalr1.cc */
1634#line 1635 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1635 break;
1636 case 499: /* "AbbrevForwardStep" */
1637
1638/* Line 480 of lalr1.cc */
1639#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1640 { release_hack( (yyvaluep->node) ); };
1641
1642/* Line 480 of lalr1.cc */
1643#line 1644 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1644 break;
1645 case 500: /* "ReverseStep" */
1646
1647/* Line 480 of lalr1.cc */
1648#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1649 { release_hack( (yyvaluep->node) ); };
1650
1651/* Line 480 of lalr1.cc */
1652#line 1653 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1653 break;
1654 case 501: /* "ReverseAxis" */
1655
1656/* Line 480 of lalr1.cc */
1657#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1658 { release_hack( (yyvaluep->node) ); };
1659
1660/* Line 480 of lalr1.cc */
1661#line 1662 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1662 break;
1663 case 502: /* "NodeTest" */
1664
1665/* Line 480 of lalr1.cc */
1666#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1667 { release_hack( (yyvaluep->node) ); };
1668
1669/* Line 480 of lalr1.cc */
1670#line 1671 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1671 break;
1672 case 503: /* "NameTest" */
1673
1674/* Line 480 of lalr1.cc */
1675#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1676 { release_hack( (yyvaluep->node) ); };
1677
1678/* Line 480 of lalr1.cc */
1679#line 1680 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1680 break;
1681 case 504: /* "Wildcard" */
1682
1683/* Line 480 of lalr1.cc */
1684#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1685 { release_hack( (yyvaluep->node) ); };
1686
1687/* Line 480 of lalr1.cc */
1688#line 1689 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1689 break;
1690 case 505: /* "FilterExpr" */
1691
1692/* Line 480 of lalr1.cc */
1693#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1694 { release_hack( (yyvaluep->expr) ); };
1695
1696/* Line 480 of lalr1.cc */
1697#line 1698 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1698 break;
1699 case 506: /* "PredicateList" */
1700
1701/* Line 480 of lalr1.cc */
1702#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1703 { release_hack( (yyvaluep->node) ); };
1704
1705/* Line 480 of lalr1.cc */
1706#line 1707 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1707 break;
1708 case 507: /* "Predicate" */
1709
1710/* Line 480 of lalr1.cc */
1711#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1712 { release_hack( (yyvaluep->expr) ); };
1713
1714/* Line 480 of lalr1.cc */
1715#line 1716 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1716 break;
1717 case 508: /* "PrimaryExpr" */
1718
1719/* Line 480 of lalr1.cc */
1720#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1721 { release_hack( (yyvaluep->expr) ); };
1722
1723/* Line 480 of lalr1.cc */
1724#line 1725 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1725 break;
1726 case 509: /* "Literal" */
1727
1728/* Line 480 of lalr1.cc */
1729#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1730 { release_hack( (yyvaluep->expr) ); };
1731
1732/* Line 480 of lalr1.cc */
1733#line 1734 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1734 break;
1735 case 510: /* "NumericLiteral" */
1736
1737/* Line 480 of lalr1.cc */
1738#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1739 { release_hack( (yyvaluep->expr) ); };
1740
1741/* Line 480 of lalr1.cc */
1742#line 1743 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1743 break;
1744 case 511: /* "VarRef" */
1745
1746/* Line 480 of lalr1.cc */
1747#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1748 { release_hack( (yyvaluep->expr) ); };
1749
1750/* Line 480 of lalr1.cc */
1751#line 1752 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1752 break;
1753 case 512: /* "ParenthesizedExpr" */
1754
1755/* Line 480 of lalr1.cc */
1756#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1757 { release_hack( (yyvaluep->expr) ); };
1758
1759/* Line 480 of lalr1.cc */
1760#line 1761 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1761 break;
1762 case 513: /* "ContextItemExpr" */
1763
1764/* Line 480 of lalr1.cc */
1765#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1766 { release_hack( (yyvaluep->expr) ); };
1767
1768/* Line 480 of lalr1.cc */
1769#line 1770 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1770 break;
1771 case 514: /* "OrderedExpr" */
1772
1773/* Line 480 of lalr1.cc */
1774#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1775 { release_hack( (yyvaluep->expr) ); };
1776
1777/* Line 480 of lalr1.cc */
1778#line 1779 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1779 break;
1780 case 515: /* "UnorderedExpr" */
1781
1782/* Line 480 of lalr1.cc */
1783#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1784 { release_hack( (yyvaluep->expr) ); };
1785
1786/* Line 480 of lalr1.cc */
1787#line 1788 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1788 break;
1789 case 516: /* "FunctionCall" */
1790
1791/* Line 480 of lalr1.cc */
1792#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1793 { release_hack( (yyvaluep->expr) ); };
1794
1795/* Line 480 of lalr1.cc */
1796#line 1797 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1797 break;
1798 case 517: /* "ArgList" */
1799
1800/* Line 480 of lalr1.cc */
1801#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1802 { release_hack( (yyvaluep->node) ); };
1803
1804/* Line 480 of lalr1.cc */
1805#line 1806 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1806 break;
1807 case 518: /* "Constructor" */
1808
1809/* Line 480 of lalr1.cc */
1810#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1811 { release_hack( (yyvaluep->expr) ); };
1812
1813/* Line 480 of lalr1.cc */
1814#line 1815 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1815 break;
1816 case 519: /* "DirectConstructor" */
1817
1818/* Line 480 of lalr1.cc */
1819#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1820 { release_hack( (yyvaluep->expr) ); };
1821
1822/* Line 480 of lalr1.cc */
1823#line 1824 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1824 break;
1825 case 520: /* "DirElemConstructor" */
1826
1827/* Line 480 of lalr1.cc */
1828#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1829 { release_hack( (yyvaluep->expr) ); };
1830
1831/* Line 480 of lalr1.cc */
1832#line 1833 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1833 break;
1834 case 521: /* "DirElemContentList" */
1835
1836/* Line 480 of lalr1.cc */
1837#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1838 { release_hack( (yyvaluep->node) ); };
1839
1840/* Line 480 of lalr1.cc */
1841#line 1842 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1842 break;
1843 case 522: /* "DirAttributeList" */
1844
1845/* Line 480 of lalr1.cc */
1846#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1847 { release_hack( (yyvaluep->node) ); };
1848
1849/* Line 480 of lalr1.cc */
1850#line 1851 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1851 break;
1852 case 523: /* "DirAttr" */
1853
1854/* Line 480 of lalr1.cc */
1855#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1856 { release_hack( (yyvaluep->node) ); };
1857
1858/* Line 480 of lalr1.cc */
1859#line 1860 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1860 break;
1861 case 525: /* "DirAttributeValue" */
1862
1863/* Line 480 of lalr1.cc */
1864#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1865 { release_hack( (yyvaluep->node) ); };
1866
1867/* Line 480 of lalr1.cc */
1868#line 1869 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1869 break;
1870 case 526: /* "opt_QuoteAttrContentList" */
1871
1872/* Line 480 of lalr1.cc */
1873#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1874 { release_hack( (yyvaluep->node) ); };
1875
1876/* Line 480 of lalr1.cc */
1877#line 1878 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1878 break;
1879 case 527: /* "QuoteAttrContentList" */
1880
1881/* Line 480 of lalr1.cc */
1882#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1883 { release_hack( (yyvaluep->node) ); };
1884
1885/* Line 480 of lalr1.cc */
1886#line 1887 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1887 break;
1888 case 528: /* "opt_AposAttrContentList" */
1889
1890/* Line 480 of lalr1.cc */
1891#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1892 { release_hack( (yyvaluep->node) ); };
1893
1894/* Line 480 of lalr1.cc */
1895#line 1896 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1896 break;
1897 case 529: /* "AposAttrContentList" */
1898
1899/* Line 480 of lalr1.cc */
1900#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1901 { release_hack( (yyvaluep->node) ); };
1902
1903/* Line 480 of lalr1.cc */
1904#line 1905 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1905 break;
1906 case 530: /* "QuoteAttrValueContent" */
1907
1908/* Line 480 of lalr1.cc */
1909#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1910 { release_hack( (yyvaluep->node) ); };
1911
1912/* Line 480 of lalr1.cc */
1913#line 1914 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1914 break;
1915 case 531: /* "AposAttrValueContent" */
1916
1917/* Line 480 of lalr1.cc */
1918#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1919 { release_hack( (yyvaluep->node) ); };
1920
1921/* Line 480 of lalr1.cc */
1922#line 1923 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1923 break;
1924 case 532: /* "DirElemContent" */
1925
1926/* Line 480 of lalr1.cc */
1927#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1928 { release_hack( (yyvaluep->expr) ); };
1929
1930/* Line 480 of lalr1.cc */
1931#line 1932 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1932 break;
1933 case 533: /* "CommonContent" */
1934
1935/* Line 480 of lalr1.cc */
1936#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1937 { release_hack( (yyvaluep->expr) ); };
1938
1939/* Line 480 of lalr1.cc */
1940#line 1941 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1941 break;
1942 case 534: /* "DirCommentConstructor" */
1943
1944/* Line 480 of lalr1.cc */
1945#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1946 { release_hack( (yyvaluep->expr) ); };
1947
1948/* Line 480 of lalr1.cc */
1949#line 1950 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1950 break;
1951 case 535: /* "DirPIConstructor" */
1952
1953/* Line 480 of lalr1.cc */
1954#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1955 { release_hack( (yyvaluep->expr) ); };
1956
1957/* Line 480 of lalr1.cc */
1958#line 1959 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1959 break;
1960 case 536: /* "CDataSection" */
1961
1962/* Line 480 of lalr1.cc */
1963#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1964 { release_hack( (yyvaluep->expr) ); };
1965
1966/* Line 480 of lalr1.cc */
1967#line 1968 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1968 break;
1969 case 537: /* "ComputedConstructor" */
1970
1971/* Line 480 of lalr1.cc */
1972#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1973 { release_hack( (yyvaluep->expr) ); };
1974
1975/* Line 480 of lalr1.cc */
1976#line 1977 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1977 break;
1978 case 538: /* "CompDocConstructor" */
1979
1980/* Line 480 of lalr1.cc */
1981#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1982 { release_hack( (yyvaluep->expr) ); };
1983
1984/* Line 480 of lalr1.cc */
1985#line 1986 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1986 break;
1987 case 539: /* "CompElemConstructor" */
1988
1989/* Line 480 of lalr1.cc */
1990#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
1991 { release_hack( (yyvaluep->expr) ); };
1992
1993/* Line 480 of lalr1.cc */
1994#line 1995 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
1995 break;
1996 case 540: /* "CompAttrConstructor" */
1997
1998/* Line 480 of lalr1.cc */
1999#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2000 { release_hack( (yyvaluep->expr) ); };
2001
2002/* Line 480 of lalr1.cc */
2003#line 2004 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2004 break;
2005 case 541: /* "CompTextConstructor" */
2006
2007/* Line 480 of lalr1.cc */
2008#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2009 { release_hack( (yyvaluep->expr) ); };
2010
2011/* Line 480 of lalr1.cc */
2012#line 2013 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2013 break;
2014 case 542: /* "CompCommentConstructor" */
2015
2016/* Line 480 of lalr1.cc */
2017#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2018 { release_hack( (yyvaluep->expr) ); };
2019
2020/* Line 480 of lalr1.cc */
2021#line 2022 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2022 break;
2023 case 543: /* "CompPIConstructor" */
2024
2025/* Line 480 of lalr1.cc */
2026#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2027 { release_hack( (yyvaluep->expr) ); };
2028
2029/* Line 480 of lalr1.cc */
2030#line 2031 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2031 break;
2032 case 544: /* "SingleType" */
2033
2034/* Line 480 of lalr1.cc */
2035#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2036 { release_hack( (yyvaluep->node) ); };
2037
2038/* Line 480 of lalr1.cc */
2039#line 2040 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2040 break;
2041 case 545: /* "TypeDeclaration" */
2042
2043/* Line 480 of lalr1.cc */
2044#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2045 { release_hack( (yyvaluep->node) ); };
2046
2047/* Line 480 of lalr1.cc */
2048#line 2049 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2049 break;
2050 case 546: /* "SequenceType" */
2051
2052/* Line 480 of lalr1.cc */
2053#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2054 { release_hack( (yyvaluep->node) ); };
2055
2056/* Line 480 of lalr1.cc */
2057#line 2058 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2058 break;
2059 case 547: /* "OccurrenceIndicator" */
2060
2061/* Line 480 of lalr1.cc */
2062#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2063 { release_hack( (yyvaluep->node) ); };
2064
2065/* Line 480 of lalr1.cc */
2066#line 2067 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2067 break;
2068 case 548: /* "ItemType" */
2069
2070/* Line 480 of lalr1.cc */
2071#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2072 { release_hack( (yyvaluep->node) ); };
2073
2074/* Line 480 of lalr1.cc */
2075#line 2076 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2076 break;
2077 case 549: /* "TypeList" */
2078
2079/* Line 480 of lalr1.cc */
2080#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2081 { release_hack( (yyvaluep->node) ); };
2082
2083/* Line 480 of lalr1.cc */
2084#line 2085 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2085 break;
2086 case 550: /* "AtomicType" */
2087
2088/* Line 480 of lalr1.cc */
2089#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2090 { release_hack( (yyvaluep->node) ); };
2091
2092/* Line 480 of lalr1.cc */
2093#line 2094 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2094 break;
2095 case 551: /* "KindTest" */
2096
2097/* Line 480 of lalr1.cc */
2098#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2099 { release_hack( (yyvaluep->node) ); };
2100
2101/* Line 480 of lalr1.cc */
2102#line 2103 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2103 break;
2104 case 552: /* "AnyKindTest" */
2105
2106/* Line 480 of lalr1.cc */
2107#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2108 { release_hack( (yyvaluep->node) ); };
2109
2110/* Line 480 of lalr1.cc */
2111#line 2112 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2112 break;
2113 case 553: /* "DocumentTest" */
2114
2115/* Line 480 of lalr1.cc */
2116#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2117 { release_hack( (yyvaluep->node) ); };
2118
2119/* Line 480 of lalr1.cc */
2120#line 2121 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2121 break;
2122 case 554: /* "TextTest" */
2123
2124/* Line 480 of lalr1.cc */
2125#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2126 { release_hack( (yyvaluep->node) ); };
2127
2128/* Line 480 of lalr1.cc */
2129#line 2130 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2130 break;
2131 case 555: /* "CommentTest" */
2132
2133/* Line 480 of lalr1.cc */
2134#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2135 { release_hack( (yyvaluep->node) ); };
2136
2137/* Line 480 of lalr1.cc */
2138#line 2139 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2139 break;
2140 case 556: /* "PITest" */
2141
2142/* Line 480 of lalr1.cc */
2143#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2144 { release_hack( (yyvaluep->node) ); };
2145
2146/* Line 480 of lalr1.cc */
2147#line 2148 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2148 break;
2149 case 557: /* "AttributeTest" */
2150
2151/* Line 480 of lalr1.cc */
2152#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2153 { release_hack( (yyvaluep->node) ); };
2154
2155/* Line 480 of lalr1.cc */
2156#line 2157 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2157 break;
2158 case 558: /* "SchemaAttributeTest" */
2159
2160/* Line 480 of lalr1.cc */
2161#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2162 { release_hack( (yyvaluep->node) ); };
2163
2164/* Line 480 of lalr1.cc */
2165#line 2166 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2166 break;
2167 case 559: /* "ElementTest" */
2168
2169/* Line 480 of lalr1.cc */
2170#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2171 { release_hack( (yyvaluep->node) ); };
2172
2173/* Line 480 of lalr1.cc */
2174#line 2175 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2175 break;
2176 case 560: /* "SchemaElementTest" */
2177
2178/* Line 480 of lalr1.cc */
2179#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2180 { release_hack( (yyvaluep->node) ); };
2181
2182/* Line 480 of lalr1.cc */
2183#line 2184 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2184 break;
2185 case 561: /* "TypeName" */
2186
2187/* Line 480 of lalr1.cc */
2188#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2189 { release_hack( (yyvaluep->node) ); };
2190
2191/* Line 480 of lalr1.cc */
2192#line 2193 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2193 break;
2194 case 562: /* "TypeName_WITH_HOOK" */
2195
2196/* Line 480 of lalr1.cc */
2197#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2198 { release_hack( (yyvaluep->node) ); };
2199
2200/* Line 480 of lalr1.cc */
2201#line 2202 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2202 break;
2203 case 563: /* "StringLiteral" */
2204
2205/* Line 480 of lalr1.cc */
2206#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2207 { release_hack( (yyvaluep->expr) ); };
2208
2209/* Line 480 of lalr1.cc */
2210#line 2211 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2211 break;
2212 case 568: /* "AnyFunctionTest" */
2213
2214/* Line 480 of lalr1.cc */
2215#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2216 { release_hack( (yyvaluep->node) ); };
2217
2218/* Line 480 of lalr1.cc */
2219#line 2220 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2220 break;
2221 case 569: /* "TypedFunctionTest" */
2222
2223/* Line 480 of lalr1.cc */
2224#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2225 { release_hack( (yyvaluep->node) ); };
2226
2227/* Line 480 of lalr1.cc */
2228#line 2229 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2229 break;
2230 case 572: /* "InsertExpr" */
2231
2232/* Line 480 of lalr1.cc */
2233#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2234 { release_hack( (yyvaluep->expr) ); };
2235
2236/* Line 480 of lalr1.cc */
2237#line 2238 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2238 break;
2239 case 573: /* "DeleteExpr" */
2240
2241/* Line 480 of lalr1.cc */
2242#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2243 { release_hack( (yyvaluep->expr) ); };
2244
2245/* Line 480 of lalr1.cc */
2246#line 2247 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2247 break;
2248 case 574: /* "ReplaceExpr" */
2249
2250/* Line 480 of lalr1.cc */
2251#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2252 { release_hack( (yyvaluep->expr) ); };
2253
2254/* Line 480 of lalr1.cc */
2255#line 2256 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2256 break;
2257 case 575: /* "RenameExpr" */
2258
2259/* Line 480 of lalr1.cc */
2260#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2261 { release_hack( (yyvaluep->expr) ); };
2262
2263/* Line 480 of lalr1.cc */
2264#line 2265 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2265 break;
2266 case 576: /* "TransformExpr" */
2267
2268/* Line 480 of lalr1.cc */
2269#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2270 { release_hack( (yyvaluep->expr) ); };
2271
2272/* Line 480 of lalr1.cc */
2273#line 2274 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2274 break;
2275 case 577: /* "VarNameList" */
2276
2277/* Line 480 of lalr1.cc */
2278#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2279 { release_hack( (yyvaluep->expr) ); };
2280
2281/* Line 480 of lalr1.cc */
2282#line 2283 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2283 break;
2284 case 578: /* "VarNameDecl" */
2285
2286/* Line 480 of lalr1.cc */
2287#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2288 { release_hack( (yyvaluep->expr) ); };
2289
2290/* Line 480 of lalr1.cc */
2291#line 2292 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2292 break;
2293 case 579: /* "TryExpr" */
2294
2295/* Line 480 of lalr1.cc */
2296#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2297 { release_hack( (yyvaluep->expr) ); };
2298
2299/* Line 480 of lalr1.cc */
2300#line 2301 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2301 break;
2302 case 580: /* "CatchListExpr" */
2303
2304/* Line 480 of lalr1.cc */
2305#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2306 { release_hack( (yyvaluep->expr) ); };
2307
2308/* Line 480 of lalr1.cc */
2309#line 2310 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2310 break;
2311 case 581: /* "CatchExpr" */
2312
2313/* Line 480 of lalr1.cc */
2314#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2315 { release_hack( (yyvaluep->expr) ); };
2316
2317/* Line 480 of lalr1.cc */
2318#line 2319 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2319 break;
2320 case 582: /* "BracedExpr" */
2321
2322/* Line 480 of lalr1.cc */
2323#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2324 { release_hack( (yyvaluep->expr) ); };
2325
2326/* Line 480 of lalr1.cc */
2327#line 2328 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2328 break;
2329 case 583: /* "NameTestList" */
2330
2331/* Line 480 of lalr1.cc */
2332#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2333 { delete (yyvaluep->name_test_list); };
2334
2335/* Line 480 of lalr1.cc */
2336#line 2337 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2337 break;
2338 case 584: /* "FTSelection" */
2339
2340/* Line 480 of lalr1.cc */
2341#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2342 { release_hack( (yyvaluep->node) ); };
2343
2344/* Line 480 of lalr1.cc */
2345#line 2346 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2346 break;
2347 case 587: /* "FTOr" */
2348
2349/* Line 480 of lalr1.cc */
2350#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2351 { release_hack( (yyvaluep->node) ); };
2352
2353/* Line 480 of lalr1.cc */
2354#line 2355 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2355 break;
2356 case 588: /* "FTAnd" */
2357
2358/* Line 480 of lalr1.cc */
2359#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2360 { release_hack( (yyvaluep->node) ); };
2361
2362/* Line 480 of lalr1.cc */
2363#line 2364 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2364 break;
2365 case 589: /* "FTMildNot" */
2366
2367/* Line 480 of lalr1.cc */
2368#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2369 { release_hack( (yyvaluep->node) ); };
2370
2371/* Line 480 of lalr1.cc */
2372#line 2373 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2373 break;
2374 case 590: /* "FTUnaryNot" */
2375
2376/* Line 480 of lalr1.cc */
2377#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2378 { release_hack( (yyvaluep->node) ); };
2379
2380/* Line 480 of lalr1.cc */
2381#line 2382 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2382 break;
2383 case 591: /* "FTPrimaryWithOptions" */
2384
2385/* Line 480 of lalr1.cc */
2386#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2387 { release_hack( (yyvaluep->node) ); };
2388
2389/* Line 480 of lalr1.cc */
2390#line 2391 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2391 break;
2392 case 592: /* "opt_FTMatchOptions" */
2393
2394/* Line 480 of lalr1.cc */
2395#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2396 { release_hack( (yyvaluep->node) ); };
2397
2398/* Line 480 of lalr1.cc */
2399#line 2400 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2400 break;
2401 case 594: /* "FTWeight" */
2402
2403/* Line 480 of lalr1.cc */
2404#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2405 { release_hack( (yyvaluep->node) ); };
2406
2407/* Line 480 of lalr1.cc */
2408#line 2409 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2409 break;
2410 case 595: /* "FTPrimary" */
2411
2412/* Line 480 of lalr1.cc */
2413#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2414 { release_hack( (yyvaluep->node) ); };
2415
2416/* Line 480 of lalr1.cc */
2417#line 2418 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2418 break;
2419 case 596: /* "opt_FTTimes" */
2420
2421/* Line 480 of lalr1.cc */
2422#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2423 { release_hack( (yyvaluep->node) ); };
2424
2425/* Line 480 of lalr1.cc */
2426#line 2427 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2427 break;
2428 case 597: /* "FTExtensionSelection" */
2429
2430/* Line 480 of lalr1.cc */
2431#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2432 { release_hack( (yyvaluep->node) ); };
2433
2434/* Line 480 of lalr1.cc */
2435#line 2436 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2436 break;
2437 case 599: /* "FTWords" */
2438
2439/* Line 480 of lalr1.cc */
2440#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2441 { release_hack( (yyvaluep->node) ); };
2442
2443/* Line 480 of lalr1.cc */
2444#line 2445 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2445 break;
2446 case 600: /* "FTWordsValue" */
2447
2448/* Line 480 of lalr1.cc */
2449#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2450 { release_hack( (yyvaluep->node) ); };
2451
2452/* Line 480 of lalr1.cc */
2453#line 2454 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2454 break;
2455 case 602: /* "FTAnyallOption" */
2456
2457/* Line 480 of lalr1.cc */
2458#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2459 { release_hack( (yyvaluep->node) ); };
2460
2461/* Line 480 of lalr1.cc */
2462#line 2463 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2463 break;
2464 case 605: /* "FTPosFilter" */
2465
2466/* Line 480 of lalr1.cc */
2467#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2468 { release_hack( (yyvaluep->node) ); };
2469
2470/* Line 480 of lalr1.cc */
2471#line 2472 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2472 break;
2473 case 606: /* "FTOrder" */
2474
2475/* Line 480 of lalr1.cc */
2476#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2477 { release_hack( (yyvaluep->node) ); };
2478
2479/* Line 480 of lalr1.cc */
2480#line 2481 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2481 break;
2482 case 607: /* "FTWindow" */
2483
2484/* Line 480 of lalr1.cc */
2485#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2486 { release_hack( (yyvaluep->node) ); };
2487
2488/* Line 480 of lalr1.cc */
2489#line 2490 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2490 break;
2491 case 608: /* "FTDistance" */
2492
2493/* Line 480 of lalr1.cc */
2494#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2495 { release_hack( (yyvaluep->node) ); };
2496
2497/* Line 480 of lalr1.cc */
2498#line 2499 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2499 break;
2500 case 609: /* "FTUnit" */
2501
2502/* Line 480 of lalr1.cc */
2503#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2504 { release_hack( (yyvaluep->node) ); };
2505
2506/* Line 480 of lalr1.cc */
2507#line 2508 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2508 break;
2509 case 610: /* "FTMatchOptions" */
2510
2511/* Line 480 of lalr1.cc */
2512#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2513 { release_hack( (yyvaluep->node) ); };
2514
2515/* Line 480 of lalr1.cc */
2516#line 2517 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2517 break;
2518 case 611: /* "FTMatchOption" */
2519
2520/* Line 480 of lalr1.cc */
2521#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2522 { release_hack( (yyvaluep->node) ); };
2523
2524/* Line 480 of lalr1.cc */
2525#line 2526 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2526 break;
2527 case 612: /* "FTCaseOption" */
2528
2529/* Line 480 of lalr1.cc */
2530#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2531 { release_hack( (yyvaluep->node) ); };
2532
2533/* Line 480 of lalr1.cc */
2534#line 2535 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2535 break;
2536 case 613: /* "FTDiacriticsOption" */
2537
2538/* Line 480 of lalr1.cc */
2539#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2540 { release_hack( (yyvaluep->node) ); };
2541
2542/* Line 480 of lalr1.cc */
2543#line 2544 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2544 break;
2545 case 614: /* "FTExtensionOption" */
2546
2547/* Line 480 of lalr1.cc */
2548#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2549 { release_hack( (yyvaluep->node) ); };
2550
2551/* Line 480 of lalr1.cc */
2552#line 2553 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2553 break;
2554 case 615: /* "FTStemOption" */
2555
2556/* Line 480 of lalr1.cc */
2557#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2558 { release_hack( (yyvaluep->node) ); };
2559
2560/* Line 480 of lalr1.cc */
2561#line 2562 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2562 break;
2563 case 616: /* "FTThesaurusOption" */
2564
2565/* Line 480 of lalr1.cc */
2566#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2567 { release_hack( (yyvaluep->node) ); };
2568
2569/* Line 480 of lalr1.cc */
2570#line 2571 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2571 break;
2572 case 620: /* "FTThesaurusID" */
2573
2574/* Line 480 of lalr1.cc */
2575#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2576 { release_hack( (yyvaluep->node) ); };
2577
2578/* Line 480 of lalr1.cc */
2579#line 2580 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2580 break;
2581 case 623: /* "FTStopWordOption" */
2582
2583/* Line 480 of lalr1.cc */
2584#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2585 { release_hack( (yyvaluep->node) ); };
2586
2587/* Line 480 of lalr1.cc */
2588#line 2589 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2589 break;
2590 case 624: /* "FTStopWords" */
2591
2592/* Line 480 of lalr1.cc */
2593#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2594 { release_hack( (yyvaluep->node) ); };
2595
2596/* Line 480 of lalr1.cc */
2597#line 2598 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2598 break;
2599 case 628: /* "FTStopWordsInclExcl" */
2600
2601/* Line 480 of lalr1.cc */
2602#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2603 { release_hack( (yyvaluep->node) ); };
2604
2605/* Line 480 of lalr1.cc */
2606#line 2607 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2607 break;
2608 case 629: /* "FTLanguageOption" */
2609
2610/* Line 480 of lalr1.cc */
2611#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2612 { release_hack( (yyvaluep->node) ); };
2613
2614/* Line 480 of lalr1.cc */
2615#line 2616 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2616 break;
2617 case 630: /* "FTWildCardOption" */
2618
2619/* Line 480 of lalr1.cc */
2620#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2621 { release_hack( (yyvaluep->node) ); };
2622
2623/* Line 480 of lalr1.cc */
2624#line 2625 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2625 break;
2626 case 631: /* "FTContent" */
2627
2628/* Line 480 of lalr1.cc */
2629#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2630 { release_hack( (yyvaluep->node) ); };
2631
2632/* Line 480 of lalr1.cc */
2633#line 2634 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2634 break;
2635 case 632: /* "FTTimes" */
2636
2637/* Line 480 of lalr1.cc */
2638#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2639 { release_hack( (yyvaluep->node) ); };
2640
2641/* Line 480 of lalr1.cc */
2642#line 2643 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2643 break;
2644 case 633: /* "FTRange" */
2645
2646/* Line 480 of lalr1.cc */
2647#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2648 { release_hack( (yyvaluep->node) ); };
2649
2650/* Line 480 of lalr1.cc */
2651#line 2652 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2652 break;
2653 case 634: /* "FTScope" */
2654
2655/* Line 480 of lalr1.cc */
2656#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2657 { release_hack( (yyvaluep->node) ); };
2658
2659/* Line 480 of lalr1.cc */
2660#line 2661 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2661 break;
2662 case 635: /* "FTBigUnit" */
2663
2664/* Line 480 of lalr1.cc */
2665#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2666 { release_hack( (yyvaluep->node) ); };
2667
2668/* Line 480 of lalr1.cc */
2669#line 2670 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2670 break;
2671 case 636: /* "FTIgnoreOption" */
2672
2673/* Line 480 of lalr1.cc */
2674#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2675 { release_hack( (yyvaluep->node) ); };
2676
2677/* Line 480 of lalr1.cc */
2678#line 2679 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2679 break;
2680 case 637: /* "JSONArrayConstructor" */
2681
2682/* Line 480 of lalr1.cc */
2683#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2684 { release_hack( (yyvaluep->expr) ); };
2685
2686/* Line 480 of lalr1.cc */
2687#line 2688 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2688 break;
2689 case 638: /* "JSONSimpleObjectUnion" */
2690
2691/* Line 480 of lalr1.cc */
2692#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2693 { release_hack( (yyvaluep->expr) ); };
2694
2695/* Line 480 of lalr1.cc */
2696#line 2697 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2697 break;
2698 case 639: /* "JSONAccumulatorObjectUnion" */
2699
2700/* Line 480 of lalr1.cc */
2701#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2702 { release_hack( (yyvaluep->expr) ); };
2703
2704/* Line 480 of lalr1.cc */
2705#line 2706 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2706 break;
2707 case 640: /* "JSONObjectConstructor" */
2708
2709/* Line 480 of lalr1.cc */
2710#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2711 { release_hack( (yyvaluep->expr) ); };
2712
2713/* Line 480 of lalr1.cc */
2714#line 2715 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2715 break;
2716 case 641: /* "JSONPairList" */
2717
2718/* Line 480 of lalr1.cc */
2719#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2720 { release_hack( (yyvaluep->node) ); };
2721
2722/* Line 480 of lalr1.cc */
2723#line 2724 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2724 break;
2725 case 642: /* "JSONInsertExpr" */
2726
2727/* Line 480 of lalr1.cc */
2728#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2729 { release_hack( (yyvaluep->expr) ); };
2730
2731/* Line 480 of lalr1.cc */
2732#line 2733 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2733 break;
2734 case 643: /* "JSONAppendExpr" */
2735
2736/* Line 480 of lalr1.cc */
2737#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2738 { release_hack( (yyvaluep->expr) ); };
2739
2740/* Line 480 of lalr1.cc */
2741#line 2742 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2742 break;
2743 case 644: /* "JSONDeleteExpr" */
2744
2745/* Line 480 of lalr1.cc */
2746#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2747 { release_hack( (yyvaluep->expr) ); };
2748
2749/* Line 480 of lalr1.cc */
2750#line 2751 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2751 break;
2752 case 645: /* "JSONRenameExpr" */
2753
2754/* Line 480 of lalr1.cc */
2755#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2756 { release_hack( (yyvaluep->expr) ); };
2757
2758/* Line 480 of lalr1.cc */
2759#line 2760 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2760 break;
2761 case 646: /* "JSONReplaceExpr" */
2762
2763/* Line 480 of lalr1.cc */
2764#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2765 { release_hack( (yyvaluep->expr) ); };
2766
2767/* Line 480 of lalr1.cc */
2768#line 2769 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2769 break;
2770 case 653: /* "QNAME" */
2771
2772/* Line 480 of lalr1.cc */
2773#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2774 { release_hack( (yyvaluep->expr) ); };
2775
2776/* Line 480 of lalr1.cc */
2777#line 2778 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2778 break;
2779 case 654: /* "FUNCTION_NAME" */
2780
2781/* Line 480 of lalr1.cc */
2782#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2783 { release_hack( (yyvaluep->expr) ); };
2784
2785/* Line 480 of lalr1.cc */
2786#line 2787 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
2787 break;
2788 case 655: /* "EQNAME" */
2789
2790/* Line 480 of lalr1.cc */
2791#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
2792 { release_hack( (yyvaluep->expr) ); };
2793
2794/* Line 480 of lalr1.cc */
2795#line 2796 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches