← Back to team overview

zorba-coders team mailing list archive

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

 

Nicolae Brinza has proposed merging lp:~nbrinza/zorba/hof into lp:zorba.

Commit message:
Implementation of higher order functions.

Requested reviews:
  Nicolae Brinza (nbrinza)
Related bugs:
  Bug #866742 in Zorba: "combinator function segfault"
  https://bugs.launchpad.net/zorba/+bug/866742
  Bug #866839 in Zorba: "optimizer crashes in hof-101"
  https://bugs.launchpad.net/zorba/+bug/866839
  Bug #932266 in Zorba: "HOF: reporting wrong error"
  https://bugs.launchpad.net/zorba/+bug/932266
  Bug #947051 in Zorba: "FOTS: HOF tests Seg Fault"
  https://bugs.launchpad.net/zorba/+bug/947051
  Bug #947130 in Zorba: "FOTS: generate-id tests results in Seg Fault"
  https://bugs.launchpad.net/zorba/+bug/947130
  Bug #950608 in Zorba: "XQuery 3.0 vs Zorba: fold-right#3 not implemented"
  https://bugs.launchpad.net/zorba/+bug/950608
  Bug #950622 in Zorba: "remove fn:partial-apply and replace with "?""
  https://bugs.launchpad.net/zorba/+bug/950622
  Bug #1018333 in Zorba: "HOFs declared as global variables in the prolog crash Zorba"
  https://bugs.launchpad.net/zorba/+bug/1018333
  Bug #1023024 in Zorba: "HOF related crashes not covered by XQTTS"
  https://bugs.launchpad.net/zorba/+bug/1023024
  Bug #1070504 in Zorba: "FOTS: function-lookup tests reach assertion "iter != NULL""
  https://bugs.launchpad.net/zorba/+bug/1070504

For more details, see:
https://code.launchpad.net/~nbrinza/zorba/hof/+merge/140721

Implementation of higher order functions.
-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~nbrinza/zorba/hof/+merge/140721
Your team Zorba Coders is subscribed to branch lp:zorba.
=== 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-19 16:28:31 +0000
@@ -62,6 +62,8 @@
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XQTY0086;
 
+extern ZORBA_DLL_PUBLIC XQueryErrorCode XQTY0105;
+
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0009;
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0012;
@@ -294,6 +296,8 @@
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode FOUT1190;
 
+extern ZORBA_DLL_PUBLIC XQueryErrorCode FOFL0001;
+
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XUST0001;
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XUST0002;

=== 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-19 16:28:31 +0000
@@ -194,6 +194,14 @@
 
 (:~
  :
+ : It is a type error if the content sequence in an element constructor contains a function item.
+ : 
+ : @see http://www.w3.org/2005/xqt-errors
+:)
+declare variable $err:XQTY0105 as xs:QName := fn:QName($err:NS, "err:XQTY0105");
+
+(:~
+ :
  : An implementation that does not support the Schema Import Feature must
  : raise a static error if a Prolog contains a schema import.
  : 
@@ -1274,6 +1282,14 @@
 
 (:~
  :
+ : This error is raised if the fn:function-lookup returns a context-dependent function and the context-dependent function is then called.
+ : 
+ : @see http://www.w3.org/2005/xqt-errors
+:)
+declare variable $err:FOFL0001 as xs:QName := fn:QName($err:NS, "err:FOFL0001");
+
+(:~
+ :
  : It is a static error if an updating expression is used in any position
  : other than one of the following:
  : - The topmost expression in the body of a query.

=== 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-19 16:28:31 +0000
@@ -455,6 +455,11 @@
 
     thePreviousItemKind = PREVIOUS_ITEM_WAS_TEXT;
   }
+  else if (item->isFunction()) // TODO: what about function items serialization?
+  {
+    // throw XQUERY_EXCEPTION(err::SENR0001, ERROR_PARAMS(item->show(), "function item node"));
+    tr << item->show();
+  }
   else if (!theEmitAttributes 
         && item->getNodeKind() == store::StoreConsts::attributeNode)
   {

=== 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-19 16:28:31 +0000
@@ -465,29 +465,62 @@
 void end_visit(function_item_expr& v)
 {
   CODEGEN_TRACE_OUT("");
-  store::Item_t lQName = v.get_qname();
-  store::Item_t lFItem;
-
-  bool isInline = (lQName == 0);
-
-  if (!isInline)
-  {
-    // literal function item
-    lFItem = new FunctionItem(theCCB, sctx, &v);
-  }
-  else
+
+  DynamicFunctionInfo* fnInfo = v.get_dynamic_fn_info();
+  fnInfo->theCCB = theCCB;
+  fnInfo->theSctx = sctx;
+  fnInfo->theLoc = qloc;
+  fnInfo->theFunction = v.get_function();
+  fnInfo->theQName = v.get_qname();
+  fnInfo->theArity = v.get_arity();
+
+  if (v.is_inline())
   {
     // inline function
-    std::vector<PlanIter_t> lVariableValues;
-    size_t lSize = v.get_vars().size();
+    size_t lSize = v.get_scoped_vars_values().size();
+
     for (size_t i = 0; i < lSize; ++i)
     {
-      lVariableValues.push_back(pop_itstack());
+      // if (!v.get_is_global_var()[i])
+      {
+        PlanIter_t varIter = NULL;
+        PlanIter_t enclosedIter = NULL;
+
+        if (!v.get_is_global_var()[i])
+        {
+          varIter = pop_itstack();
+          enclosedIter = varIter;
+          fnInfo->theScopedVarsIterators.push_back(varIter);
+        }
+
+        /*
+        store::Item* var_qname = NULL;
+        if (dynamic_cast<LetVarIterator*>(varIter.getp()) != NULL)
+          var_qname = dynamic_cast<LetVarIterator*>(varIter.getp())->getVarName();
+        else if (dynamic_cast<ForVarIterator*>(varIter.getp()) != NULL)
+          var_qname = dynamic_cast<ForVarIterator*>(varIter.getp())->getVarName();
+        else
+          var_qname = v.get_scoped_vars_names()[i].getp();
+
+        std::cerr << "--> PlanVisitor function_item_expr: var name: " << v.get_scoped_vars_names()[i]->show()
+            << " global: " << v.get_is_global_var()[i]
+            << " with iter: "
+            << (enclosedIter.getp()?enclosedIter->toString() : "NULL");
+        if (dynamic_cast<LetVarIterator*>(enclosedIter.getp()) != NULL)
+          std::cerr << " var name: " << dynamic_cast<LetVarIterator*>(enclosedIter.getp())->getVarName()->show();
+        else if (dynamic_cast<ForVarIterator*>(enclosedIter.getp()) != NULL)
+          std::cerr << " var name: " << dynamic_cast<ForVarIterator*>(enclosedIter.getp())->getVarName()->show();
+        else
+          std::cerr << " var name (from the expr, not the iterator): " << (var_qname? var_qname->show() : "NULL");
+        std::cerr << std::endl;
+        */
+      }
     }
-    lFItem = new FunctionItem(theCCB, sctx, &v, lVariableValues);
+
+    std::reverse(fnInfo->theScopedVarsIterators.begin(), fnInfo->theScopedVarsIterators.end());
   }
 
-  push_itstack(new SingletonIterator (sctx, qloc, lFItem));
+  push_itstack(new DynamicFunctionIterator(sctx, qloc, fnInfo));
 }
 
 
@@ -506,18 +539,49 @@
 
   ulong numArgs = (ulong)v.get_args().size() + 1;
 
-  std::vector<PlanIter_t> argIters(numArgs);
-
-  for (size_t i = 1; i < numArgs; ++i)
-  {
-    argIters[i] = pop_itstack();
-  }
-
-  argIters[0] = pop_itstack();
-
-  push_itstack(new DynamicFnCallIterator(sctx, qloc, argIters));
-}
-
+  std::vector<PlanIter_t> argIters;
+  
+  bool isPartialApply = false;
+  
+  // the arguments are reversed on the stack
+  for (csize i=0; i<v.get_dot_vars().size(); i++)
+  {
+    PlanIter_t iter = pop_itstack();
+    argIters.push_back(iter);
+    // std::cerr << "--> plan_visitor dot var iterator: " << iter->toString() << std::endl; // TODO
+  }
+
+  for (size_t i = 0; i < numArgs-1; ++i)
+  {
+    if (v.get_args()[i]->get_expr_kind() == argument_placeholder_expr_kind)
+      isPartialApply = true;
+
+    argIters.push_back(pop_itstack());
+  }
+
+  argIters.push_back(pop_itstack());
+
+  std::reverse(argIters.begin(), argIters.end());
+
+  push_itstack(new DynamicFnCallIterator(sctx, qloc, argIters, v.get_dot_vars().size(), isPartialApply, v.theCoercionTargetType));
+}
+
+
+/***************************************************************************//**
+
+********************************************************************************/
+bool begin_visit(argument_placeholder_expr& v)
+{
+  CODEGEN_TRACE_IN("");
+  return true;
+}
+
+void end_visit(argument_placeholder_expr& v)
+{
+  CODEGEN_TRACE_OUT("");
+  PlanIter_t it = new ArgumentPlaceholderIterator(sctx, qloc);
+  push_itstack(it);
+}
 
 /***************************************************************************//**
 
@@ -739,6 +803,8 @@
 
   bool isForVar = false;
 
+  // std::cerr << "--> general_var_codegen() on var: " << var.toString();
+
   switch (var.get_kind())
   {
   case var_expr::for_var:
@@ -829,6 +895,7 @@
 
   case var_expr::arg_var:
   {
+    ZORBA_ASSERT(arg_var_iter_map != NULL);
     PlanIter_t iter = base_var_codegen(var, *arg_var_iter_map);
     push_itstack(iter);
     break;
@@ -849,6 +916,7 @@
   }
 
   case var_expr::prolog_var:
+  case var_expr::hof_var:
   {
     push_itstack(new CtxVarIterator(sctx,
                                     qloc,
@@ -3553,6 +3621,11 @@
 #ifndef NDEBUG
   if (!itstack.empty())
   {
+    std::cout << "Plan_visitor partial iterator tree:\n"; // TODO: remove this debug output
+    XMLIterPrinter vp(std::cout);
+    print_iter_plan(vp, res);
+    std::cout<< std::endl;
+
     std::cout << "\nPlan_visitor stack still contains "
               << itstack.size() << " entries: " << std::endl;
     while (!itstack.empty())
@@ -3665,9 +3738,37 @@
     hash64map<std::vector<LetVarIter_t> *>* arg_var_map)
 {
   plan_visitor c(ccb, nextDynamicVarId, arg_var_map);
+
+  /*
+  std::cerr << "------------------- codegen: -------------------\n";
+  if (dynamic_cast<function_item_expr*>(root) != NULL)
+    std::cerr << "--> function_item_expr " << root->get_loc() << std::endl;
+
+  std::cerr << std::endl;
+  std::cerr << root->toString() << std::endl;
+  std::cerr << "------------------------------------------------\n";
+  */
+
   root->accept(c);
   PlanIter_t result = c.result();
 
+  /*
+  std::cerr << "--> arg_var_map: " << arg_var_map << " size: " << (arg_var_map==NULL?0 : arg_var_map->size()) << " iterators: ";
+  if (arg_var_map != NULL)
+  {
+    csize i = 0;
+    for (checked_vector<hash64map<std::vector<LetVarIter_t> *>::entry>::const_iterator it = arg_var_map->begin(); it != arg_var_map->end(); ++it, ++i)
+    {
+      var_expr* var = (var_expr*)it->key;
+      std::cerr << std::endl << "--> [" << i << "] " << var->toString() << "--> [" << i << "] referenced by:";
+      for (csize j=0; j < it->val->size(); j++)
+        std::cerr << " " << (*it->val)[j]->getId() << " = LetVarIterator";
+    }
+  }
+  std::cerr << std::endl << "------------------------------------------------\n";
+  */
+
+
   if (result != NULL &&
       descr != NULL &&
       Properties::instance()->printIteratorTree())

=== 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-19 16:28:31 +0000
@@ -1,12 +1,12 @@
 /*
  * Copyright 2006-2008 The FLWOR Foundation.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,18 +22,18 @@
 #include "compiler/expression/expr_visitor.h"
 
 /*______________________________________________________________________
-|  
+|
 |  Design note: Visitor pattern.  See, for example:
 |  "Modern C++ Design" by Andrei Alexandrescu,
 |  Addison Wesley (2001), Chapter 10.
 |_______________________________________________________________________*/
 
-namespace zorba 
+namespace zorba
 {
 
 class abstract_expr_visitor : public expr_visitor
 {
-public: 
+public:
   virtual ~abstract_expr_visitor() {}
 
 public:
@@ -80,6 +80,7 @@
   EXPR_VISITOR_METHODS(trycatch_expr);
   EXPR_VISITOR_METHODS(function_item_expr);
   EXPR_VISITOR_METHODS(dynamic_function_invocation_expr);
+  EXPR_VISITOR_METHODS(argument_placeholder_epxr);
 
   EXPR_VISITOR_METHODS (delete_expr);
   EXPR_VISITOR_METHODS (insert_expr);

=== 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-19 16:28:31 +0000
@@ -288,6 +288,13 @@
   return oss.str();
 }
 
+/*******************************************************************************
+  to mirror the Item's class show() method
+********************************************************************************/
+std::string expr::show() const  
+{ 
+  return toString(); 
+}
 
 /*******************************************************************************
 

=== 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-19 16:28:31 +0000
@@ -70,6 +70,7 @@
 
   fo_expr_kind,
   dynamic_function_invocation_expr_kind,
+  argument_placeholder_expr_kind,
   function_item_expr_kind,
 
   castable_expr_kind,
@@ -269,6 +270,8 @@
 
   std::string toString() const;
 
+  std::string show() const; // to mirror the Item's class show() method
+
 public:
   //
   void setVisitId(uint8_t id) { theVisitId = id; }

=== 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-19 16:28:31 +0000
@@ -50,6 +50,7 @@
   class trycatch_expr;
   class function_item_expr;
   class dynamic_function_invocation_expr;
+  class argument_placeholder_expr;
 
   class insert_expr;
   class delete_expr;

=== 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-19 16:28:31 +0000
@@ -31,6 +31,7 @@
 #include "compiler/api/compilercb.h"
 
 #include "functions/function.h"
+#include "functions/udf.h"
 
 #include "diagnostics/xquery_diagnostics.h"
 #include "diagnostics/util_macros.h"
@@ -147,7 +148,7 @@
 
     std::vector<expr*> names;
     std::vector<expr*> values;
-    
+
     names.reserve(e->theNames.size());
     values.reserve(e->theValues.size());
 
@@ -333,7 +334,7 @@
   }
   case dynamic_function_invocation_expr_kind:
   {
-    const dynamic_function_invocation_expr* e = 
+    const dynamic_function_invocation_expr* e =
     static_cast<const dynamic_function_invocation_expr*>(this);
 
     checked_vector<expr*> newArgs;
@@ -344,12 +345,27 @@
       newArgs.push_back((*ite)->clone(udf, subst));
     }
     
+    checked_vector<expr*> newDotVars;
+    for (checked_vector<expr*>::const_iterator ite = e->theDotVars.begin();
+         ite != e->theDotVars.end();
+         ++ite)
+    {
+      newDotVars.push_back((*ite)->clone(udf, subst));
+    }
+
     newExpr = theCCB->theEM->
     create_dynamic_function_invocation_expr(theSctx,
                                             udf,
                                             theLoc,
                                             e->theExpr->clone(udf, subst),
-                                            newArgs);
+                                            newArgs,
+                                            newDotVars,
+                                            e->theCoercionTargetType);
+    break;
+  }
+  case argument_placeholder_expr_kind:
+  {
+    newExpr = theCCB->theEM->create_argument_placeholder_expr(theSctx, udf, theLoc);
     break;
   }
   case function_item_expr_kind:
@@ -359,17 +375,23 @@
     function_item_expr* cloneExpr = theCCB->theEM->
     create_function_item_expr(theSctx,
                               udf,
-                              theLoc,
-                              e->theFunction->getName(),
-                              e->theFunction.getp(),
-                              e->theArity);
+                              get_loc(),
+                              e->theDynamicFunctionInfo->theFunction,
+                              e->theDynamicFunctionInfo->theFunction->getName(),
+                              e->theDynamicFunctionInfo->theArity,
+                              e->is_inline(),
+                              e->needs_context_item());
 
-    std::vector<expr*> lNewVariables;
-    for (std::vector<expr*>::const_iterator ite = e->theScopedVariables.begin();
-         ite != e->theScopedVariables.end();
-         ++ite)
+    std::vector<expr*>::const_iterator varIter = e->theDynamicFunctionInfo->theScopedVarsValues.begin();
+    std::vector<var_expr*>::const_iterator substVarIter = e->theDynamicFunctionInfo->theSubstVarsValues.begin();
+    std::vector<store::Item_t>::const_iterator nameIter = e->theDynamicFunctionInfo->theScopedVarsNames.begin();
+    std::vector<int>::const_iterator isGlobalIter = e->theDynamicFunctionInfo->theIsGlobalVar.begin();
+    for (; varIter != e->theDynamicFunctionInfo->theScopedVarsValues.end(); ++varIter, ++substVarIter, ++nameIter, ++isGlobalIter)
     {
-      cloneExpr->add_variable((*ite)->clone(udf, subst));
+      cloneExpr->add_variable((*varIter) ? (*varIter)->clone(udf, subst) : NULL,
+                              (*substVarIter) ? static_cast<var_expr*>((*substVarIter)->clone(udf, subst)) : NULL,
+                              *nameIter,
+                              *isGlobalIter);
     }
 
     newExpr = cloneExpr;
@@ -579,7 +601,7 @@
 
     transform_expr* cloneExpr = theCCB->theEM->
     create_transform_expr(theSctx, udf, theLoc);
-    
+
     for (std::vector<copy_clause*>::const_iterator ite = e->theCopyClauses.begin();
          ite != e->theCopyClauses.end();
          ++ite)
@@ -675,10 +697,10 @@
     for (; ite != end; ++ite)
     {
       assert(subst.find(*ite) != subst.end());
-      
+
       clonedExits.push_back(subst[*ite]);
     }
-    
+
     newExpr = theCCB->theEM->
     create_exit_catcher_expr(theSctx, udf, theLoc, clonedInput, clonedExits);
 

=== 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-19 16:28:31 +0000
@@ -195,9 +195,9 @@
 
           theArgsIter = oc->theOrderingExprs.begin();
           theArgsEnd = oc->theOrderingExprs.end();
-          
+
           theCurrentChild = &(*theArgsIter);
-          
+
           ++theArgsIter;
           theState = 3;
           return;
@@ -242,7 +242,7 @@
       while (theWincondIter < 2)
       {
         window_clause* wc = static_cast<window_clause *>(*theClausesIter);
-            
+
         flwor_wincond* wincond = (theWincondIter == 0 ?
                                   wc->theWinStartCond :
                                   wc->theWinStopCond );
@@ -269,7 +269,7 @@
         ++theArgsIter;
         return;
       }
-      
+
       theState = 1;
       ++theClausesIter;
       goto nextclause;
@@ -691,10 +691,12 @@
 
     EXPR_ITER_BEGIN();
 
-    theArgsIter = fiExpr->theScopedVariables.begin();
-    theArgsEnd = fiExpr->theScopedVariables.end();
+    theArgsIter = fiExpr->theDynamicFunctionInfo->theScopedVarsValues.begin();
+    theArgsEnd = fiExpr->theDynamicFunctionInfo->theScopedVarsValues.end();
     for (; theArgsIter != theArgsEnd; ++theArgsIter)
     {
+      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
+        continue;
       EXPR_ITER_NEXT(*theArgsIter);
     }
 
@@ -717,11 +719,26 @@
     {
       EXPR_ITER_NEXT(*theArgsIter);
     }
+    
+    theArgsIter = dfiExpr->theDotVars.begin();
+    theArgsEnd = dfiExpr->theDotVars.end();
+    for (; theArgsIter != theArgsEnd; ++theArgsIter)
+    {
+      if ( ! *theArgsIter)
+        continue;
+      EXPR_ITER_NEXT(*theArgsIter);
+    }
 
     EXPR_ITER_END();
     return;
   }
 
+  case argument_placeholder_expr_kind:
+  {
+    theIsDone = true;
+    return;
+  }
+
   case insert_expr_kind:
   {
     insert_expr* insExpr = static_cast<insert_expr*>(theExpr);

=== 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-19 16:28:31 +0000
@@ -787,9 +787,21 @@
     user_function* udf,
     const QueryLoc& loc,
     expr* anExpr,
-    const std::vector<expr*>& args)
-{
-  CREATE_AND_RETURN_EXPR(dynamic_function_invocation_expr, sctx, udf, loc, anExpr, args);
+    const std::vector<expr*>& args,
+    const std::vector<expr*>& dotVars,
+    xqtref_t coercionTargetType)
+{
+  CREATE_AND_RETURN_EXPR(dynamic_function_invocation_expr, sctx, udf, loc, anExpr, args, dotVars, coercionTargetType);
+}
+
+
+argument_placeholder_expr*
+ExprManager::create_argument_placeholder_expr(
+    static_context* sctx,
+    user_function* udf,
+    const QueryLoc& loc)
+{
+  CREATE_AND_RETURN_EXPR(argument_placeholder_expr, sctx, udf, loc);
 }
 
 
@@ -797,20 +809,24 @@
     static_context* sctx,
     user_function* udf,
     const QueryLoc& loc,
-    const store::Item* aQName,
     function* f,
-    uint32_t aArity)
+    store::Item* aQName,
+    uint32_t aArity,
+    bool isInline,
+    bool needsContextItem)
 {
-  CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc, aQName, f, aArity);
+  CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc, f, aQName, aArity, isInline, needsContextItem);
 }
 
 
 function_item_expr* ExprManager::create_function_item_expr(
     static_context* sctx,
     user_function* udf,
-    const QueryLoc& loc)
+    const QueryLoc& loc,
+    bool isInline,
+    bool needsContextItem)
 {
-  CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc);
+  CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc, isInline, needsContextItem);
 }
 
 

=== 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-19 16:28:31 +0000
@@ -480,20 +480,31 @@
       user_function* udf,
       const QueryLoc& loc,
       expr* anExpr,
-      const std::vector<expr*>& args);
+      const std::vector<expr*>& args,
+      const std::vector<expr*>& dotVars,
+      xqtref_t coercionTargetType);
+
+  argument_placeholder_expr* create_argument_placeholder_expr(
+      static_context* sctx,
+      user_function* udf,
+      const QueryLoc& loc);
 
   function_item_expr* create_function_item_expr(
       static_context* sctx,
       user_function* udf,
       const QueryLoc& loc,
-      const store::Item* aQName,
       function* f,
-      uint32_t aArity);
+      store::Item* aQName,
+      uint32_t aArity,
+      bool isInline,
+      bool needsContextItem);
 
   function_item_expr* create_function_item_expr(
       static_context* sctx,
       user_function* udf,
-      const QueryLoc& loc);
+      const QueryLoc& loc,
+      bool isInline,
+      bool needsContextItem);
 
   ftcontains_expr* create_ftcontains_expr(
       static_context*,
@@ -607,7 +618,7 @@
       user_function* udf,
       const QueryLoc& loc,
       bool general);
- 
+
   pragma* create_pragma(
       const store::Item_t&,
       const zstring&);

=== 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-19 16:28:31 +0000
@@ -152,7 +152,10 @@
 
     BEGIN_PUT_NO_EOL(vref) ;
     put_qname(varExpr->get_name(), os);
-    os << expr_addr(varExpr) << " ]" << endl;
+    os << expr_addr(varExpr);
+    os << " kind=" << var_expr::decode_var_kind(varExpr->get_kind()); // TODO: remove this info
+    os << " uniqueId=" << varExpr->get_unique_id(); // TODO: remove this info
+    os << " ]" << endl;
     return os;
   }
   else
@@ -185,6 +188,11 @@
     put_qname(get_name(), os);
   }
 
+  if (get_kind() == prolog_var || get_kind() == hof_var)
+  {
+    os << " uniqueId=" << theUniqueId;
+  }
+
 #if VERBOSE
   if (theDeclaredType != NULL)
   {
@@ -224,7 +232,7 @@
   }
 
   os << endl << indent << "[\n" << inc_indent;
-    
+
   theDomainExpr->put(os);
 
   END_PUT();
@@ -499,7 +507,7 @@
 ostream& fo_expr::put(ostream& os) const
 {
   const store::Item* qname = theFunction->getName();
-  BEGIN_PUT_MSG( qname->getStringValue() << "/" << num_args() );
+  BEGIN_PUT_MSG( qname->getStringValue() << "#" << num_args() );
   csize numArgs = num_args();
 
   for (csize i = 0; i < numArgs; ++i)
@@ -525,18 +533,43 @@
 
 std::ostream& function_item_expr::put(std::ostream& os) const
 {
-  os << indent << "funtion_item_expr " << expr_addr(this) << inc_indent;
+  os << indent << "funtion_item_expr" << expr_addr(this) << inc_indent;
 
-  if (theQName != NULL)
+  if (theDynamicFunctionInfo->theQName != NULL)
   {
-    os << " " << theQName->getStringValue() << "/" << theArity;
+    os << " " << theDynamicFunctionInfo->theQName->getStringValue()
+       << "#" << theDynamicFunctionInfo->theArity;
     os << dec_indent << endl;
     return os;
   }
   else
   {
-    os << " inline udf (" << theFunction.getp() << ") [\n";
-    reinterpret_cast<const user_function*>(theFunction.getp())->getBody()->put(os);
+    os << " inline udf (" << theDynamicFunctionInfo->theFunction << ") [\n";
+
+    const signature& sig = get_function()->getSignature();
+    std::vector<xqtref_t> paramTypes;
+    for (csize i=0; i < sig.paramCount(); i++)
+      paramTypes.push_back(sig[i]);
+    xqtref_t funcType = get_type_manager()->create_function_type(paramTypes, sig.returnType(), TypeConstants::QUANT_ONE);
+
+    // TODO: remove type
+    os << indent << "type: " << funcType->toString() << std::endl;
+
+    for (ulong i = 0; i < theDynamicFunctionInfo->theScopedVarsValues.size(); i++)
+    {
+      os << indent << "using $"
+         << theDynamicFunctionInfo->theScopedVarsNames[i]->getStringValue()
+         << (theDynamicFunctionInfo->theIsGlobalVar[i] ? " global=1" : "") << " := [";
+      os << endl << inc_indent;
+      if (theDynamicFunctionInfo->theScopedVarsValues[i])
+        theDynamicFunctionInfo->theScopedVarsValues[i]->put(os);
+      os << dec_indent << indent << "]" << endl;
+    }
+
+    if (theDynamicFunctionInfo->theFunction != NULL &&
+        static_cast<user_function*>(theDynamicFunctionInfo->theFunction.getp())->getBody() != NULL)
+      static_cast<user_function*>(theDynamicFunctionInfo->theFunction.getp())->getBody()->put(os);
+
     END_PUT();
   }
 }
@@ -545,16 +578,31 @@
 ostream& dynamic_function_invocation_expr::put(ostream& os) const
 {
   BEGIN_PUT( dynamic_function_invocation_expr );
-
+ 
   theExpr->put(os);
-
+ 
   for (csize i = 0; i < theArgs.size(); ++i)
     theArgs[i]->put(os);
+  
+  for (csize i = 0; i < theDotVars.size(); i++)
+    if (theDotVars[i] != NULL)
+    {
+      os << indent << "using $"; 
+      theDotVars[i]->put(os);
+    }
 
   END_PUT();
 }
 
 
+ostream& argument_placeholder_expr::put(ostream& os) const
+{
+  BEGIN_PUT_NO_EOL( argument_placeholder_expr );
+  os << "? ]\n";
+  return os;
+}
+
+
 ostream& instanceof_expr::put( ostream& os) const
 {
   BEGIN_PUT_MSG("instanceof_expr " << theTargetType->toSchemaString());
@@ -742,7 +790,7 @@
 
   if (theValue->isFunction())
   {
-    os << "functrion item [ " << theValue->show() << " ]";
+    os << "function item [ " << theValue->show() << " ]";
   }
   else
   {

=== 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-19 16:28:31 +0000
@@ -254,6 +254,7 @@
     case var_expr::catch_var: // TODO
     case var_expr::arg_var:
     case var_expr::eval_var:
+    case var_expr::hof_var:
     {
       break;
     }
@@ -600,6 +601,12 @@
     return;
   }
 
+  case argument_placeholder_expr_kind:
+  {
+    theType = rtm.ITEM_TYPE_STAR;
+    return;
+  }
+
   case function_item_expr_kind:
   {
     theType = rtm.ANY_FUNCTION_TYPE_ONE;

=== 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-19 16:28:31 +0000
@@ -1,12 +1,12 @@
 /*
  * Copyright 2006-2008 The FLWOR Foundation.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,7 +20,7 @@
 #include <zorba/config.h>
 #include "compiler/expression/expr_classes.h"
 
-namespace zorba 
+namespace zorba
 {
 
 #ifndef ZORBA_NO_FULL_TEXT
@@ -29,7 +29,7 @@
 
 class expr_visitor
 {
-public: 
+public:
 
   virtual ~expr_visitor() { }
 
@@ -78,6 +78,7 @@
   DECL_EXPR_VISITOR_VISIT_MEM_FNS( trycatch_expr );
   DECL_EXPR_VISITOR_VISIT_MEM_FNS( function_item_expr );
   DECL_EXPR_VISITOR_VISIT_MEM_FNS( dynamic_function_invocation_expr );
+  DECL_EXPR_VISITOR_VISIT_MEM_FNS( argument_placeholder_expr );
 
   DECL_EXPR_VISITOR_VISIT_MEM_FNS(insert_expr);
   DECL_EXPR_VISITOR_VISIT_MEM_FNS(delete_expr);

=== 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-19 16:28:31 +0000
@@ -15,6 +15,8 @@
  */
 #include "stdafx.h"
 
+#include "store/api/item_factory.h"
+
 #include "compiler/expression/function_item_expr.h"
 #include "compiler/expression/expr_visitor.h"
 
@@ -27,7 +29,7 @@
 namespace zorba {
 
 
-DEF_EXPR_ACCEPT (dynamic_function_invocation_expr)
+DEF_EXPR_ACCEPT (dynamic_function_invocation_expr);
 
 
 dynamic_function_invocation_expr::dynamic_function_invocation_expr(
@@ -36,11 +38,15 @@
     user_function* udf,
     const QueryLoc& loc,
     expr* anExpr,
-    const std::vector<expr*>& args)
+    const std::vector<expr*>& args,
+    const std::vector<expr*>& dotVars,
+    xqtref_t coercionTargetType)
   :
   expr(ccb, sctx, udf, loc, dynamic_function_invocation_expr_kind),
   theExpr(anExpr),
-  theArgs(args)
+  theArgs(args),
+  theDotVars(dotVars),
+  theCoercionTargetType(coercionTargetType)
 {
   assert(anExpr != 0);
   compute_scripting_kind();
@@ -61,7 +67,19 @@
 
 ********************************************************************************/
 
-DEF_EXPR_ACCEPT (function_item_expr)
+DEF_EXPR_ACCEPT (argument_placeholder_expr);
+
+void argument_placeholder_expr::compute_scripting_kind()
+{
+  theScriptingKind = SIMPLE_EXPR;
+}
+
+
+/*******************************************************************************
+
+********************************************************************************/
+
+DEF_EXPR_ACCEPT (function_item_expr);
 
 
 function_item_expr::function_item_expr(
@@ -69,14 +87,20 @@
     static_context* sctx,
     user_function* udf,
     const QueryLoc& loc,
-    const store::Item* aQName,
     function* f,
-    uint32_t aArity)
+    store::Item* aQName,
+    uint32_t aArity,
+    bool isInline,
+    bool needsContextItem)
   :
   expr(ccb, sctx, udf, loc, function_item_expr_kind),
-  theQName(const_cast<store::Item*>(aQName)),
-  theFunction(f),
-  theArity(aArity)
+  theDynamicFunctionInfo(new DynamicFunctionInfo(
+                         loc,
+                         f,
+                         aQName,
+                         aArity,
+                         isInline,
+                         needsContextItem))
 {
   assert(f != NULL);
   compute_scripting_kind();
@@ -87,46 +111,35 @@
     CompilerCB* ccb,
     static_context* sctx,
     user_function* udf,
-    const QueryLoc& loc)
+    const QueryLoc& loc,
+    bool isInline,
+    bool needsContextItem)
   :
   expr(ccb, sctx, udf, loc, function_item_expr_kind),
-  theQName(0),
-  theFunction(NULL),
-  theArity(0)
+  theDynamicFunctionInfo(new DynamicFunctionInfo(
+                         loc,
+                         NULL,
+                         NULL,
+                         0,
+                         isInline,
+                         needsContextItem))
 {
   theScriptingKind = SIMPLE_EXPR;
 }
 
 
-function_item_expr::~function_item_expr()
-{
-}
-
-
-user_function* function_item_expr::get_function() const 
-{
-  assert(theFunction->isUdf());
-  return static_cast<user_function*>(theFunction.getp());
-}
-
-
-void function_item_expr::add_variable(expr* var)
-{
-  theScopedVariables.push_back(var);
-}
-
-
-const std::vector<expr*>& function_item_expr::get_vars() const
-{
-  return theScopedVariables;
-}
-
-
-void function_item_expr::set_function(user_function_t& udf)
-{
-  theFunction = udf;
-  theArity = udf->getArity();
-  compute_scripting_kind();
+void function_item_expr::add_variable(expr* var, var_expr* substVar, const store::Item_t& name, int isGlobal)
+{
+  theDynamicFunctionInfo->add_variable(var, substVar, name, isGlobal);
+}
+
+
+void function_item_expr::set_function(user_function* udf)
+{
+  theDynamicFunctionInfo->theFunction = udf;
+  theDynamicFunctionInfo->theArity = udf->getArity();
+  theDynamicFunctionInfo->theQName = udf->getName();
+  // compute_scripting_kind();
 }
 
 
@@ -136,6 +149,17 @@
   theScriptingKind = SIMPLE_EXPR;
 }
 
+store::Item_t function_item_expr::create_inline_fname(const QueryLoc& loc) 
+{
+  store::Item_t name;
+  std::stringstream ss;
+  ss << "inline function(";
+  ss << loc;
+  ss << ")";
+  GENV_ITEMFACTORY->createQName(name, "", "", ss.str());
+  return name;
+}
+
 
 }//end of namespace
 /* vim:set et sw=2 ts=2: */

=== 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-19 16:28:31 +0000
@@ -23,9 +23,38 @@
 
 #include "store/naive/shared_types.h"
 
+#include "runtime/function_item/function_item.h"
+
+
 namespace zorba {
 
 /*******************************************************************************
+  [133]     ArgumentPlaceholder      ::=      "?"
+********************************************************************************/
+class argument_placeholder_expr : public expr
+{
+  friend class ExprIterator;
+  friend class expr;
+  friend class ExprManager;
+
+protected:
+  argument_placeholder_expr(CompilerCB* ccb, static_context* sctx, user_function* udf, const QueryLoc& loc)
+    :
+    expr(ccb, sctx, udf, loc, argument_placeholder_expr_kind)
+  {
+    compute_scripting_kind();
+  }
+
+public:
+  void compute_scripting_kind();
+
+  void accept(expr_visitor&);
+
+  std::ostream& put(std::ostream& os) const;
+};
+
+
+/*******************************************************************************
 
   [121] FilterExpr ::= PrimaryExpr (Predicate | DynamicFunctionInvocation)*
 
@@ -43,6 +72,12 @@
 protected:
   expr                * theExpr;
   std::vector<expr*>    theArgs;
+  
+  std::vector<expr*>    theDotVars; // context item vars
+
+  // TODO: must be protected
+public:
+  xqtref_t               theCoercionTargetType;
 
 protected:
   dynamic_function_invocation_expr(
@@ -51,12 +86,16 @@
       user_function* udf,
       const QueryLoc& loc,
       expr* anExpr,
-      const std::vector<expr*>& args);
+      const std::vector<expr*>& args,
+      const std::vector<expr*>& dotVars,
+      xqtref_t coercionTargetType);
 
 public:
   const expr* get_function() const { return theExpr; }
 
   const std::vector<expr*>& get_args() const { return theArgs; }
+  
+  const std::vector<expr*>& get_dot_vars() const { return theDotVars; }
 
   void compute_scripting_kind();
 
@@ -74,10 +113,6 @@
 
   InlineFunction ::= "function" "(" ParamList? ")" ("as" SequenceType)? EnclosedExpr
 
-  theQName :
-  NULL in case of inline function. Otherwise, the qname of the named function
-  in the LiteralFunctionItem.
-
   theFunction :
   This is always a pointer to a user_function obj. In case of an inline function
   expr, it is an anonymous user_function obj that is created on-the-fly by the
@@ -103,50 +138,64 @@
   friend class expr;
   friend class ExprManager;
 
-private:
-  store::Item_t       theQName;
-  function_t          theFunction;
-  uint32_t            theArity;
-  std::vector<expr*>  theScopedVariables;
-
-public:
-
+protected:
+  DynamicFunctionInfo_t       theDynamicFunctionInfo;
+  
 protected:
   function_item_expr(
       CompilerCB* ccb,
       static_context* sctx,
       user_function* udf,
       const QueryLoc& loc,
-      const store::Item* aQName,
       function* f,
-      uint32_t aArity);
+      store::Item* aQName,
+      uint32_t aArity,
+      bool isInline,
+      bool needsContextItem);
 
   function_item_expr(
       CompilerCB* ccb,
       static_context* sctx,
       user_function* udf,
-      const QueryLoc& loc);
-
+      const QueryLoc& loc,
+      bool isInline,
+      bool needsContextItem);
+  
 public:
-  ~function_item_expr();
-
-  void add_variable(expr* var);
-
-  void set_function(user_function_t& udf);
-
-  user_function* get_function() const;
-
-  const store::Item_t& get_qname() const { return theQName; }
-
-  uint32_t get_arity() const { return theArity; }
-
-  const std::vector<expr*>& get_vars() const;
+  DynamicFunctionInfo* get_dynamic_fn_info() { return theDynamicFunctionInfo; }
+
+  void add_variable(expr* var, var_expr* substVar, const store::Item_t& name, int isGlobal);
+
+  const std::vector<expr*>& get_scoped_vars_values() const { return theDynamicFunctionInfo->theScopedVarsValues; }
+
+  const std::vector<var_expr*>& get_subst_vars_values() const { return theDynamicFunctionInfo->theSubstVarsValues; }
+
+  const std::vector<store::Item_t>& get_scoped_vars_names() const { return theDynamicFunctionInfo->theScopedVarsNames; }
+
+  const std::vector<int>& get_is_global_var() const { return theDynamicFunctionInfo->theIsGlobalVar; }
+
+  void set_function(user_function* udf);
+
+  function* get_function() const { return theDynamicFunctionInfo->theFunction; }
+
+  const store::Item_t& get_qname() const { return theDynamicFunctionInfo->theQName; }
+
+  uint32_t get_arity() const { return theDynamicFunctionInfo->theArity; }
+  
+  bool is_inline() const { return theDynamicFunctionInfo->theIsInline; }
+  
+  bool needs_context_item() const { return theDynamicFunctionInfo->theNeedsContextItem; }
 
   void compute_scripting_kind();
 
   void accept(expr_visitor&);
 
   std::ostream& put(std::ostream& os) const;
+  
+public:
+  // Given a location, will create an inline function name string such 
+  // as "inline function(loc)"
+  static store::Item_t create_inline_fname(const QueryLoc& loc);
 };
 
 } //end of namespace

=== 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-19 16:28:31 +0000
@@ -53,6 +53,7 @@
   case count_var: return "CNT"; break;
   case score_var: return "SCORE"; break;
   case prolog_var: return "PROLOG"; break;
+  case hof_var: return "HOF"; break;
   case local_var: return "LOCAL"; break;
   case catch_var: return "CATCH"; break;
   case copy_var: return "COPY"; break;
@@ -315,7 +316,7 @@
 ********************************************************************************/
 void var_expr::remove_set_expr(expr* e)
 {
-  assert(theVarKind == local_var || theVarKind == prolog_var);
+  assert(theVarKind == local_var || theVarKind == prolog_var || theVarKind == hof_var);
 
   bool found = false;
   VarSetExprs::iterator ite = theSetExprs.begin();

=== 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-19 16:28:31 +0000
@@ -145,6 +145,8 @@
 
     prolog_var,
 
+    hof_var,      // used by HoF functions, behaves similarly to prolog vars
+
     local_var,
 
     arg_var

=== 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-19 16:28:31 +0000
@@ -1,10 +1,8 @@
-
-/* A Bison parser, made by GNU Bison 2.4.1.  */
+/* A Bison parser, made by GNU Bison 2.6.2.  */
 
 /* Skeleton implementation for Bison LALR(1) parsers in C++
    
-      Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
-   Foundation, Inc.
+      Copyright (C) 2002-2012 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -36,9 +34,8 @@
 #define yylex   zorbalex
 
 /* First part of user declarations.  */
-
-/* Line 311 of lalr1.cc  */
-#line 87 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 278 of lalr1.cc  */
+#line 87 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
 
 
 #include "common/common.h"
@@ -73,17 +70,15 @@
 using namespace zorba;
 
 
-
-/* Line 311 of lalr1.cc  */
-#line 79 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+/* Line 278 of lalr1.cc  */
+#line 75 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
 
 
 #include "xquery_parser.hpp"
 
 /* User implementation prologue.  */
-
-/* Line 317 of lalr1.cc  */
-#line 908 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 284 of lalr1.cc  */
+#line 908 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
 
 // HACK to trigger rchandle release: rchandles are freed when refcount == 0
 // (not <= 0); but Bison never increments the refcount, so we do it manually...
@@ -93,9 +88,8 @@
         RCHelper::removeReference( ref );
     }
 }
-
-/* Line 317 of lalr1.cc  */
-#line 1033 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 284 of lalr1.cc  */
+#line 1033 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
 
 #include "compiler/parser/xquery_scanner.h"
 
@@ -103,12 +97,20 @@
 #define yylex driver.lexer->lex
 
 
-
-/* Line 317 of lalr1.cc  */
-#line 109 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+/* Line 284 of lalr1.cc  */
+#line 102 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+
+
+# ifndef YY_NULL
+#  if defined __cplusplus && 201103L <= __cplusplus
+#   define YY_NULL nullptr
+#  else
+#   define YY_NULL 0
+#  endif
+# endif
 
 #ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* FIXME: INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -119,6 +121,27 @@
 # endif
 #endif
 
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+   If N is 0, then set CURRENT to the empty location which ends
+   the previous symbol: RHS[0] (always defined).  */
+
+# ifndef YYLLOC_DEFAULT
+#  define YYLLOC_DEFAULT(Current, Rhs, N)                               \
+    do                                                                  \
+      if (N)                                                            \
+        {                                                               \
+          (Current).begin  = YYRHSLOC (Rhs, 1).begin;                   \
+          (Current).end    = YYRHSLOC (Rhs, N).end;                     \
+        }                                                               \
+      else                                                              \
+        {                                                               \
+          (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end;      \
+        }                                                               \
+    while (/*CONSTCOND*/ false)
+# endif
+
+
 /* Suppress unused-variable warnings by "using" E.  */
 #define YYUSE(e) ((void) (e))
 
@@ -168,14 +191,9 @@
 #define YYRECOVERING()  (!!yyerrstatus_)
 
 
-/* Line 380 of lalr1.cc  */
-#line 1 "[Bison:b4_percent_define_default]"
-
 namespace zorba {
-
-/* Line 380 of lalr1.cc  */
-#line 178 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-#if YYERROR_VERBOSE
+/* Line 352 of lalr1.cc  */
+#line 197 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
 
   /* Return YYSTR after stripping away unnecessary quotes and
      backslashes, so that it's suitable for yyerror.  The heuristic is
@@ -214,7 +232,6 @@
     return yystr;
   }
 
-#endif
 
   /// Build a parser object.
   xquery_parser::xquery_parser (xquery_driver& driver_yyarg)
@@ -242,6 +259,9 @@
   {
     YYUSE (yylocationp);
     YYUSE (yyvaluep);
+    std::ostream& yyo = debug_stream ();
+    std::ostream& yyoutput = yyo;
+    YYUSE (yyoutput);
     switch (yytype)
       {
          default:
@@ -274,2525 +294,1965 @@
 
     switch (yytype)
       {
-        case 110: /* "\"'DECIMAL'\"" */
-
-/* Line 480 of lalr1.cc  */
-#line 906 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ delete (yyvaluep->decval); };
-
-/* Line 480 of lalr1.cc  */
-#line 285 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 124: /* "\"'DOUBLE'\"" */
-
-/* Line 480 of lalr1.cc  */
-#line 905 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ delete (yyvaluep->dval); };
-
-/* Line 480 of lalr1.cc  */
-#line 294 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 149: /* "\"'INTEGER'\"" */
-
-/* Line 480 of lalr1.cc  */
-#line 904 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ delete (yyvaluep->ival); };
-
-/* Line 480 of lalr1.cc  */
-#line 303 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 338: /* "VersionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 312 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 339: /* "MainModule" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 321 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 340: /* "LibraryModule" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 330 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 341: /* "ModuleDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 339 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 342: /* "SIND_DeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 348 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 343: /* "SIND_Decl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 357 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 344: /* "Setter" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 366 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 345: /* "BoundarySpaceDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 375 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 346: /* "DefaultCollationDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 384 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 347: /* "BaseURIDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 393 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 348: /* "ConstructionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 402 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 349: /* "OrderingModeDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 411 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 350: /* "EmptyOrderDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 420 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 351: /* "CopyNamespacesDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 429 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 352: /* "Import" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 438 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 353: /* "SchemaImport" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 447 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 354: /* "URILiteralList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 456 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 355: /* "SchemaPrefix" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 465 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 356: /* "ModuleImport" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 474 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 357: /* "NamespaceDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 483 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 358: /* "DefaultNamespaceDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 492 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 359: /* "VFO_DeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 501 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 360: /* "VFO_Decl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 510 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 361: /* "DecimalFormatDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 519 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 362: /* "DecimalFormatParamList" */
-
-/* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ delete (yyvaluep->vstrpair); };
-
-/* Line 480 of lalr1.cc  */
-#line 528 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 363: /* "DecimalFormatParam" */
-
-/* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ delete (yyvaluep->strpair); };
-
-/* Line 480 of lalr1.cc  */
-#line 537 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 365: /* "OptionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 546 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 366: /* "FTOptionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 555 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 367: /* "CtxItemDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 564 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 368: /* "CtxItemDecl2" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 573 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 369: /* "CtxItemDecl3" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 582 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 370: /* "CtxItemDecl4" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 591 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 371: /* "VarDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 600 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 372: /* "VarNameAndType" */
-
-/* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ delete (yyvaluep->varnametype); };
-
-/* Line 480 of lalr1.cc  */
-#line 609 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 373: /* "AnnotationList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 618 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 374: /* "Annotation" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 627 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 375: /* "AnnotationLiteralList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 636 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 376: /* "FunctionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 645 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 377: /* "FunctionDecl2" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 654 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 378: /* "FunctionDeclSimple" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 663 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 379: /* "FunctionDeclUpdating" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 672 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 380: /* "FunctionSig" */
-
-/* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ delete (yyvaluep->fnsig); };
-
-/* Line 480 of lalr1.cc  */
-#line 681 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 381: /* "ParamList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 690 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 382: /* "Param" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 699 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 383: /* "CollectionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 708 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 385: /* "IndexDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 717 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 386: /* "IndexKeyList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 726 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 387: /* "IndexKeySpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 735 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 388: /* "IntegrityConstraintDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 744 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 389: /* "QueryBody" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 753 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 390: /* "StatementsAndOptionalExprTop" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 762 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 391: /* "StatementsAndOptionalExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 771 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 392: /* "StatementsAndExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 780 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 393: /* "Statements" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 789 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 394: /* "Statement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 798 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 395: /* "BlockStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 396: /* "BlockExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 397: /* "EnclosedStatementsAndOptionalExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 825 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 398: /* "VarDeclStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 834 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 401: /* "AssignStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 843 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 402: /* "ApplyStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 852 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 403: /* "ExitStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 861 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 404: /* "WhileStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 870 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 405: /* "FlowCtlStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 879 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 406: /* "FLWORStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 888 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 407: /* "ReturnStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 897 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 408: /* "IfStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 906 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 409: /* "TryStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 915 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 410: /* "CatchListStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 924 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 411: /* "CatchStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 412: /* "Expr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 942 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 413: /* "ExprSingle" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 951 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 414: /* "ExprSimple" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 960 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 415: /* "FLWORExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 969 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 416: /* "ReturnExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 978 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 419: /* "FLWORWinCond" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 987 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 420: /* "WindowClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 996 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 421: /* "CountClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1005 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 422: /* "ForLetWinClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1014 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 424: /* "FLWORClauseList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1023 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 425: /* "ForClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1032 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 426: /* "VarInDeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1041 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 427: /* "VarInDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1050 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 428: /* "PositionalVar" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1059 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 429: /* "FTScoreVar" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1068 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 430: /* "LetClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1077 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 431: /* "VarGetsDeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1086 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 432: /* "VarGetsDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1095 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 433: /* "WindowVarDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1104 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 434: /* "WindowVars" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1113 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 435: /* "WindowVars3" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1122 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 436: /* "WindowVars2" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1131 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 437: /* "WhereClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1140 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 438: /* "GroupByClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1149 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 439: /* "GroupSpecList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1158 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 440: /* "GroupSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1167 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 441: /* "GroupCollationSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1176 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 442: /* "OrderByClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1185 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 443: /* "OrderSpecList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1194 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 444: /* "OrderSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1203 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 445: /* "OrderModifier" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1212 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 446: /* "OrderDirSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1221 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 447: /* "OrderEmptySpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1230 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 448: /* "OrderCollationSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1239 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 449: /* "QuantifiedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1248 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 450: /* "QVarInDeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1257 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 451: /* "QVarInDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1266 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 452: /* "SwitchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1275 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 453: /* "SwitchCaseClauseList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1284 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 454: /* "SwitchCaseClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1293 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 455: /* "SwitchCaseOperandList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1302 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 456: /* "SwitchStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1311 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 459: /* "TypeswitchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1320 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 460: /* "TypeswitchStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1329 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 461: /* "CaseClauseList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1338 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 462: /* "CaseClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1347 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 465: /* "IfExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1356 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 466: /* "OrExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1365 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 467: /* "AndExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1374 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 468: /* "ComparisonExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1383 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 470: /* "FTContainsExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1392 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 471: /* "StringConcatExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1401 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 472: /* "opt_FTIgnoreOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1410 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 473: /* "RangeExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1419 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 474: /* "AdditiveExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1428 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 475: /* "MultiplicativeExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1437 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 476: /* "UnionExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1446 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 477: /* "IntersectExceptExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1455 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 478: /* "InstanceofExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1464 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 479: /* "TreatExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1473 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 480: /* "CastableExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1482 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 481: /* "CastExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1491 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 482: /* "UnaryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1500 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 483: /* "SignList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1509 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 484: /* "ValueExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1518 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 485: /* "SimpleMapExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1527 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 486: /* "ValueComp" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1536 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 487: /* "NodeComp" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1545 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 488: /* "ValidateExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1554 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 489: /* "ExtensionExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1563 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 490: /* "Pragma_list" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1572 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 491: /* "Pragma" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1581 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 492: /* "PathExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1590 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 494: /* "RelativePathExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1599 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 495: /* "StepExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1608 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 496: /* "AxisStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1617 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 497: /* "ForwardStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1626 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 498: /* "ForwardAxis" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1635 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 499: /* "AbbrevForwardStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1644 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 500: /* "ReverseStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1653 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 501: /* "ReverseAxis" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1662 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 502: /* "NodeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1671 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 503: /* "NameTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1680 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 504: /* "Wildcard" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1689 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 505: /* "FilterExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1698 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 506: /* "PredicateList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1707 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 507: /* "Predicate" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1716 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 508: /* "PrimaryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1725 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 509: /* "Literal" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1734 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 510: /* "NumericLiteral" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1743 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 511: /* "VarRef" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1752 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 512: /* "ParenthesizedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1761 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 513: /* "ContextItemExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1770 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 514: /* "OrderedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1779 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 515: /* "UnorderedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1788 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 516: /* "FunctionCall" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1797 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 517: /* "ArgList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1806 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 518: /* "Constructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1815 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 519: /* "DirectConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1824 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 520: /* "DirElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1833 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 521: /* "DirElemContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1842 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 522: /* "DirAttributeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1851 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 523: /* "DirAttr" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1860 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 525: /* "DirAttributeValue" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1869 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 526: /* "opt_QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1878 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 527: /* "QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1887 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 528: /* "opt_AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1896 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 529: /* "AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1905 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 530: /* "QuoteAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1914 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 531: /* "AposAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1923 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 532: /* "DirElemContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1932 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 533: /* "CommonContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1941 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 534: /* "DirCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1950 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 535: /* "DirPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1959 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 536: /* "CDataSection" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1968 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 537: /* "ComputedConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1977 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 538: /* "CompDocConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1986 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 539: /* "CompElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1995 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 540: /* "CompAttrConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2004 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 541: /* "CompTextConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2013 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 542: /* "CompCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2022 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 543: /* "CompPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2031 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 544: /* "SingleType" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2040 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 545: /* "TypeDeclaration" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2049 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 546: /* "SequenceType" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2058 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 547: /* "OccurrenceIndicator" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2067 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 548: /* "ItemType" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2076 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 549: /* "TypeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2085 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 550: /* "AtomicType" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2094 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 551: /* "KindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2103 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 552: /* "AnyKindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2112 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 553: /* "DocumentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2121 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 554: /* "TextTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2130 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 555: /* "CommentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2139 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 556: /* "PITest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2148 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 557: /* "AttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2157 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 558: /* "SchemaAttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2166 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 559: /* "ElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2175 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 560: /* "SchemaElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2184 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 561: /* "TypeName" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2193 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 562: /* "TypeName_WITH_HOOK" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2202 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 563: /* "StringLiteral" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2211 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 568: /* "AnyFunctionTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2220 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 569: /* "TypedFunctionTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2229 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 572: /* "InsertExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2238 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 573: /* "DeleteExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2247 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 574: /* "ReplaceExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2256 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 575: /* "RenameExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2265 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 576: /* "TransformExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2274 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 577: /* "VarNameList" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2283 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 578: /* "VarNameDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2292 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 579: /* "TryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2301 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 580: /* "CatchListExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2310 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 581: /* "CatchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2319 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 582: /* "BracedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2328 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 583: /* "NameTestList" */
-
-/* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ delete (yyvaluep->name_test_list); };
-
-/* Line 480 of lalr1.cc  */
-#line 2337 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 584: /* "FTSelection" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2346 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 587: /* "FTOr" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2355 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 588: /* "FTAnd" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2364 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 589: /* "FTMildNot" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2373 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 590: /* "FTUnaryNot" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2382 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 591: /* "FTPrimaryWithOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2391 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 592: /* "opt_FTMatchOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2400 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 594: /* "FTWeight" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2409 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 595: /* "FTPrimary" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2418 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 596: /* "opt_FTTimes" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2427 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 597: /* "FTExtensionSelection" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2436 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 599: /* "FTWords" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2445 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 600: /* "FTWordsValue" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2454 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 602: /* "FTAnyallOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2463 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 605: /* "FTPosFilter" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2472 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 606: /* "FTOrder" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2481 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 607: /* "FTWindow" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2490 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 608: /* "FTDistance" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2499 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 609: /* "FTUnit" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2508 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 610: /* "FTMatchOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2517 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 611: /* "FTMatchOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2526 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 612: /* "FTCaseOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2535 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 613: /* "FTDiacriticsOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2544 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 614: /* "FTExtensionOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2553 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 615: /* "FTStemOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2562 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 616: /* "FTThesaurusOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2571 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 620: /* "FTThesaurusID" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2580 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 623: /* "FTStopWordOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2589 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 624: /* "FTStopWords" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2598 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 628: /* "FTStopWordsInclExcl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2607 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 629: /* "FTLanguageOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2616 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 630: /* "FTWildCardOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2625 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 631: /* "FTContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2634 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 632: /* "FTTimes" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2643 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 633: /* "FTRange" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2652 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 634: /* "FTScope" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2661 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 635: /* "FTBigUnit" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2670 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 636: /* "FTIgnoreOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2679 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 637: /* "JSONArrayConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2688 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 638: /* "JSONSimpleObjectUnion" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2697 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 639: /* "JSONAccumulatorObjectUnion" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2706 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 640: /* "JSONObjectConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2715 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 641: /* "JSONPairList" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2724 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 642: /* "JSONInsertExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2733 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 643: /* "JSONAppendExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2742 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 644: /* "JSONDeleteExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2751 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 645: /* "JSONRenameExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2760 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 646: /* "JSONReplaceExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2769 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 653: /* "QNAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2778 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 654: /* "FUNCTION_NAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2787 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 655: /* "EQNAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2796 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+        case 110: /* "'DECIMAL'" */
+/* Line 453 of lalr1.cc  */
+#line 906 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ delete ((*yyvaluep).decval); };
+/* Line 453 of lalr1.cc  */
+#line 303 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 124: /* "'DOUBLE'" */
+/* Line 453 of lalr1.cc  */
+#line 905 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ delete ((*yyvaluep).dval); };
+/* Line 453 of lalr1.cc  */
+#line 310 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 149: /* "'INTEGER'" */
+/* Line 453 of lalr1.cc  */
+#line 904 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ delete ((*yyvaluep).ival); };
+/* Line 453 of lalr1.cc  */
+#line 317 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 338: /* VersionDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 324 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 339: /* MainModule */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 331 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 340: /* LibraryModule */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 338 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 341: /* ModuleDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 345 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 342: /* SIND_DeclList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 352 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 343: /* SIND_Decl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 359 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 344: /* Setter */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 366 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 345: /* BoundarySpaceDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 373 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 346: /* DefaultCollationDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 380 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 347: /* BaseURIDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 387 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 348: /* ConstructionDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 394 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 349: /* OrderingModeDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 401 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 350: /* EmptyOrderDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 408 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 351: /* CopyNamespacesDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 415 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 352: /* Import */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 422 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 353: /* SchemaImport */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 429 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 354: /* URILiteralList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 436 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 355: /* SchemaPrefix */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 443 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 356: /* ModuleImport */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 450 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 357: /* NamespaceDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 457 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 358: /* DefaultNamespaceDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 464 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 359: /* VFO_DeclList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 471 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 360: /* VFO_Decl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 478 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 361: /* DecimalFormatDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 485 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 362: /* DecimalFormatParamList */
+/* Line 453 of lalr1.cc  */
+#line 932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ delete ((*yyvaluep).vstrpair); };
+/* Line 453 of lalr1.cc  */
+#line 492 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 363: /* DecimalFormatParam */
+/* Line 453 of lalr1.cc  */
+#line 932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ delete ((*yyvaluep).strpair); };
+/* Line 453 of lalr1.cc  */
+#line 499 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 365: /* OptionDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 506 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 366: /* FTOptionDecl */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 513 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 367: /* CtxItemDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 520 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 368: /* CtxItemDecl2 */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 527 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 369: /* CtxItemDecl3 */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 534 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 370: /* CtxItemDecl4 */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 541 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 371: /* VarDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 548 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 372: /* VarNameAndType */
+/* Line 453 of lalr1.cc  */
+#line 932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ delete ((*yyvaluep).varnametype); };
+/* Line 453 of lalr1.cc  */
+#line 555 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 373: /* AnnotationList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 562 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 374: /* Annotation */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 569 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 375: /* AnnotationLiteralList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 576 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 376: /* FunctionDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 583 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 377: /* FunctionDecl2 */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 590 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 378: /* FunctionDeclSimple */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 597 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 379: /* FunctionDeclUpdating */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 604 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 380: /* FunctionSig */
+/* Line 453 of lalr1.cc  */
+#line 932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ delete ((*yyvaluep).fnsig); };
+/* Line 453 of lalr1.cc  */
+#line 611 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 381: /* ParamList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 618 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 382: /* Param */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 625 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 383: /* CollectionDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 632 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 385: /* IndexDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 639 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 386: /* IndexKeyList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 646 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 387: /* IndexKeySpec */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 653 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 388: /* IntegrityConstraintDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 660 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 389: /* QueryBody */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 667 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 390: /* StatementsAndOptionalExprTop */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 674 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 391: /* StatementsAndOptionalExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 681 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 392: /* StatementsAndExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 688 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 393: /* Statements */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 695 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 394: /* Statement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 702 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 395: /* BlockStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 709 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 396: /* BlockExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 716 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 397: /* EnclosedStatementsAndOptionalExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 723 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 398: /* VarDeclStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 730 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 401: /* AssignStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 737 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 402: /* ApplyStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 744 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 403: /* ExitStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 751 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 404: /* WhileStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 758 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 405: /* FlowCtlStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 765 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 406: /* FLWORStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 772 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 407: /* ReturnStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 779 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 408: /* IfStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 786 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 409: /* TryStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 793 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 410: /* CatchListStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 800 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 411: /* CatchStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 807 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 412: /* Expr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 814 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 413: /* ExprSingle */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 821 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 414: /* ExprSimple */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 828 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 415: /* FLWORExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 835 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 416: /* ReturnExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 842 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 419: /* FLWORWinCond */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 849 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 420: /* WindowClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 856 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 421: /* CountClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 863 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 422: /* ForLetWinClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 870 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 424: /* FLWORClauseList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 877 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 425: /* ForClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 884 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 426: /* VarInDeclList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 891 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 427: /* VarInDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 898 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 428: /* PositionalVar */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 905 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 429: /* FTScoreVar */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 912 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 430: /* LetClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 919 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 431: /* VarGetsDeclList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 432: /* VarGetsDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 933 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 433: /* WindowVarDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 940 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 434: /* WindowVars */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 947 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 435: /* WindowVars3 */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 954 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 436: /* WindowVars2 */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 961 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 437: /* WhereClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 968 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 438: /* GroupByClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 975 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 439: /* GroupSpecList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 982 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 440: /* GroupSpec */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 989 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 441: /* GroupCollationSpec */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 996 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 442: /* OrderByClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1003 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 443: /* OrderSpecList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1010 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 444: /* OrderSpec */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1017 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 445: /* OrderModifier */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1024 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 446: /* OrderDirSpec */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1031 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 447: /* OrderEmptySpec */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1038 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 448: /* OrderCollationSpec */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1045 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 449: /* QuantifiedExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1052 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 450: /* QVarInDeclList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1059 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 451: /* QVarInDecl */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1066 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 452: /* SwitchExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1073 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 453: /* SwitchCaseClauseList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1080 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 454: /* SwitchCaseClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1087 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 455: /* SwitchCaseOperandList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1094 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 456: /* SwitchStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1101 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 459: /* TypeswitchExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1108 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 460: /* TypeswitchStatement */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1115 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 461: /* CaseClauseList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1122 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 462: /* CaseClause */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1129 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 465: /* IfExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1136 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 466: /* OrExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1143 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 467: /* AndExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1150 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 468: /* ComparisonExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1157 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 470: /* FTContainsExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1164 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 471: /* StringConcatExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1171 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 472: /* opt_FTIgnoreOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1178 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 473: /* RangeExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1185 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 474: /* AdditiveExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1192 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 475: /* MultiplicativeExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1199 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 476: /* UnionExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1206 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 477: /* IntersectExceptExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1213 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 478: /* InstanceofExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1220 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 479: /* TreatExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1227 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 480: /* CastableExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1234 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 481: /* CastExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1241 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 482: /* UnaryExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1248 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 483: /* SignList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1255 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 484: /* ValueExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1262 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 485: /* SimpleMapExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1269 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 486: /* ValueComp */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1276 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 487: /* NodeComp */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1283 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 488: /* ValidateExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1290 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 489: /* ExtensionExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1297 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 490: /* Pragma_list */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1304 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 491: /* Pragma */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1311 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 492: /* PathExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1318 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 494: /* RelativePathExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1325 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 495: /* StepExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1332 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 496: /* AxisStep */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1339 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 497: /* ForwardStep */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1346 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 498: /* ForwardAxis */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1353 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 499: /* AbbrevForwardStep */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1360 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 500: /* ReverseStep */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1367 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 501: /* ReverseAxis */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1374 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 502: /* NodeTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1381 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 503: /* NameTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1388 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 504: /* Wildcard */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1395 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 505: /* FilterExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1402 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 506: /* PredicateList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1409 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 507: /* Predicate */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1416 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 508: /* PrimaryExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1423 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 509: /* Literal */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1430 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 510: /* NumericLiteral */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1437 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 511: /* VarRef */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1444 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 512: /* ParenthesizedExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1451 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 513: /* ContextItemExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1458 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 514: /* OrderedExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1465 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 515: /* UnorderedExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1472 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 516: /* FunctionCall */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1479 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 517: /* ArgList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1486 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 518: /* Constructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1493 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 519: /* DirectConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1500 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 520: /* DirElemConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1507 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 521: /* DirElemContentList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1514 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 522: /* DirAttributeList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1521 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 523: /* DirAttr */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1528 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 525: /* DirAttributeValue */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1535 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 526: /* opt_QuoteAttrContentList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1542 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 527: /* QuoteAttrContentList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1549 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 528: /* opt_AposAttrContentList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1556 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 529: /* AposAttrContentList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1563 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 530: /* QuoteAttrValueContent */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1570 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 531: /* AposAttrValueContent */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1577 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 532: /* DirElemContent */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1584 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 533: /* CommonContent */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1591 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 534: /* DirCommentConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1598 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 535: /* DirPIConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1605 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 536: /* CDataSection */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1612 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 537: /* ComputedConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1619 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 538: /* CompDocConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1626 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 539: /* CompElemConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1633 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 540: /* CompAttrConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1640 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 541: /* CompTextConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1647 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 542: /* CompCommentConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1654 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 543: /* CompPIConstructor */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1661 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 544: /* SingleType */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1668 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 545: /* TypeDeclaration */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1675 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 546: /* SequenceType */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1682 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 547: /* OccurrenceIndicator */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1689 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 548: /* ItemType */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1696 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 549: /* TypeList */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1703 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 550: /* AtomicType */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1710 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 551: /* KindTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1717 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 552: /* AnyKindTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1724 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 553: /* DocumentTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1731 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 554: /* TextTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1738 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 555: /* CommentTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1745 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 556: /* PITest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1752 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 557: /* AttributeTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1759 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 558: /* SchemaAttributeTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1766 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 559: /* ElementTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1773 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 560: /* SchemaElementTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1780 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 561: /* TypeName */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1787 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 562: /* TypeName_WITH_HOOK */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1794 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 563: /* StringLiteral */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1801 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 568: /* AnyFunctionTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1808 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 569: /* TypedFunctionTest */
+/* Line 453 of lalr1.cc  */
+#line 920 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1815 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 572: /* InsertExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1822 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 573: /* DeleteExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1829 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 574: /* ReplaceExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1836 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 575: /* RenameExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1843 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 576: /* TransformExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1850 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 577: /* VarNameList */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1857 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 578: /* VarNameDecl */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1864 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 579: /* TryExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1871 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 580: /* CatchListExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1878 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 581: /* CatchExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1885 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 582: /* BracedExpr */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 1892 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 583: /* NameTestList */
+/* Line 453 of lalr1.cc  */
+#line 932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ delete ((*yyvaluep).name_test_list); };
+/* Line 453 of lalr1.cc  */
+#line 1899 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 584: /* FTSelection */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1906 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 587: /* FTOr */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1913 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 588: /* FTAnd */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1920 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 589: /* FTMildNot */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1927 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 590: /* FTUnaryNot */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1934 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 591: /* FTPrimaryWithOptions */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1941 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 592: /* opt_FTMatchOptions */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1948 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 594: /* FTWeight */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1955 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 595: /* FTPrimary */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1962 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 596: /* opt_FTTimes */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1969 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 597: /* FTExtensionSelection */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1976 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 599: /* FTWords */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1983 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 600: /* FTWordsValue */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1990 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 602: /* FTAnyallOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 1997 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 605: /* FTPosFilter */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2004 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 606: /* FTOrder */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2011 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 607: /* FTWindow */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2018 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 608: /* FTDistance */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2025 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 609: /* FTUnit */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2032 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 610: /* FTMatchOptions */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2039 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 611: /* FTMatchOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2046 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 612: /* FTCaseOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2053 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 613: /* FTDiacriticsOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2060 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 614: /* FTExtensionOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2067 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 615: /* FTStemOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2074 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 616: /* FTThesaurusOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2081 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 620: /* FTThesaurusID */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2088 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 623: /* FTStopWordOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2095 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 624: /* FTStopWords */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2102 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 628: /* FTStopWordsInclExcl */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2109 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 629: /* FTLanguageOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2116 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 630: /* FTWildCardOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2123 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 631: /* FTContent */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2130 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 632: /* FTTimes */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2137 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 633: /* FTRange */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2144 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 634: /* FTScope */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2151 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 635: /* FTBigUnit */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2158 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 636: /* FTIgnoreOption */
+/* Line 453 of lalr1.cc  */
+#line 923 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2165 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 637: /* JSONArrayConstructor */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2172 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 638: /* JSONSimpleObjectUnion */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2179 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 639: /* JSONAccumulatorObjectUnion */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2186 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 640: /* JSONObjectConstructor */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2193 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 641: /* JSONPairList */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).node) ); };
+/* Line 453 of lalr1.cc  */
+#line 2200 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 642: /* JSONInsertExpr */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2207 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 643: /* JSONAppendExpr */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2214 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 644: /* JSONDeleteExpr */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2221 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 645: /* JSONRenameExpr */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2228 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 646: /* JSONReplaceExpr */
+/* Line 453 of lalr1.cc  */
+#line 926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2235 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 653: /* QNAME */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2242 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 654: /* FUNCTION_NAME */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2249 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 655: /* EQNAME */
+/* Line 453 of lalr1.cc  */
+#line 929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+	{ release_hack( ((*yyvaluep).expr) ); };
+/* Line 453 of lalr1.cc  */
+#line 2256 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
 	break;
 
 	default:
@@ -2835,6 +2295,18 @@
   }
 #endif
 
+  inline bool
+  xquery_parser::yy_pact_value_is_default_ (int yyvalue)
+  {
+    return yyvalue == yypact_ninf_;
+  }
+
+  inline bool
+  xquery_parser::yy_table_value_is_error_ (int yyvalue)
+  {
+    return yyvalue == yytable_ninf_;
+  }
+
   int
   xquery_parser::parse ()
   {
@@ -2856,7 +2328,7 @@
     /// Location of the lookahead.
     location_type yylloc;
     /// The locations where the error started and ended.
-    location_type yyerror_range[2];
+    location_type yyerror_range[3];
 
     /// $$.
     semantic_type yyval;
@@ -2868,16 +2340,14 @@
     YYCDEBUG << "Starting parse" << std::endl;
 
 
-    /* User initialization code.  */
-    
-/* Line 553 of lalr1.cc  */
-#line 140 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* User initialization code.  */
+/* Line 538 of lalr1.cc  */
+#line 140 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
 {
     yylloc.begin.filename = yylloc.end.filename = &(driver.theFilename2);
 }
-
-/* Line 553 of lalr1.cc  */
-#line 2881 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+/* Line 538 of lalr1.cc  */
+#line 2351 "/home/colea/xquery_bzr/hof/build/src/compiler/parser/xquery_parser.cpp"
 
     /* Initialize the stacks.  The initial state will be pushed in
        yynewstate, since the latter expects the semantical and the
@@ -2905,7 +2375,7 @@
 
     /* Try to take a decision without lookahead.  */
     yyn = yypact_[yystate];
-    if (yyn == yypact_ninf_)
+    if (yy_pact_value_is_default_ (yyn))
       goto yydefault;
 
     /* Read a lookahead token.  */
@@ -2938,8 +2408,8 @@
     yyn = yytable_[yyn];
     if (yyn <= 0)
       {
-	if (yyn == 0 || yyn == yytable_ninf_)
-	goto yyerrlab;
+	if (yy_table_value_is_error_ (yyn))
+	  goto yyerrlab;
 	yyn = -yyn;
 	goto yyreduce;
       }
@@ -2994,45 +2464,40 @@
     switch (yyn)
       {
 	  case 3:
-
-/* Line 678 of lalr1.cc  */
-#line 1051 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1051 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
     break;
 
   case 4:
-
-/* Line 678 of lalr1.cc  */
-#line 1055 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1055 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
     break;
 
   case 5:
-
-/* Line 678 of lalr1.cc  */
-#line 1059 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1059 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       }
     break;
 
   case 6:
-
-/* Line 678 of lalr1.cc  */
-#line 1070 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1070 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
     break;
 
   case 7:
-
-/* Line 678 of lalr1.cc  */
-#line 1079 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1079 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3040,9 +2505,8 @@
     break;
 
   case 8:
-
-/* Line 678 of lalr1.cc  */
-#line 1085 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1085 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       MainModule* mm = dynamic_cast<MainModule*>((yysemantic_stack_[(2) - (2)].node));
       mm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
@@ -3052,9 +2516,8 @@
     break;
 
   case 9:
-
-/* Line 678 of lalr1.cc  */
-#line 1093 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1093 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3062,9 +2525,8 @@
     break;
 
   case 10:
-
-/* Line 678 of lalr1.cc  */
-#line 1099 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1099 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       LibraryModule* lm = dynamic_cast<LibraryModule*>((yysemantic_stack_[(2) - (2)].node));
       lm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
@@ -3074,27 +2536,24 @@
     break;
 
   case 11:
-
-/* Line 678 of lalr1.cc  */
-#line 1110 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1110 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), "utf-8" );
     }
     break;
 
   case 12:
-
-/* Line 678 of lalr1.cc  */
-#line 1115 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1115 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
     }
     break;
 
   case 13:
-
-/* Line 678 of lalr1.cc  */
-#line 1123 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1123 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (1)].node)), NULL);
 
@@ -3103,9 +2562,8 @@
     break;
 
   case 14:
-
-/* Line 678 of lalr1.cc  */
-#line 1130 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1130 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (1)].node)));
 
@@ -3114,9 +2572,8 @@
     break;
 
   case 15:
-
-/* Line 678 of lalr1.cc  */
-#line 1137 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1137 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (1)].node)),
@@ -3127,18 +2584,16 @@
     break;
 
   case 16:
-
-/* Line 678 of lalr1.cc  */
-#line 1146 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1146 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new MainModule( LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(1) - (1)].expr)), NULL );
     }
     break;
 
   case 17:
-
-/* Line 678 of lalr1.cc  */
-#line 1153 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1153 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr); // to prevent the Bison warning
       (yylocation_stack_[(3) - (1)]).step();
@@ -3148,9 +2603,8 @@
     break;
 
   case 18:
-
-/* Line 678 of lalr1.cc  */
-#line 1161 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1161 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr); // to prevent the Bison warning
       (yylocation_stack_[(3) - (1)]).step();
@@ -3160,9 +2614,8 @@
     break;
 
   case 19:
-
-/* Line 678 of lalr1.cc  */
-#line 1169 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1169 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(5) - (1)].node); (yyval.node) = (yysemantic_stack_[(5) - (3)].node); (yyval.node) = (yysemantic_stack_[(5) - (5)].expr); // to prevent the Bison warning
       (yylocation_stack_[(5) - (3)]).step();
@@ -3172,9 +2625,8 @@
     break;
 
   case 20:
-
-/* Line 678 of lalr1.cc  */
-#line 1177 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1177 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(5) - (1)].node); (yyval.node) = (yysemantic_stack_[(5) - (3)].node); (yyval.node) = (yysemantic_stack_[(5) - (5)].expr); // to prevent the Bison warning
       (yylocation_stack_[(5) - (1)]).step();
@@ -3184,18 +2636,16 @@
     break;
 
   case 21:
-
-/* Line 678 of lalr1.cc  */
-#line 1188 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1188 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(1) - (1)].node)), NULL);
     }
     break;
 
   case 22:
-
-/* Line 678 of lalr1.cc  */
-#line 1193 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1193 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (2)].node)), NULL);
 
@@ -3204,9 +2654,8 @@
     break;
 
   case 23:
-
-/* Line 678 of lalr1.cc  */
-#line 1200 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1200 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (2)].node)));
 
@@ -3215,9 +2664,8 @@
     break;
 
   case 24:
-
-/* Line 678 of lalr1.cc  */
-#line 1207 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1207 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (2)].node)),
@@ -3228,9 +2676,8 @@
     break;
 
   case 25:
-
-/* Line 678 of lalr1.cc  */
-#line 1219 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1219 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
 
@@ -3239,9 +2686,8 @@
     break;
 
   case 26:
-
-/* Line 678 of lalr1.cc  */
-#line 1229 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1229 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       SIND_DeclList *sdl = new SIND_DeclList( LOC((yyloc)) );
       sdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3250,9 +2696,8 @@
     break;
 
   case 27:
-
-/* Line 678 of lalr1.cc  */
-#line 1236 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1236 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       ((SIND_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -3260,9 +2705,8 @@
     break;
 
   case 28:
-
-/* Line 678 of lalr1.cc  */
-#line 1243 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1243 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       // error
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
@@ -3273,135 +2717,120 @@
     break;
 
   case 42:
-
-/* Line 678 of lalr1.cc  */
-#line 1278 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1278 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::preserve_space);
     }
     break;
 
   case 43:
-
-/* Line 678 of lalr1.cc  */
-#line 1283 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1283 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::strip_space);
     }
     break;
 
   case 44:
-
-/* Line 678 of lalr1.cc  */
-#line 1291 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1291 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DefaultCollationDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)) );
     }
     break;
 
   case 45:
-
-/* Line 678 of lalr1.cc  */
-#line 1299 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1299 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new BaseURIDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
     break;
 
   case 46:
-
-/* Line 678 of lalr1.cc  */
-#line 1307 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1307 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_preserve);
     }
     break;
 
   case 47:
-
-/* Line 678 of lalr1.cc  */
-#line 1312 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1312 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_strip);
     }
     break;
 
   case 48:
-
-/* Line 678 of lalr1.cc  */
-#line 1320 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1320 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::ordered);
     }
     break;
 
   case 49:
-
-/* Line 678 of lalr1.cc  */
-#line 1325 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1325 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::unordered);
     }
     break;
 
   case 50:
-
-/* Line 678 of lalr1.cc  */
-#line 1333 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1333 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_greatest);
     }
     break;
 
   case 51:
-
-/* Line 678 of lalr1.cc  */
-#line 1338 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1338 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_least);
     }
     break;
 
   case 52:
-
-/* Line 678 of lalr1.cc  */
-#line 1346 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1346 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, true);
     }
     break;
 
   case 53:
-
-/* Line 678 of lalr1.cc  */
-#line 1351 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1351 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, false);
     }
     break;
 
   case 54:
-
-/* Line 678 of lalr1.cc  */
-#line 1356 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1356 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, true);
     }
     break;
 
   case 55:
-
-/* Line 678 of lalr1.cc  */
-#line 1361 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1361 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, false);
     }
     break;
 
   case 58:
-
-/* Line 678 of lalr1.cc  */
-#line 1374 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1374 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yyval.node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (2)]), "syntax error, \"import\" should be followed by either \"schema\" or \"module\".");
@@ -3410,18 +2839,16 @@
     break;
 
   case 59:
-
-/* Line 678 of lalr1.cc  */
-#line 1384 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1384 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport( LOC((yyloc)), NULL, SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL );
     }
     break;
 
   case 60:
-
-/* Line 678 of lalr1.cc  */
-#line 1389 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1389 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(4) - (3)].node)),
@@ -3431,9 +2858,8 @@
     break;
 
   case 61:
-
-/* Line 678 of lalr1.cc  */
-#line 1397 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1397 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             NULL,
@@ -3443,9 +2869,8 @@
     break;
 
   case 62:
-
-/* Line 678 of lalr1.cc  */
-#line 1405 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1405 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(6) - (3)].node)),
@@ -3455,9 +2880,8 @@
     break;
 
   case 63:
-
-/* Line 678 of lalr1.cc  */
-#line 1416 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1416 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       URILiteralList *ull = new URILiteralList( LOC((yyloc)));
       ull->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -3466,9 +2890,8 @@
     break;
 
   case 64:
-
-/* Line 678 of lalr1.cc  */
-#line 1423 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1423 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       if ( URILiteralList *ull = dynamic_cast<URILiteralList*>((yysemantic_stack_[(3) - (1)].node)) )
         ull->push_back( SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
@@ -3478,27 +2901,24 @@
     break;
 
   case 65:
-
-/* Line 678 of lalr1.cc  */
-#line 1434 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1434 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
   case 66:
-
-/* Line 678 of lalr1.cc  */
-#line 1439 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1439 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), true );
     }
     break;
 
   case 67:
-
-/* Line 678 of lalr1.cc  */
-#line 1447 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1447 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL);
 
@@ -3507,9 +2927,8 @@
     break;
 
   case 68:
-
-/* Line 678 of lalr1.cc  */
-#line 1454 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1454 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (4)].sval)), SYMTAB((yysemantic_stack_[(6) - (6)].sval)), NULL);
 
@@ -3518,9 +2937,8 @@
     break;
 
   case 69:
-
-/* Line 678 of lalr1.cc  */
-#line 1461 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1461 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(5) - (3)].sval)),
@@ -3531,9 +2949,8 @@
     break;
 
   case 70:
-
-/* Line 678 of lalr1.cc  */
-#line 1470 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1470 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(8) - (4)].sval)),
@@ -3545,18 +2962,16 @@
     break;
 
   case 71:
-
-/* Line 678 of lalr1.cc  */
-#line 1483 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1483 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new NamespaceDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(5) - (3)].sval)), SYMTAB((yysemantic_stack_[(5) - (5)].sval)) );
     }
     break;
 
   case 72:
-
-/* Line 678 of lalr1.cc  */
-#line 1491 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1491 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_element_default,
@@ -3565,9 +2980,8 @@
     break;
 
   case 73:
-
-/* Line 678 of lalr1.cc  */
-#line 1498 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1498 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_function_default,
@@ -3576,9 +2990,8 @@
     break;
 
   case 74:
-
-/* Line 678 of lalr1.cc  */
-#line 1508 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1508 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       VFO_DeclList *vdl = new VFO_DeclList( LOC((yyloc)));
       vdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3587,9 +3000,8 @@
     break;
 
   case 75:
-
-/* Line 678 of lalr1.cc  */
-#line 1515 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1515 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       ((VFO_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -3597,9 +3009,8 @@
     break;
 
   case 76:
-
-/* Line 678 of lalr1.cc  */
-#line 1522 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1522 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
       (yylocation_stack_[(3) - (1)]).step();
@@ -3609,9 +3020,8 @@
     break;
 
   case 85:
-
-/* Line 678 of lalr1.cc  */
-#line 1545 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1545 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
@@ -3619,9 +3029,8 @@
     break;
 
   case 86:
-
-/* Line 678 of lalr1.cc  */
-#line 1551 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1551 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
@@ -3629,9 +3038,8 @@
     break;
 
   case 87:
-
-/* Line 678 of lalr1.cc  */
-#line 1560 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1560 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.vstrpair) = new vector<string_pair_t>();
       (yyval.vstrpair)->push_back( *(yysemantic_stack_[(1) - (1)].strpair) );
@@ -3640,9 +3048,8 @@
     break;
 
   case 88:
-
-/* Line 678 of lalr1.cc  */
-#line 1567 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1567 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yysemantic_stack_[(2) - (1)].vstrpair)->push_back( *(yysemantic_stack_[(2) - (2)].strpair) );
       delete (yysemantic_stack_[(2) - (2)].strpair);
@@ -3651,9 +3058,8 @@
     break;
 
   case 89:
-
-/* Line 678 of lalr1.cc  */
-#line 1577 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1577 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       StringLiteral *sl = static_cast<StringLiteral*>((yysemantic_stack_[(3) - (3)].expr));
       (yyval.strpair) = new string_pair_t( (yysemantic_stack_[(3) - (1)].strval), sl->get_strval().str() );
@@ -3662,106 +3068,92 @@
     break;
 
   case 90:
-
-/* Line 678 of lalr1.cc  */
-#line 1586 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1586 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "decimal-separator"; }
     break;
 
   case 91:
-
-/* Line 678 of lalr1.cc  */
-#line 1587 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1587 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "digit"; }
     break;
 
   case 92:
-
-/* Line 678 of lalr1.cc  */
-#line 1588 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1588 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "grouping-separator"; }
     break;
 
   case 93:
-
-/* Line 678 of lalr1.cc  */
-#line 1589 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1589 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "infinty"; }
     break;
 
   case 94:
-
-/* Line 678 of lalr1.cc  */
-#line 1590 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1590 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "minus-sign"; }
     break;
 
   case 95:
-
-/* Line 678 of lalr1.cc  */
-#line 1591 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1591 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "NaN"; }
     break;
 
   case 96:
-
-/* Line 678 of lalr1.cc  */
-#line 1592 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1592 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "pattern-separator"; }
     break;
 
   case 97:
-
-/* Line 678 of lalr1.cc  */
-#line 1593 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1593 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "percent"; }
     break;
 
   case 98:
-
-/* Line 678 of lalr1.cc  */
-#line 1594 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1594 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "per-mille"; }
     break;
 
   case 99:
-
-/* Line 678 of lalr1.cc  */
-#line 1595 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1595 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "zero-digit"; }
     break;
 
   case 100:
-
-/* Line 678 of lalr1.cc  */
-#line 1601 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1601 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new OptionDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)));
     }
     break;
 
   case 101:
-
-/* Line 678 of lalr1.cc  */
-#line 1609 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1609 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FTOptionDecl( LOC((yyloc)), dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (3)].node)) );
     }
     break;
 
   case 102:
-
-/* Line 678 of lalr1.cc  */
-#line 1617 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1617 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(4) - (4)].node);
     }
     break;
 
   case 103:
-
-/* Line 678 of lalr1.cc  */
-#line 1625 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1625 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(3) - (3)].node));
       d->theType = (yysemantic_stack_[(3) - (2)].node);
@@ -3770,18 +3162,16 @@
     break;
 
   case 104:
-
-/* Line 678 of lalr1.cc  */
-#line 1632 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1632 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 105:
-
-/* Line 678 of lalr1.cc  */
-#line 1640 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1640 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(1) - (1)].node));
       d->theIsExternal = false;
@@ -3790,36 +3180,32 @@
     break;
 
   case 106:
-
-/* Line 678 of lalr1.cc  */
-#line 1647 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1647 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), NULL);
     }
     break;
 
   case 107:
-
-/* Line 678 of lalr1.cc  */
-#line 1652 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1652 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
     }
     break;
 
   case 108:
-
-/* Line 678 of lalr1.cc  */
-#line 1660 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1660 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
     break;
 
   case 109:
-
-/* Line 678 of lalr1.cc  */
-#line 1668 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1668 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(4) - (2)].varnametype)));
 
@@ -3835,9 +3221,8 @@
     break;
 
   case 110:
-
-/* Line 678 of lalr1.cc  */
-#line 1682 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1682 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(3) - (2)].varnametype)));
 
@@ -3853,9 +3238,8 @@
     break;
 
   case 111:
-
-/* Line 678 of lalr1.cc  */
-#line 1696 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1696 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(5) - (2)].varnametype)));
 
@@ -3871,18 +3255,16 @@
     break;
 
   case 112:
-
-/* Line 678 of lalr1.cc  */
-#line 1713 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1713 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL, NULL);
     }
     break;
 
   case 113:
-
-/* Line 678 of lalr1.cc  */
-#line 1718 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1718 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)),
@@ -3892,9 +3274,8 @@
     break;
 
   case 114:
-
-/* Line 678 of lalr1.cc  */
-#line 1726 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1726 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -3904,9 +3285,8 @@
     break;
 
   case 115:
-
-/* Line 678 of lalr1.cc  */
-#line 1734 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1734 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (4)].expr)),
@@ -3916,18 +3296,16 @@
     break;
 
   case 116:
-
-/* Line 678 of lalr1.cc  */
-#line 1745 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1745 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationListParsenode(LOC((yyloc)), static_cast<AnnotationParsenode*>((yysemantic_stack_[(1) - (1)].node)));
     }
     break;
 
   case 117:
-
-/* Line 678 of lalr1.cc  */
-#line 1750 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1750 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       static_cast<AnnotationListParsenode*>((yysemantic_stack_[(2) - (1)].node))->push_back(static_cast<AnnotationParsenode*>((yysemantic_stack_[(2) - (2)].node)));
       (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
@@ -3935,18 +3313,16 @@
     break;
 
   case 118:
-
-/* Line 678 of lalr1.cc  */
-#line 1759 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1759 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))), NULL);
     }
     break;
 
   case 119:
-
-/* Line 678 of lalr1.cc  */
-#line 1764 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1764 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval))),
@@ -3955,18 +3331,16 @@
     break;
 
   case 120:
-
-/* Line 678 of lalr1.cc  */
-#line 1771 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1771 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), true), NULL);
     }
     break;
 
   case 121:
-
-/* Line 678 of lalr1.cc  */
-#line 1776 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1776 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval)), true),
@@ -3975,18 +3349,16 @@
     break;
 
   case 122:
-
-/* Line 678 of lalr1.cc  */
-#line 1786 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1786 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationLiteralListParsenode(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr));
     }
     break;
 
   case 123:
-
-/* Line 678 of lalr1.cc  */
-#line 1791 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1791 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       static_cast<AnnotationLiteralListParsenode*>((yysemantic_stack_[(3) - (1)].node))->push_back((yysemantic_stack_[(3) - (3)].expr));
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -3994,9 +3366,8 @@
     break;
 
   case 124:
-
-/* Line 678 of lalr1.cc  */
-#line 1800 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1800 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       static_cast<FunctionDecl*>((yysemantic_stack_[(2) - (2)].node))->setComment( SYMTAB((yysemantic_stack_[(2) - (1)].sval)) );
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
@@ -4004,9 +3375,8 @@
     break;
 
   case 125:
-
-/* Line 678 of lalr1.cc  */
-#line 1806 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1806 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       FunctionDecl* fdecl = static_cast<FunctionDecl*>((yysemantic_stack_[(3) - (3)].node));
 
@@ -4018,27 +3388,24 @@
     break;
 
   case 126:
-
-/* Line 678 of lalr1.cc  */
-#line 1819 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1819 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 127:
-
-/* Line 678 of lalr1.cc  */
-#line 1824 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1824 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 128:
-
-/* Line 678 of lalr1.cc  */
-#line 1832 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1832 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4052,9 +3419,8 @@
     break;
 
   case 129:
-
-/* Line 678 of lalr1.cc  */
-#line 1843 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1843 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4068,9 +3434,8 @@
     break;
 
   case 130:
-
-/* Line 678 of lalr1.cc  */
-#line 1858 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1858 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4084,9 +3449,8 @@
     break;
 
   case 131:
-
-/* Line 678 of lalr1.cc  */
-#line 1870 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1870 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4100,45 +3464,40 @@
     break;
 
   case 132:
-
-/* Line 678 of lalr1.cc  */
-#line 1885 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1885 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL);
     }
     break;
 
   case 133:
-
-/* Line 678 of lalr1.cc  */
-#line 1890 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1890 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
   case 134:
-
-/* Line 678 of lalr1.cc  */
-#line 1895 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1895 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL, dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node)));
     }
     break;
 
   case 135:
-
-/* Line 678 of lalr1.cc  */
-#line 1900 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1900 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(5) - (2)].node)), dynamic_cast<SequenceType*>((yysemantic_stack_[(5) - (5)].node)));
     }
     break;
 
   case 136:
-
-/* Line 678 of lalr1.cc  */
-#line 1908 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1908 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       ParamList *pl = new ParamList( LOC((yyloc)) );
       pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -4147,9 +3506,8 @@
     break;
 
   case 137:
-
-/* Line 678 of lalr1.cc  */
-#line 1915 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1915 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       if ( ParamList *pl = dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (1)].node)) )
         pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -4159,18 +3517,16 @@
     break;
 
   case 138:
-
-/* Line 678 of lalr1.cc  */
-#line 1926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL);
     }
     break;
 
   case 139:
-
-/* Line 678 of lalr1.cc  */
-#line 1931 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1931 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)),
                      static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4179,9 +3535,8 @@
     break;
 
   case 140:
-
-/* Line 678 of lalr1.cc  */
-#line 1941 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1941 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)),
@@ -4193,9 +3548,8 @@
     break;
 
   case 141:
-
-/* Line 678 of lalr1.cc  */
-#line 1950 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1950 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4207,9 +3561,8 @@
     break;
 
   case 142:
-
-/* Line 678 of lalr1.cc  */
-#line 1959 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1959 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -4221,9 +3574,8 @@
     break;
 
   case 143:
-
-/* Line 678 of lalr1.cc  */
-#line 1968 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1968 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)),
@@ -4235,18 +3587,16 @@
     break;
 
   case 144:
-
-/* Line 678 of lalr1.cc  */
-#line 1980 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1980 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
     break;
 
   case 145:
-
-/* Line 678 of lalr1.cc  */
-#line 1984 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1984 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4255,18 +3605,16 @@
     break;
 
   case 146:
-
-/* Line 678 of lalr1.cc  */
-#line 1990 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1990 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
     break;
 
   case 147:
-
-/* Line 678 of lalr1.cc  */
-#line 1994 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 1994 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4276,9 +3624,8 @@
     break;
 
   case 148:
-
-/* Line 678 of lalr1.cc  */
-#line 2004 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2004 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(8) - (3)].expr)),
@@ -4291,9 +3638,8 @@
     break;
 
   case 149:
-
-/* Line 678 of lalr1.cc  */
-#line 2014 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2014 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(9) - (4)].expr)),
@@ -4306,9 +3652,8 @@
     break;
 
   case 150:
-
-/* Line 678 of lalr1.cc  */
-#line 2027 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2027 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       IndexKeyList* keyList = new IndexKeyList(LOC((yyloc)));
       keyList->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -4317,9 +3662,8 @@
     break;
 
   case 151:
-
-/* Line 678 of lalr1.cc  */
-#line 2033 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2033 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       dynamic_cast<IndexKeyList*>((yysemantic_stack_[(3) - (1)].node))->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(3) - (3)].node)));
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -4327,18 +3671,16 @@
     break;
 
   case 152:
-
-/* Line 678 of lalr1.cc  */
-#line 2042 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2042 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL, NULL);
     }
     break;
 
   case 153:
-
-/* Line 678 of lalr1.cc  */
-#line 2047 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2047 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4348,9 +3690,8 @@
     break;
 
   case 154:
-
-/* Line 678 of lalr1.cc  */
-#line 2054 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2054 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4360,9 +3701,8 @@
     break;
 
   case 155:
-
-/* Line 678 of lalr1.cc  */
-#line 2061 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2061 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(3) - (1)].expr),
@@ -4372,9 +3712,8 @@
     break;
 
   case 156:
-
-/* Line 678 of lalr1.cc  */
-#line 2073 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2073 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICCollSimpleCheck(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(11) - (4)].expr)),
@@ -4385,9 +3724,8 @@
     break;
 
   case 157:
-
-/* Line 678 of lalr1.cc  */
-#line 2083 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2083 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICCollUniqueKeyCheck(LOC((yyloc)),
                                     static_cast<QName*>((yysemantic_stack_[(14) - (4)].expr)),
@@ -4398,9 +3736,8 @@
     break;
 
   case 158:
-
-/* Line 678 of lalr1.cc  */
-#line 2093 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2093 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICCollForeachNode(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(13) - (4)].expr)),
@@ -4411,9 +3748,8 @@
     break;
 
   case 159:
-
-/* Line 678 of lalr1.cc  */
-#line 2104 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2104 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICForeignKey( LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(22) - (4)].expr)),
@@ -4427,9 +3763,8 @@
     break;
 
   case 160:
-
-/* Line 678 of lalr1.cc  */
-#line 2120 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2120 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       if ((yysemantic_stack_[(1) - (1)].expr) == NULL)
       {
@@ -4448,72 +3783,64 @@
     break;
 
   case 161:
-
-/* Line 678 of lalr1.cc  */
-#line 2140 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2140 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 162:
-
-/* Line 678 of lalr1.cc  */
-#line 2144 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2144 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 163:
-
-/* Line 678 of lalr1.cc  */
-#line 2148 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2148 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) =  NULL;
     }
     break;
 
   case 164:
-
-/* Line 678 of lalr1.cc  */
-#line 2156 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2156 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 165:
-
-/* Line 678 of lalr1.cc  */
-#line 2160 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2160 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 166:
-
-/* Line 678 of lalr1.cc  */
-#line 2164 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2164 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) =  new BlockBody(LOC((yyloc)));
     }
     break;
 
   case 167:
-
-/* Line 678 of lalr1.cc  */
-#line 2172 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2172 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 168:
-
-/* Line 678 of lalr1.cc  */
-#line 2177 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2177 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -4524,9 +3851,8 @@
     break;
 
   case 169:
-
-/* Line 678 of lalr1.cc  */
-#line 2189 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2189 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* blk = new BlockBody(LOC((yyloc)));
       blk->add((yysemantic_stack_[(1) - (1)].expr));
@@ -4535,9 +3861,8 @@
     break;
 
   case 170:
-
-/* Line 678 of lalr1.cc  */
-#line 2196 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2196 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -4548,27 +3873,24 @@
     break;
 
   case 183:
-
-/* Line 678 of lalr1.cc  */
-#line 2225 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2225 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
     break;
 
   case 184:
-
-/* Line 678 of lalr1.cc  */
-#line 2230 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2230 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new BlockBody(LOC((yyloc)));
     }
     break;
 
   case 185:
-
-/* Line 678 of lalr1.cc  */
-#line 2238 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2238 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       if (dynamic_cast<BlockBody*>((yysemantic_stack_[(3) - (2)].expr)) == NULL)
       {
@@ -4584,27 +3906,24 @@
     break;
 
   case 186:
-
-/* Line 678 of lalr1.cc  */
-#line 2255 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2255 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
     break;
 
   case 187:
-
-/* Line 678 of lalr1.cc  */
-#line 2263 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2263 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(2) - (1)].expr);
     }
     break;
 
   case 188:
-
-/* Line 678 of lalr1.cc  */
-#line 2271 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2271 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       VarDeclStmt* vdecl = static_cast<VarDeclStmt*>((yysemantic_stack_[(3) - (1)].expr));
       vdecl->add((yysemantic_stack_[(3) - (3)].node));
@@ -4613,9 +3932,8 @@
     break;
 
   case 189:
-
-/* Line 678 of lalr1.cc  */
-#line 2278 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2278 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)), NULL);
       vdecl->add((yysemantic_stack_[(2) - (2)].node));
@@ -4624,9 +3942,8 @@
     break;
 
   case 190:
-
-/* Line 678 of lalr1.cc  */
-#line 2285 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2285 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)),
                                            static_cast<AnnotationListParsenode*>((yysemantic_stack_[(3) - (1)].node)));
@@ -4636,9 +3953,8 @@
     break;
 
   case 191:
-
-/* Line 678 of lalr1.cc  */
-#line 2296 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2296 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)),
@@ -4650,9 +3966,8 @@
     break;
 
   case 192:
-
-/* Line 678 of lalr1.cc  */
-#line 2305 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2305 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4664,9 +3979,8 @@
     break;
 
   case 193:
-
-/* Line 678 of lalr1.cc  */
-#line 2314 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2314 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4678,9 +3992,8 @@
     break;
 
   case 194:
-
-/* Line 678 of lalr1.cc  */
-#line 2323 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2323 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4692,36 +4005,32 @@
     break;
 
   case 195:
-
-/* Line 678 of lalr1.cc  */
-#line 2336 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2336 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new AssignExpr(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)), (yysemantic_stack_[(5) - (4)].expr));
     }
     break;
 
   case 196:
-
-/* Line 678 of lalr1.cc  */
-#line 2344 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2344 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new ApplyExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr));
     }
     break;
 
   case 197:
-
-/* Line 678 of lalr1.cc  */
-#line 2352 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2352 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new ExitExpr(LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr));
     }
     break;
 
   case 198:
-
-/* Line 678 of lalr1.cc  */
-#line 2360 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2360 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* bb = dynamic_cast<BlockBody *>((yysemantic_stack_[(5) - (5)].expr));
       if (bb == NULL)
@@ -4735,27 +4044,24 @@
     break;
 
   case 199:
-
-/* Line 678 of lalr1.cc  */
-#line 2375 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2375 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement(LOC((yyloc)), FlowCtlStatement::BREAK);
     }
     break;
 
   case 200:
-
-/* Line 678 of lalr1.cc  */
-#line 2380 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2380 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement( LOC((yyloc)), FlowCtlStatement::CONTINUE );
     }
     break;
 
   case 201:
-
-/* Line 678 of lalr1.cc  */
-#line 2388 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2388 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       ReturnExpr* re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4768,9 +4074,8 @@
     break;
 
   case 202:
-
-/* Line 678 of lalr1.cc  */
-#line 2402 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2402 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       exprnode* retExpr = (yysemantic_stack_[(2) - (2)].expr);
 
@@ -4786,9 +4091,8 @@
     break;
 
   case 203:
-
-/* Line 678 of lalr1.cc  */
-#line 2419 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2419 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       exprnode* thenExpr = (yysemantic_stack_[(8) - (6)].expr);
       exprnode* elseExpr = (yysemantic_stack_[(8) - (8)].expr);
@@ -4812,18 +4116,16 @@
     break;
 
   case 204:
-
-/* Line 678 of lalr1.cc  */
-#line 2444 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2444 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TryExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
   case 205:
-
-/* Line 678 of lalr1.cc  */
-#line 2452 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2452 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CatchListExpr* cle = new CatchListExpr( LOC((yyloc)) );
       cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -4832,9 +4134,8 @@
     break;
 
   case 206:
-
-/* Line 678 of lalr1.cc  */
-#line 2459 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2459 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
       if ( cle )
@@ -4844,9 +4145,8 @@
     break;
 
   case 207:
-
-/* Line 678 of lalr1.cc  */
-#line 2470 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2470 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = new CatchExpr(LOC((yyloc)), *(yysemantic_stack_[(3) - (2)].name_test_list), (yysemantic_stack_[(3) - (3)].expr));
        delete (yysemantic_stack_[(3) - (2)].name_test_list);
@@ -4854,18 +4154,16 @@
     break;
 
   case 208:
-
-/* Line 678 of lalr1.cc  */
-#line 2480 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2480 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 209:
-
-/* Line 678 of lalr1.cc  */
-#line 2485 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2485 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       Expr* expr = dynamic_cast<Expr*>((yysemantic_stack_[(3) - (1)].expr));
       if ( !expr )
@@ -4879,9 +4177,8 @@
     break;
 
   case 210:
-
-/* Line 678 of lalr1.cc  */
-#line 2497 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2497 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(4) - (1)].expr); // to prevent the Bison warning
       (yyval.expr) = (yysemantic_stack_[(4) - (3)].expr); // to prevent the Bison warning
@@ -4893,9 +4190,8 @@
     break;
 
   case 211:
-
-/* Line 678 of lalr1.cc  */
-#line 2506 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2506 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       // This rule will never be reached, as the ERROR rule will stop the parser,
       // but it is nevertheless needed to fix a testcase with an unterminated comment which
@@ -4907,9 +4203,8 @@
     break;
 
   case 230:
-
-/* Line 678 of lalr1.cc  */
-#line 2549 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2549 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       ReturnExpr *re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4922,63 +4217,56 @@
     break;
 
   case 231:
-
-/* Line 678 of lalr1.cc  */
-#line 2563 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2563 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new ReturnExpr( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr) );
     }
     break;
 
   case 232:
-
-/* Line 678 of lalr1.cc  */
-#line 2571 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2571 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_sliding;
     }
     break;
 
   case 233:
-
-/* Line 678 of lalr1.cc  */
-#line 2576 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2576 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_tumbling;
     }
     break;
 
   case 234:
-
-/* Line 678 of lalr1.cc  */
-#line 2584 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2584 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_start;
     }
     break;
 
   case 235:
-
-/* Line 678 of lalr1.cc  */
-#line 2589 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2589 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_end;
     }
     break;
 
   case 236:
-
-/* Line 678 of lalr1.cc  */
-#line 2594 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2594 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
     (yyval.strval) = parser::the_only_end;
   }
     break;
 
   case 237:
-
-/* Line 678 of lalr1.cc  */
-#line 2602 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2602 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             dynamic_cast<WindowVars*>((yysemantic_stack_[(4) - (2)].node)),
@@ -4989,9 +4277,8 @@
     break;
 
   case 238:
-
-/* Line 678 of lalr1.cc  */
-#line 2611 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2611 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             NULL,
@@ -5002,9 +4289,8 @@
     break;
 
   case 239:
-
-/* Line 678 of lalr1.cc  */
-#line 2623 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2623 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(5) - (2)].strval) == parser::the_tumbling ?
@@ -5017,9 +4303,8 @@
     break;
 
   case 240:
-
-/* Line 678 of lalr1.cc  */
-#line 2633 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2633 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(4) - (2)].strval) == parser::the_tumbling ?
@@ -5031,18 +4316,16 @@
     break;
 
   case 241:
-
-/* Line 678 of lalr1.cc  */
-#line 2646 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2646 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CountClause(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
   case 250:
-
-/* Line 678 of lalr1.cc  */
-#line 2670 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2670 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       FLWORClauseList *fcl = new FLWORClauseList( LOC((yyloc)) );
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5051,9 +4334,8 @@
     break;
 
   case 251:
-
-/* Line 678 of lalr1.cc  */
-#line 2677 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2677 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       FLWORClauseList *fcl = dynamic_cast<FLWORClauseList*>((yysemantic_stack_[(2) - (1)].node));
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -5062,18 +4344,16 @@
     break;
 
   case 252:
-
-/* Line 678 of lalr1.cc  */
-#line 2687 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2687 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ForClause(LOC((yyloc)), dynamic_cast<VarInDeclList*>((yysemantic_stack_[(3) - (3)].node)));
     }
     break;
 
   case 253:
-
-/* Line 678 of lalr1.cc  */
-#line 2693 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2693 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected QName \""
@@ -5084,9 +4364,8 @@
     break;
 
   case 254:
-
-/* Line 678 of lalr1.cc  */
-#line 2702 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2702 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = NULL; // to prevent the Bison warning
       error((yylocation_stack_[(2) - (2)]), ""); // the error message is already set in the driver's parseError member
@@ -5095,9 +4374,8 @@
     break;
 
   case 255:
-
-/* Line 678 of lalr1.cc  */
-#line 2712 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2712 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       VarInDeclList* vdl = new VarInDeclList( LOC((yyloc)) );
       vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5106,9 +4384,8 @@
     break;
 
   case 256:
-
-/* Line 678 of lalr1.cc  */
-#line 2719 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2719 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       if ( VarInDeclList* vdl = dynamic_cast<VarInDeclList*>((yysemantic_stack_[(4) - (1)].node)) )
         vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
@@ -5117,9 +4394,8 @@
     break;
 
   case 257:
-
-/* Line 678 of lalr1.cc  */
-#line 2727 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2727 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (3)]), "syntax error, unexpected QName \""
@@ -5130,9 +4406,8 @@
     break;
 
   case 258:
-
-/* Line 678 of lalr1.cc  */
-#line 2739 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2739 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)),
@@ -5145,9 +4420,8 @@
     break;
 
   case 259:
-
-/* Line 678 of lalr1.cc  */
-#line 2749 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2749 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5160,9 +4434,8 @@
     break;
 
   case 260:
-
-/* Line 678 of lalr1.cc  */
-#line 2759 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2759 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5175,9 +4448,8 @@
     break;
 
   case 261:
-
-/* Line 678 of lalr1.cc  */
-#line 2769 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2769 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5190,9 +4462,8 @@
     break;
 
   case 262:
-
-/* Line 678 of lalr1.cc  */
-#line 2779 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2779 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5205,9 +4476,8 @@
     break;
 
   case 263:
-
-/* Line 678 of lalr1.cc  */
-#line 2789 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2789 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5220,9 +4490,8 @@
     break;
 
   case 264:
-
-/* Line 678 of lalr1.cc  */
-#line 2799 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2799 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5235,9 +4504,8 @@
     break;
 
   case 265:
-
-/* Line 678 of lalr1.cc  */
-#line 2809 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2809 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(7) - (1)].expr)),
@@ -5250,9 +4518,8 @@
     break;
 
   case 266:
-
-/* Line 678 of lalr1.cc  */
-#line 2820 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2820 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5264,9 +4531,8 @@
     break;
 
   case 267:
-
-/* Line 678 of lalr1.cc  */
-#line 2829 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2829 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5279,9 +4545,8 @@
     break;
 
   case 268:
-
-/* Line 678 of lalr1.cc  */
-#line 2839 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2839 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5294,9 +4559,8 @@
     break;
 
   case 269:
-
-/* Line 678 of lalr1.cc  */
-#line 2849 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2849 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5309,36 +4573,32 @@
     break;
 
   case 270:
-
-/* Line 678 of lalr1.cc  */
-#line 2865 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2865 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new PositionalVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
   case 271:
-
-/* Line 678 of lalr1.cc  */
-#line 2874 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2874 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FTScoreVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
   case 272:
-
-/* Line 678 of lalr1.cc  */
-#line 2883 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2883 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new LetClause( LOC((yyloc)), dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(2) - (2)].node)) );
         }
     break;
 
   case 273:
-
-/* Line 678 of lalr1.cc  */
-#line 2891 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2891 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             VarGetsDeclList *vgdl = new VarGetsDeclList( LOC((yyloc)) );
             vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5347,9 +4607,8 @@
     break;
 
   case 274:
-
-/* Line 678 of lalr1.cc  */
-#line 2897 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2897 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if( VarGetsDeclList *vgdl = dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(3) - (1)].node)) )
                 vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -5358,9 +4617,8 @@
     break;
 
   case 275:
-
-/* Line 678 of lalr1.cc  */
-#line 2909 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2909 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5371,9 +4629,8 @@
     break;
 
   case 276:
-
-/* Line 678 of lalr1.cc  */
-#line 2917 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2917 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5384,9 +4641,8 @@
     break;
 
   case 277:
-
-/* Line 678 of lalr1.cc  */
-#line 2927 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2927 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            dynamic_cast<FTScoreVar*>((yysemantic_stack_[(3) - (1)].node))->get_var_name(),
@@ -5397,9 +4653,8 @@
     break;
 
   case 278:
-
-/* Line 678 of lalr1.cc  */
-#line 2935 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2935 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5410,9 +4665,8 @@
     break;
 
   case 279:
-
-/* Line 678 of lalr1.cc  */
-#line 2947 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2947 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5421,9 +4675,8 @@
     break;
 
   case 280:
-
-/* Line 678 of lalr1.cc  */
-#line 2953 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2953 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5433,18 +4686,16 @@
     break;
 
   case 282:
-
-/* Line 678 of lalr1.cc  */
-#line 2966 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2966 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL);
     }
     break;
 
   case 283:
-
-/* Line 678 of lalr1.cc  */
-#line 2970 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2970 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       dynamic_cast<WindowVars *>((yyval.node))->set_curr(static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)));
@@ -5452,18 +4703,16 @@
     break;
 
   case 284:
-
-/* Line 678 of lalr1.cc  */
-#line 2978 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2978 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), dynamic_cast<PositionalVar*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL, NULL);
     }
     break;
 
   case 285:
-
-/* Line 678 of lalr1.cc  */
-#line 2982 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2982 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       dynamic_cast<WindowVars *>((yyval.node))->set_posvar(dynamic_cast<PositionalVar*>((yysemantic_stack_[(2) - (1)].node)));
@@ -5471,54 +4720,48 @@
     break;
 
   case 287:
-
-/* Line 678 of lalr1.cc  */
-#line 2991 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2991 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), static_cast<QName*>((yysemantic_stack_[(6) - (6)].expr)));
     }
     break;
 
   case 288:
-
-/* Line 678 of lalr1.cc  */
-#line 2995 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2995 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
   case 289:
-
-/* Line 678 of lalr1.cc  */
-#line 2999 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 2999 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL);
     }
     break;
 
   case 290:
-
-/* Line 678 of lalr1.cc  */
-#line 3009 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3009 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WhereClause(LOC ((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
     break;
 
   case 291:
-
-/* Line 678 of lalr1.cc  */
-#line 3017 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3017 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupByClause(LOC((yyloc)), dynamic_cast<GroupSpecList*>((yysemantic_stack_[(3) - (3)].node)));
     }
     break;
 
   case 292:
-
-/* Line 678 of lalr1.cc  */
-#line 3024 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3024 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       GroupSpecList* gsl = new GroupSpecList(LOC((yyloc)));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5527,9 +4770,8 @@
     break;
 
   case 293:
-
-/* Line 678 of lalr1.cc  */
-#line 3030 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3030 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       GroupSpecList* gsl = static_cast<GroupSpecList*>((yysemantic_stack_[(3) - (1)].node));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(3) - (3)].node)));
@@ -5538,27 +4780,24 @@
     break;
 
   case 294:
-
-/* Line 678 of lalr1.cc  */
-#line 3040 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3040 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL, NULL);
     }
     break;
 
   case 295:
-
-/* Line 678 of lalr1.cc  */
-#line 3044 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3044 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)), NULL, (yysemantic_stack_[(4) - (4)].expr), NULL);
     }
     break;
 
   case 296:
-
-/* Line 678 of lalr1.cc  */
-#line 3048 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3048 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5569,9 +4808,8 @@
     break;
 
   case 297:
-
-/* Line 678 of lalr1.cc  */
-#line 3056 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3056 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5582,9 +4820,8 @@
     break;
 
   case 298:
-
-/* Line 678 of lalr1.cc  */
-#line 3064 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3064 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5595,9 +4832,8 @@
     break;
 
   case 299:
-
-/* Line 678 of lalr1.cc  */
-#line 3072 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3072 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -5608,18 +4844,16 @@
     break;
 
   case 300:
-
-/* Line 678 of lalr1.cc  */
-#line 3084 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3084 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
   case 301:
-
-/* Line 678 of lalr1.cc  */
-#line 3092 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3092 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (3)].node))
@@ -5628,9 +4862,8 @@
     break;
 
   case 302:
-
-/* Line 678 of lalr1.cc  */
-#line 3098 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3098 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(4) - (4)].node)), true
@@ -5639,9 +4872,8 @@
     break;
 
   case 303:
-
-/* Line 678 of lalr1.cc  */
-#line 3108 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3108 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             OrderSpecList *osl = new OrderSpecList( LOC((yyloc)) );
             osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5650,9 +4882,8 @@
     break;
 
   case 304:
-
-/* Line 678 of lalr1.cc  */
-#line 3114 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3114 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if ( OrderSpecList* osl = dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (1)].node)) )
                 osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -5661,18 +4892,16 @@
     break;
 
   case 305:
-
-/* Line 678 of lalr1.cc  */
-#line 3124 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3124 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderSpec( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL );
         }
     break;
 
   case 306:
-
-/* Line 678 of lalr1.cc  */
-#line 3128 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3128 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderSpec(
                 LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<OrderModifierPN*>((yysemantic_stack_[(2) - (2)].node))
@@ -5681,9 +4910,8 @@
     break;
 
   case 307:
-
-/* Line 678 of lalr1.cc  */
-#line 3138 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3138 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL
@@ -5692,9 +4920,8 @@
     break;
 
   case 308:
-
-/* Line 678 of lalr1.cc  */
-#line 3144 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3144 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -5703,9 +4930,8 @@
     break;
 
   case 309:
-
-/* Line 678 of lalr1.cc  */
-#line 3150 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3150 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, NULL, dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(1) - (1)].node))
@@ -5714,9 +4940,8 @@
     break;
 
   case 310:
-
-/* Line 678 of lalr1.cc  */
-#line 3156 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3156 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5728,9 +4953,8 @@
     break;
 
   case 311:
-
-/* Line 678 of lalr1.cc  */
-#line 3165 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3165 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5742,9 +4966,8 @@
     break;
 
   case 312:
-
-/* Line 678 of lalr1.cc  */
-#line 3174 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3174 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5756,9 +4979,8 @@
     break;
 
   case 313:
-
-/* Line 678 of lalr1.cc  */
-#line 3183 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3183 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5770,27 +4992,24 @@
     break;
 
   case 314:
-
-/* Line 678 of lalr1.cc  */
-#line 3196 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3196 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_ascending );
         }
     break;
 
   case 315:
-
-/* Line 678 of lalr1.cc  */
-#line 3200 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3200 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_descending );
         }
     break;
 
   case 316:
-
-/* Line 678 of lalr1.cc  */
-#line 3208 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3208 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_greatest
@@ -5799,9 +5018,8 @@
     break;
 
   case 317:
-
-/* Line 678 of lalr1.cc  */
-#line 3214 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3214 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_least
@@ -5810,18 +5028,16 @@
     break;
 
   case 318:
-
-/* Line 678 of lalr1.cc  */
-#line 3224 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3224 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
   case 319:
-
-/* Line 678 of lalr1.cc  */
-#line 3232 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3232 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5833,9 +5049,8 @@
     break;
 
   case 320:
-
-/* Line 678 of lalr1.cc  */
-#line 3241 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3241 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5847,9 +5062,8 @@
     break;
 
   case 321:
-
-/* Line 678 of lalr1.cc  */
-#line 3254 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3254 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       QVarInDeclList *qvidl = new QVarInDeclList( LOC((yyloc)) );
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5859,9 +5073,8 @@
     break;
 
   case 322:
-
-/* Line 678 of lalr1.cc  */
-#line 3261 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3261 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       QVarInDeclList *qvidl = dynamic_cast<QVarInDeclList*>((yysemantic_stack_[(4) - (1)].node));
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
@@ -5870,18 +5083,16 @@
     break;
 
   case 323:
-
-/* Line 678 of lalr1.cc  */
-#line 3273 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3273 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
   case 324:
-
-/* Line 678 of lalr1.cc  */
-#line 3277 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3277 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5891,18 +5102,16 @@
     break;
 
   case 325:
-
-/* Line 678 of lalr1.cc  */
-#line 3289 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3289 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
     }
     break;
 
   case 326:
-
-/* Line 678 of lalr1.cc  */
-#line 3296 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3296 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
       scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5911,9 +5120,8 @@
     break;
 
   case 327:
-
-/* Line 678 of lalr1.cc  */
-#line 3302 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3302 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -5922,18 +5130,16 @@
     break;
 
   case 328:
-
-/* Line 678 of lalr1.cc  */
-#line 3311 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3311 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
   case 329:
-
-/* Line 678 of lalr1.cc  */
-#line 3318 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3318 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseOperandList* sco_list_p = new SwitchCaseOperandList(LOC((yyloc)));
       sco_list_p->push_back((yysemantic_stack_[(2) - (2)].expr));
@@ -5942,9 +5148,8 @@
     break;
 
   case 330:
-
-/* Line 678 of lalr1.cc  */
-#line 3324 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3324 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseOperandList* sco_list_p = static_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node));
       sco_list_p->push_back((yysemantic_stack_[(3) - (3)].expr));
@@ -5953,18 +5158,16 @@
     break;
 
   case 331:
-
-/* Line 678 of lalr1.cc  */
-#line 3335 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3335 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
     }
     break;
 
   case 332:
-
-/* Line 678 of lalr1.cc  */
-#line 3342 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3342 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
       scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5973,9 +5176,8 @@
     break;
 
   case 333:
-
-/* Line 678 of lalr1.cc  */
-#line 3348 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3348 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -5984,18 +5186,16 @@
     break;
 
   case 334:
-
-/* Line 678 of lalr1.cc  */
-#line 3357 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3357 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
   case 335:
-
-/* Line 678 of lalr1.cc  */
-#line 3366 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3366 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
                               (yysemantic_stack_[(8) - (3)].expr),
@@ -6005,9 +5205,8 @@
     break;
 
   case 336:
-
-/* Line 678 of lalr1.cc  */
-#line 3373 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3373 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
                               (yysemantic_stack_[(10) - (3)].expr),
@@ -6018,9 +5217,8 @@
     break;
 
   case 337:
-
-/* Line 678 of lalr1.cc  */
-#line 3384 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3384 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
                               (yysemantic_stack_[(8) - (3)].expr),
@@ -6030,9 +5228,8 @@
     break;
 
   case 338:
-
-/* Line 678 of lalr1.cc  */
-#line 3391 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3391 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
                               (yysemantic_stack_[(10) - (3)].expr),
@@ -6043,9 +5240,8 @@
     break;
 
   case 339:
-
-/* Line 678 of lalr1.cc  */
-#line 3403 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3403 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
       cc_list_p->push_back(dynamic_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6054,9 +5250,8 @@
     break;
 
   case 340:
-
-/* Line 678 of lalr1.cc  */
-#line 3409 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3409 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       cc_list_p->push_back(dynamic_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -6065,9 +5260,8 @@
     break;
 
   case 341:
-
-/* Line 678 of lalr1.cc  */
-#line 3421 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3421 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (2)].node)),
@@ -6076,9 +5270,8 @@
     break;
 
   case 342:
-
-/* Line 678 of lalr1.cc  */
-#line 3427 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3427 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
@@ -6088,9 +5281,8 @@
     break;
 
   case 343:
-
-/* Line 678 of lalr1.cc  */
-#line 3438 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3438 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
       cc_list_p->push_back(dynamic_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6099,9 +5291,8 @@
     break;
 
   case 344:
-
-/* Line 678 of lalr1.cc  */
-#line 3444 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3444 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       cc_list_p->push_back(dynamic_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -6110,9 +5301,8 @@
     break;
 
   case 345:
-
-/* Line 678 of lalr1.cc  */
-#line 3455 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3455 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (2)].node)),
@@ -6121,9 +5311,8 @@
     break;
 
   case 346:
-
-/* Line 678 of lalr1.cc  */
-#line 3461 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3461 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
@@ -6133,63 +5322,56 @@
     break;
 
   case 347:
-
-/* Line 678 of lalr1.cc  */
-#line 3472 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3472 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new IfExpr(LOC ((yyloc)), (yysemantic_stack_[(8) - (3)].expr), (yysemantic_stack_[(8) - (6)].expr), (yysemantic_stack_[(8) - (8)].expr));
     }
     break;
 
   case 348:
-
-/* Line 678 of lalr1.cc  */
-#line 3481 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3481 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 349:
-
-/* Line 678 of lalr1.cc  */
-#line 3485 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3485 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new OrExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
     }
     break;
 
   case 350:
-
-/* Line 678 of lalr1.cc  */
-#line 3494 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3494 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 351:
-
-/* Line 678 of lalr1.cc  */
-#line 3498 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3498 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AndExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 352:
-
-/* Line 678 of lalr1.cc  */
-#line 3506 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3506 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 353:
-
-/* Line 678 of lalr1.cc  */
-#line 3510 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3510 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             /*  ::=  "eq" | "ne" | "lt" | "le" | "gt" | "ge" */
             (yyval.expr) = new ComparisonExpr(
@@ -6202,9 +5384,8 @@
     break;
 
   case 354:
-
-/* Line 678 of lalr1.cc  */
-#line 3520 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3520 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             /*  ::=  "is" | "<<" | ">>" */
             (yyval.expr) = new ComparisonExpr(
@@ -6214,9 +5395,8 @@
     break;
 
   case 355:
-
-/* Line 678 of lalr1.cc  */
-#line 3527 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3527 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6228,9 +5408,8 @@
     break;
 
   case 356:
-
-/* Line 678 of lalr1.cc  */
-#line 3536 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3536 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6242,9 +5421,8 @@
     break;
 
   case 357:
-
-/* Line 678 of lalr1.cc  */
-#line 3545 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3545 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             /* this call is needed */
             driver.lexer->interpretAsLessThan();
@@ -6252,9 +5430,8 @@
     break;
 
   case 358:
-
-/* Line 678 of lalr1.cc  */
-#line 3550 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3550 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6266,9 +5443,8 @@
     break;
 
   case 359:
-
-/* Line 678 of lalr1.cc  */
-#line 3559 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3559 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6280,9 +5456,8 @@
     break;
 
   case 360:
-
-/* Line 678 of lalr1.cc  */
-#line 3568 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3568 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6294,9 +5469,8 @@
     break;
 
   case 361:
-
-/* Line 678 of lalr1.cc  */
-#line 3577 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3577 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6308,18 +5482,16 @@
     break;
 
   case 362:
-
-/* Line 678 of lalr1.cc  */
-#line 3590 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3590 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 363:
-
-/* Line 678 of lalr1.cc  */
-#line 3594 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3594 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new FTContainsExpr(
                 LOC((yyloc)),
@@ -6331,99 +5503,88 @@
     break;
 
   case 364:
-
-/* Line 678 of lalr1.cc  */
-#line 3606 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3606 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 365:
-
-/* Line 678 of lalr1.cc  */
-#line 3610 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3610 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new StringConcatExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
         }
     break;
 
   case 366:
-
-/* Line 678 of lalr1.cc  */
-#line 3617 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3617 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = NULL;
         }
     break;
 
   case 367:
-
-/* Line 678 of lalr1.cc  */
-#line 3621 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3621 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 368:
-
-/* Line 678 of lalr1.cc  */
-#line 3628 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3628 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 369:
-
-/* Line 678 of lalr1.cc  */
-#line 3632 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3632 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new RangeExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 370:
-
-/* Line 678 of lalr1.cc  */
-#line 3641 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3641 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 371:
-
-/* Line 678 of lalr1.cc  */
-#line 3645 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3645 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_plus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 372:
-
-/* Line 678 of lalr1.cc  */
-#line 3649 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3649 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_minus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 373:
-
-/* Line 678 of lalr1.cc  */
-#line 3657 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3657 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 374:
-
-/* Line 678 of lalr1.cc  */
-#line 3661 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3661 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
                 LOC((yyloc)), ParseConstants::op_mul, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6432,9 +5593,8 @@
     break;
 
   case 375:
-
-/* Line 678 of lalr1.cc  */
-#line 3667 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3667 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
                 LOC((yyloc)), ParseConstants::op_div, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6443,9 +5603,8 @@
     break;
 
   case 376:
-
-/* Line 678 of lalr1.cc  */
-#line 3673 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3673 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
                 LOC((yyloc)), ParseConstants::op_idiv, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6454,9 +5613,8 @@
     break;
 
   case 377:
-
-/* Line 678 of lalr1.cc  */
-#line 3679 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3679 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
                 LOC((yyloc)), ParseConstants::op_mod, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6465,45 +5623,40 @@
     break;
 
   case 378:
-
-/* Line 678 of lalr1.cc  */
-#line 3689 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3689 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 379:
-
-/* Line 678 of lalr1.cc  */
-#line 3693 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3693 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 380:
-
-/* Line 678 of lalr1.cc  */
-#line 3697 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3697 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 381:
-
-/* Line 678 of lalr1.cc  */
-#line 3705 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3705 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 382:
-
-/* Line 678 of lalr1.cc  */
-#line 3709 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3709 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new IntersectExceptExpr(
                 LOC((yyloc)), ParseConstants::op_intersect, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6512,9 +5665,8 @@
     break;
 
   case 383:
-
-/* Line 678 of lalr1.cc  */
-#line 3715 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3715 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new IntersectExceptExpr(
                 LOC((yyloc)), ParseConstants::op_except, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6523,18 +5675,16 @@
     break;
 
   case 384:
-
-/* Line 678 of lalr1.cc  */
-#line 3725 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3725 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 385:
-
-/* Line 678 of lalr1.cc  */
-#line 3729 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3729 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InstanceofExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
@@ -6543,18 +5693,16 @@
     break;
 
   case 386:
-
-/* Line 678 of lalr1.cc  */
-#line 3739 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3739 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 387:
-
-/* Line 678 of lalr1.cc  */
-#line 3743 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3743 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new TreatExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
@@ -6563,18 +5711,16 @@
     break;
 
   case 388:
-
-/* Line 678 of lalr1.cc  */
-#line 3753 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3753 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 389:
-
-/* Line 678 of lalr1.cc  */
-#line 3757 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3757 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CastableExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
@@ -6583,18 +5729,16 @@
     break;
 
   case 390:
-
-/* Line 678 of lalr1.cc  */
-#line 3767 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3767 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 391:
-
-/* Line 678 of lalr1.cc  */
-#line 3771 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3771 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CastExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
@@ -6603,54 +5747,48 @@
     break;
 
   case 392:
-
-/* Line 678 of lalr1.cc  */
-#line 3781 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3781 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 393:
-
-/* Line 678 of lalr1.cc  */
-#line 3785 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3785 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnaryExpr( LOC((yyloc)), dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
   case 394:
-
-/* Line 678 of lalr1.cc  */
-#line 3793 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3793 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new SignList( LOC((yyloc)), true );
         }
     break;
 
   case 395:
-
-/* Line 678 of lalr1.cc  */
-#line 3797 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3797 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new SignList( LOC((yyloc)), false );
         }
     break;
 
   case 396:
-
-/* Line 678 of lalr1.cc  */
-#line 3801 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3801 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
     break;
 
   case 397:
-
-/* Line 678 of lalr1.cc  */
-#line 3805 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3805 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if ( SignList *sl = dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)) )
                 sl->negate();
@@ -6659,162 +5797,144 @@
     break;
 
   case 398:
-
-/* Line 678 of lalr1.cc  */
-#line 3815 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3815 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 399:
-
-/* Line 678 of lalr1.cc  */
-#line 3819 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3819 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 400:
-
-/* Line 678 of lalr1.cc  */
-#line 3823 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3823 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 401:
-
-/* Line 678 of lalr1.cc  */
-#line 3830 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3830 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
         (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
       }
     break;
 
   case 402:
-
-/* Line 678 of lalr1.cc  */
-#line 3835 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3835 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
         (yyval.expr) = new SimpleMapExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
       }
     break;
 
   case 403:
-
-/* Line 678 of lalr1.cc  */
-#line 3843 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3843 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_eq );
         }
     break;
 
   case 404:
-
-/* Line 678 of lalr1.cc  */
-#line 3847 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3847 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ne );
         }
     break;
 
   case 405:
-
-/* Line 678 of lalr1.cc  */
-#line 3851 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3851 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_lt );
         }
     break;
 
   case 406:
-
-/* Line 678 of lalr1.cc  */
-#line 3855 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3855 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_le );
         }
     break;
 
   case 407:
-
-/* Line 678 of lalr1.cc  */
-#line 3859 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3859 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_gt );
         }
     break;
 
   case 408:
-
-/* Line 678 of lalr1.cc  */
-#line 3863 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3863 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ge );
         }
     break;
 
   case 409:
-
-/* Line 678 of lalr1.cc  */
-#line 3871 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3871 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_is );
         }
     break;
 
   case 410:
-
-/* Line 678 of lalr1.cc  */
-#line 3875 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3875 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_precedes );
         }
     break;
 
   case 411:
-
-/* Line 678 of lalr1.cc  */
-#line 3879 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3879 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_follows );
         }
     break;
 
   case 412:
-
-/* Line 678 of lalr1.cc  */
-#line 3887 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3887 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
   case 413:
-
-/* Line 678 of lalr1.cc  */
-#line 3891 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3891 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "lax", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
   case 414:
-
-/* Line 678 of lalr1.cc  */
-#line 3895 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3895 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
   case 415:
-
-/* Line 678 of lalr1.cc  */
-#line 3899 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3899 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr(
                 LOC((yyloc)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (3)].node))->get_name(), (yysemantic_stack_[(6) - (5)].expr)
@@ -6824,9 +5944,8 @@
     break;
 
   case 416:
-
-/* Line 678 of lalr1.cc  */
-#line 3910 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3910 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(3) - (1)].node)), NULL
@@ -6835,9 +5954,8 @@
     break;
 
   case 417:
-
-/* Line 678 of lalr1.cc  */
-#line 3916 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3916 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(4) - (1)].node)), (yysemantic_stack_[(4) - (3)].expr)
@@ -6846,9 +5964,8 @@
     break;
 
   case 418:
-
-/* Line 678 of lalr1.cc  */
-#line 3926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             PragmaList *pl = new PragmaList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -6857,9 +5974,8 @@
     break;
 
   case 419:
-
-/* Line 678 of lalr1.cc  */
-#line 3932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3932 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if ( PragmaList *pl = dynamic_cast<PragmaList*>((yysemantic_stack_[(2) - (1)].node)) )
                 pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -6868,45 +5984,40 @@
     break;
 
   case 420:
-
-/* Line 678 of lalr1.cc  */
-#line 3942 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3942 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
         }
     break;
 
   case 421:
-
-/* Line 678 of lalr1.cc  */
-#line 3946 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3946 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) ), "" );
         }
     break;
 
   case 422:
-
-/* Line 678 of lalr1.cc  */
-#line 3950 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3950 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), true ), "" );
         }
     break;
 
   case 423:
-
-/* Line 678 of lalr1.cc  */
-#line 3988 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3988 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new PathExpr(LOC((yyloc)), ParseConstants::path_leading_lone_slash, NULL);
     }
     break;
 
   case 424:
-
-/* Line 678 of lalr1.cc  */
-#line 3992 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 3992 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       RelativePathExpr* rpe;
 
@@ -6919,9 +6030,8 @@
     break;
 
   case 425:
-
-/* Line 678 of lalr1.cc  */
-#line 4002 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4002 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       RelativePathExpr* rpe;
 
@@ -6934,9 +6044,8 @@
     break;
 
   case 426:
-
-/* Line 678 of lalr1.cc  */
-#line 4012 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4012 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       RelativePathExpr* rpe = dynamic_cast<RelativePathExpr*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (!rpe ?
@@ -6946,18 +6055,16 @@
     break;
 
   case 427:
-
-/* Line 678 of lalr1.cc  */
-#line 4025 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4025 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = NULL;
     }
     break;
 
   case 428:
-
-/* Line 678 of lalr1.cc  */
-#line 4034 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4034 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       AxisStep* as = dynamic_cast<AxisStep*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (as ?
@@ -6970,45 +6077,40 @@
     break;
 
   case 429:
-
-/* Line 678 of lalr1.cc  */
-#line 4044 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4044 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new RelativePathExpr(LOC((yyloc)), ParseConstants::st_slash, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr), false);
     }
     break;
 
   case 430:
-
-/* Line 678 of lalr1.cc  */
-#line 4048 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4048 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new RelativePathExpr(LOC((yyloc)), ParseConstants::st_slashslash, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr), false);
     }
     break;
 
   case 431:
-
-/* Line 678 of lalr1.cc  */
-#line 4057 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4057 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 432:
-
-/* Line 678 of lalr1.cc  */
-#line 4061 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4061 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 433:
-
-/* Line 678 of lalr1.cc  */
-#line 4070 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4070 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ForwardStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -7017,9 +6119,8 @@
     break;
 
   case 434:
-
-/* Line 678 of lalr1.cc  */
-#line 4076 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4076 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -7030,9 +6131,8 @@
     break;
 
   case 435:
-
-/* Line 678 of lalr1.cc  */
-#line 4084 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4084 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ReverseStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -7041,9 +6141,8 @@
     break;
 
   case 436:
-
-/* Line 678 of lalr1.cc  */
-#line 4090 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4090 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -7054,9 +6153,8 @@
     break;
 
   case 437:
-
-/* Line 678 of lalr1.cc  */
-#line 4102 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4102 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardStep(
                 LOC((yyloc)), dynamic_cast<ForwardAxis*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].node)
@@ -7065,9 +6163,8 @@
     break;
 
   case 438:
-
-/* Line 678 of lalr1.cc  */
-#line 4108 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4108 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardStep(
                 LOC((yyloc)), dynamic_cast<AbbrevForwardStep*>((yysemantic_stack_[(1) - (1)].node))
@@ -7076,45 +6173,40 @@
     break;
 
   case 439:
-
-/* Line 678 of lalr1.cc  */
-#line 4118 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4118 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_child );
         }
     break;
 
   case 440:
-
-/* Line 678 of lalr1.cc  */
-#line 4122 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4122 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_descendant);
         }
     break;
 
   case 441:
-
-/* Line 678 of lalr1.cc  */
-#line 4126 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4126 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_attribute );
         }
     break;
 
   case 442:
-
-/* Line 678 of lalr1.cc  */
-#line 4130 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4130 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_self );
         }
     break;
 
   case 443:
-
-/* Line 678 of lalr1.cc  */
-#line 4134 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4134 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_descendant_or_self
@@ -7123,9 +6215,8 @@
     break;
 
   case 444:
-
-/* Line 678 of lalr1.cc  */
-#line 4140 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4140 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_following_sibling
@@ -7134,45 +6225,40 @@
     break;
 
   case 445:
-
-/* Line 678 of lalr1.cc  */
-#line 4146 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4146 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_following );
         }
     break;
 
   case 446:
-
-/* Line 678 of lalr1.cc  */
-#line 4154 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4154 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), false );
         }
     break;
 
   case 447:
-
-/* Line 678 of lalr1.cc  */
-#line 4158 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4158 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].node), true );
         }
     break;
 
   case 448:
-
-/* Line 678 of lalr1.cc  */
-#line 4166 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4166 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseStep( LOC((yyloc)), dynamic_cast<ReverseAxis*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].node) );
         }
     break;
 
   case 449:
-
-/* Line 678 of lalr1.cc  */
-#line 4170 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4170 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             ReverseAxis *ra = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_parent
@@ -7182,27 +6268,24 @@
     break;
 
   case 450:
-
-/* Line 678 of lalr1.cc  */
-#line 4181 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4181 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_parent );
         }
     break;
 
   case 451:
-
-/* Line 678 of lalr1.cc  */
-#line 4185 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4185 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_ancestor );
         }
     break;
 
   case 452:
-
-/* Line 678 of lalr1.cc  */
-#line 4189 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4189 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_preceding_sibling
@@ -7211,18 +6294,16 @@
     break;
 
   case 453:
-
-/* Line 678 of lalr1.cc  */
-#line 4195 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4195 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_preceding );
         }
     break;
 
   case 454:
-
-/* Line 678 of lalr1.cc  */
-#line 4199 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4199 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_ancestor_or_self
@@ -7231,117 +6312,104 @@
     break;
 
   case 455:
-
-/* Line 678 of lalr1.cc  */
-#line 4213 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4213 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 456:
-
-/* Line 678 of lalr1.cc  */
-#line 4217 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4217 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 457:
-
-/* Line 678 of lalr1.cc  */
-#line 4225 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4225 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
     break;
 
   case 458:
-
-/* Line 678 of lalr1.cc  */
-#line 4229 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4229 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), dynamic_cast<Wildcard*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
   case 459:
-
-/* Line 678 of lalr1.cc  */
-#line 4239 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4239 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", "", ParseConstants::wild_all, false);
     }
     break;
 
   case 460:
-
-/* Line 678 of lalr1.cc  */
-#line 4243 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4243 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, false);
     }
     break;
 
   case 461:
-
-/* Line 678 of lalr1.cc  */
-#line 4247 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4247 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, true);
     }
     break;
 
   case 462:
-
-/* Line 678 of lalr1.cc  */
-#line 4251 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4251 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", SYMTAB((yysemantic_stack_[(1) - (1)].sval)), ParseConstants::wild_prefix, false);
     }
     break;
 
   case 463:
-
-/* Line 678 of lalr1.cc  */
-#line 4260 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4260 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
      }
     break;
 
   case 464:
-
-/* Line 678 of lalr1.cc  */
-#line 4264 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4264 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = new FilterExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (2)].node)));
      }
     break;
 
   case 465:
-
-/* Line 678 of lalr1.cc  */
-#line 4268 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4268 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(3) - (1)].expr));
+       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(3) - (1)].expr), false);
      }
     break;
 
   case 466:
-
-/* Line 678 of lalr1.cc  */
-#line 4272 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4272 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node)));
+       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node)), false);
      }
     break;
 
   case 467:
-
-/* Line 678 of lalr1.cc  */
-#line 4280 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4280 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             PredicateList *pl = new PredicateList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -7350,9 +6418,8 @@
     break;
 
   case 468:
-
-/* Line 678 of lalr1.cc  */
-#line 4286 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4286 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if ( PredicateList *pl = dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (1)].node)) )
                 pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(2) - (2)].expr)) );
@@ -7361,162 +6428,144 @@
     break;
 
   case 469:
-
-/* Line 678 of lalr1.cc  */
-#line 4296 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4296 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
         }
     break;
 
   case 470:
-
-/* Line 678 of lalr1.cc  */
-#line 4304 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4304 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 471:
-
-/* Line 678 of lalr1.cc  */
-#line 4308 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4308 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 472:
-
-/* Line 678 of lalr1.cc  */
-#line 4312 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4312 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 473:
-
-/* Line 678 of lalr1.cc  */
-#line 4316 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4316 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 474:
-
-/* Line 678 of lalr1.cc  */
-#line 4320 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4320 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 475:
-
-/* Line 678 of lalr1.cc  */
-#line 4324 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4324 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 476:
-
-/* Line 678 of lalr1.cc  */
-#line 4328 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4328 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 477:
-
-/* Line 678 of lalr1.cc  */
-#line 4332 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4332 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 478:
-
-/* Line 678 of lalr1.cc  */
-#line 4336 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4336 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 479:
-
-/* Line 678 of lalr1.cc  */
-#line 4340 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4340 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 480:
-
-/* Line 678 of lalr1.cc  */
-#line 4345 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4345 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 481:
-
-/* Line 678 of lalr1.cc  */
-#line 4349 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4349 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 482:
-
-/* Line 678 of lalr1.cc  */
-#line 4353 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4353 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 483:
-
-/* Line 678 of lalr1.cc  */
-#line 4357 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4357 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 484:
-
-/* Line 678 of lalr1.cc  */
-#line 4365 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4365 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 485:
-
-/* Line 678 of lalr1.cc  */
-#line 4369 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4369 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 486:
-
-/* Line 678 of lalr1.cc  */
-#line 4377 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4377 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_decimal, *(yysemantic_stack_[(1) - (1)].decval)
@@ -7526,9 +6575,8 @@
     break;
 
   case 487:
-
-/* Line 678 of lalr1.cc  */
-#line 4384 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4384 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_integer, *(yysemantic_stack_[(1) - (1)].ival)
@@ -7538,9 +6586,8 @@
     break;
 
   case 488:
-
-/* Line 678 of lalr1.cc  */
-#line 4391 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4391 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_double, *(yysemantic_stack_[(1) - (1)].dval)
@@ -7550,152 +6597,168 @@
     break;
 
   case 489:
-
-/* Line 678 of lalr1.cc  */
-#line 4402 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4402 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new VarRef(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)));
         }
     break;
 
   case 490:
-
-/* Line 678 of lalr1.cc  */
-#line 4410 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4410 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), NULL);
         }
     break;
 
   case 491:
-
-/* Line 678 of lalr1.cc  */
-#line 4414 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4414 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
   case 492:
-
-/* Line 678 of lalr1.cc  */
-#line 4422 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4422 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ContextItemExpr( LOC((yyloc)) );
         }
     break;
 
   case 493:
-
-/* Line 678 of lalr1.cc  */
-#line 4430 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4430 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new OrderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
   case 494:
-
-/* Line 678 of lalr1.cc  */
-#line 4438 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4438 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnorderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
   case 495:
-
-/* Line 678 of lalr1.cc  */
-#line 4492 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4492 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new FunctionCall( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), NULL );
         }
     break;
 
   case 496:
-
-/* Line 678 of lalr1.cc  */
-#line 4496 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4496 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new FunctionCall(
-                LOC((yyloc)),
-                static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
-                dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node))
-            );
+            ArgList* argList = dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node));
+
+            if (argList->has_placeholder())
+            {
+                (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)),
+                           new LiteralFunctionItem(LOC ((yyloc)), dynamic_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)), new Integer(argList->size())),
+                           argList,
+                           true);
+            }
+            else
+            {
+                (yyval.expr) = new FunctionCall(
+                    LOC((yyloc)),
+                    static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
+                    argList
+                );
+            }
         }
     break;
 
   case 497:
-
-/* Line 678 of lalr1.cc  */
-#line 4509 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4521 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             ArgList *al = new ArgList( LOC((yyloc)) );
-            al->push_back( (yysemantic_stack_[(1) - (1)].expr) );
+            al->push_back(new ArgumentPlaceholder(LOC((yyloc))));
             (yyval.node) = al;
         }
     break;
 
   case 498:
-
-/* Line 678 of lalr1.cc  */
-#line 4515 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4527 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if ( ArgList *al = dynamic_cast<ArgList*>((yysemantic_stack_[(3) - (1)].node)) )
-                al->push_back( (yysemantic_stack_[(3) - (3)].expr) );
+                al->push_back( new ArgumentPlaceholder(LOC((yyloc))) );
             (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
         }
     break;
 
   case 499:
-
-/* Line 678 of lalr1.cc  */
-#line 4525 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4533 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            ArgList *al = new ArgList( LOC((yyloc)) );
+            al->push_back( (yysemantic_stack_[(1) - (1)].expr) );
+            (yyval.node) = al;
         }
     break;
 
   case 500:
-
-/* Line 678 of lalr1.cc  */
-#line 4529 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4539 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            if ( ArgList *al = dynamic_cast<ArgList*>((yysemantic_stack_[(3) - (1)].node)) )
+                al->push_back( (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
         }
     break;
 
   case 501:
-
-/* Line 678 of lalr1.cc  */
-#line 4537 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4549 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 502:
-
-/* Line 678 of lalr1.cc  */
-#line 4541 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4553 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 503:
-
-/* Line 678 of lalr1.cc  */
-#line 4545 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4561 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 504:
-
-/* Line 678 of lalr1.cc  */
-#line 4553 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4565 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 505:
+/* Line 661 of lalr1.cc  */
+#line 4569 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 506:
+/* Line 661 of lalr1.cc  */
+#line 4577 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new DirElemConstructor(
                 LOC((yyloc)),
@@ -7707,10 +6770,9 @@
         }
     break;
 
-  case 505:
-
-/* Line 678 of lalr1.cc  */
-#line 4563 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 507:
+/* Line 661 of lalr1.cc  */
+#line 4587 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new DirElemConstructor(
                 LOC((yyloc)),
@@ -7722,10 +6784,9 @@
         }
     break;
 
-  case 506:
-
-/* Line 678 of lalr1.cc  */
-#line 4573 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 508:
+/* Line 661 of lalr1.cc  */
+#line 4597 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if (static_cast<QName*>((yysemantic_stack_[(8) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(8) - (6)].expr))->get_qname())
             {
@@ -7744,10 +6805,9 @@
         }
     break;
 
-  case 507:
-
-/* Line 678 of lalr1.cc  */
-#line 4590 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 509:
+/* Line 661 of lalr1.cc  */
+#line 4614 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if (static_cast<QName*>((yysemantic_stack_[(9) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(9) - (7)].expr))->get_qname())
             {
@@ -7766,10 +6826,9 @@
         }
     break;
 
-  case 508:
-
-/* Line 678 of lalr1.cc  */
-#line 4607 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 510:
+/* Line 661 of lalr1.cc  */
+#line 4631 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if (static_cast<QName*>((yysemantic_stack_[(9) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(9) - (7)].expr))->get_qname())
             {
@@ -7788,10 +6847,9 @@
         }
     break;
 
-  case 509:
-
-/* Line 678 of lalr1.cc  */
-#line 4624 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 511:
+/* Line 661 of lalr1.cc  */
+#line 4648 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if (static_cast<QName*>((yysemantic_stack_[(10) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr))->get_qname())
             {
@@ -7810,10 +6868,9 @@
         }
     break;
 
-  case 510:
-
-/* Line 678 of lalr1.cc  */
-#line 4646 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 512:
+/* Line 661 of lalr1.cc  */
+#line 4670 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             DirElemContentList *decl = new DirElemContentList( LOC((yyloc)) );
             decl->push_back( dynamic_cast<DirElemContent*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -7821,10 +6878,9 @@
         }
     break;
 
-  case 511:
-
-/* Line 678 of lalr1.cc  */
-#line 4652 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 513:
+/* Line 661 of lalr1.cc  */
+#line 4676 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             DirElemContentList *decl = dynamic_cast<DirElemContentList*>((yysemantic_stack_[(2) - (1)].node));
             if ( decl )
@@ -7833,10 +6889,9 @@
         }
     break;
 
-  case 512:
-
-/* Line 678 of lalr1.cc  */
-#line 4663 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 514:
+/* Line 661 of lalr1.cc  */
+#line 4687 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             DirAttributeList *dal = new DirAttributeList( LOC((yyloc)) );
             dal->push_back( dynamic_cast<DirAttr*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7844,10 +6899,9 @@
         }
     break;
 
-  case 513:
-
-/* Line 678 of lalr1.cc  */
-#line 4669 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 515:
+/* Line 661 of lalr1.cc  */
+#line 4693 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             DirAttributeList *dal = dynamic_cast<DirAttributeList*>((yysemantic_stack_[(2) - (1)].node));
             if ( dal )
@@ -7856,10 +6910,9 @@
         }
     break;
 
-  case 514:
-
-/* Line 678 of lalr1.cc  */
-#line 4680 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 516:
+/* Line 661 of lalr1.cc  */
+#line 4704 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DirAttr(
                 LOC((yyloc)),
@@ -7869,114 +6922,103 @@
         }
     break;
 
-  case 517:
-
-/* Line 678 of lalr1.cc  */
-#line 4697 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 519:
+/* Line 661 of lalr1.cc  */
+#line 4721 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DirAttributeValue( LOC((yyloc)),
                                 dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 518:
-
-/* Line 678 of lalr1.cc  */
-#line 4702 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 520:
+/* Line 661 of lalr1.cc  */
+#line 4726 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DirAttributeValue( LOC((yyloc)),
                                 dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 519:
-
-/* Line 678 of lalr1.cc  */
-#line 4711 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 521:
+/* Line 661 of lalr1.cc  */
+#line 4735 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new QuoteAttrContentList( LOC((yyloc)) );
         }
     break;
 
-  case 520:
-
-/* Line 678 of lalr1.cc  */
-#line 4715 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 521:
-
-/* Line 678 of lalr1.cc  */
-#line 4722 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
-            qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
-            (yyval.node) = qacl;
-        }
-    break;
-
   case 522:
-
-/* Line 678 of lalr1.cc  */
-#line 4728 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4739 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
-            qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
-            (yyval.node) = qacl;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 523:
-
-/* Line 678 of lalr1.cc  */
-#line 4734 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4746 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            QuoteAttrContentList *qacl =
-                dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
-            if ( qacl )
-                qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+            QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
+            qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
+            (yyval.node) = qacl;
         }
     break;
 
   case 524:
-
-/* Line 678 of lalr1.cc  */
-#line 4742 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4752 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            QuoteAttrContentList *qacl =
-                dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
-            if ( qacl )
-                qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(2) - (2)].node)) );
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+            QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
+            qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
+            (yyval.node) = qacl;
         }
     break;
 
   case 525:
-
-/* Line 678 of lalr1.cc  */
-#line 4754 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4758 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AposAttrContentList( LOC((yyloc)) );
+            QuoteAttrContentList *qacl =
+                dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
+            if ( qacl )
+                qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
     break;
 
   case 526:
-
-/* Line 678 of lalr1.cc  */
-#line 4758 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4766 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            QuoteAttrContentList *qacl =
+                dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
+            if ( qacl )
+                qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(2) - (2)].node)) );
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
     break;
 
   case 527:
-
-/* Line 678 of lalr1.cc  */
-#line 4765 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4778 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = new AposAttrContentList( LOC((yyloc)) );
+        }
+    break;
+
+  case 528:
+/* Line 661 of lalr1.cc  */
+#line 4782 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 529:
+/* Line 661 of lalr1.cc  */
+#line 4789 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
             aacl->push_back( new AposAttrValueContent( LOC((yyloc)),"'") );
@@ -7984,10 +7026,9 @@
         }
     break;
 
-  case 528:
-
-/* Line 678 of lalr1.cc  */
-#line 4771 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 530:
+/* Line 661 of lalr1.cc  */
+#line 4795 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
             aacl->push_back( dynamic_cast<AposAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7995,10 +7036,9 @@
         }
     break;
 
-  case 529:
-
-/* Line 678 of lalr1.cc  */
-#line 4777 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 531:
+/* Line 661 of lalr1.cc  */
+#line 4801 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
             if (aacl)
@@ -8007,10 +7047,9 @@
         }
     break;
 
-  case 530:
-
-/* Line 678 of lalr1.cc  */
-#line 4784 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 532:
+/* Line 661 of lalr1.cc  */
+#line 4808 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
             if ( aacl )
@@ -8019,19 +7058,17 @@
         }
     break;
 
-  case 531:
-
-/* Line 678 of lalr1.cc  */
-#line 4795 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 533:
+/* Line 661 of lalr1.cc  */
+#line 4819 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new QuoteAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
-  case 532:
-
-/* Line 678 of lalr1.cc  */
-#line 4799 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 534:
+/* Line 661 of lalr1.cc  */
+#line 4823 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new QuoteAttrValueContent(
                 LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr))
@@ -8039,19 +7076,17 @@
         }
     break;
 
-  case 533:
-
-/* Line 678 of lalr1.cc  */
-#line 4809 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 535:
+/* Line 661 of lalr1.cc  */
+#line 4833 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AposAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
-  case 534:
-
-/* Line 678 of lalr1.cc  */
-#line 4813 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 536:
+/* Line 661 of lalr1.cc  */
+#line 4837 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AposAttrValueContent(
                 LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr))
@@ -8059,48 +7094,43 @@
         }
     break;
 
-  case 535:
-
-/* Line 678 of lalr1.cc  */
-#line 4823 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 537:
+/* Line 661 of lalr1.cc  */
+#line 4847 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new DirElemContent( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr) );
         }
     break;
 
-  case 536:
-
-/* Line 678 of lalr1.cc  */
-#line 4827 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 538:
+/* Line 661 of lalr1.cc  */
+#line 4851 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new DirElemContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
-  case 537:
-
-/* Line 678 of lalr1.cc  */
-#line 4831 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 539:
+/* Line 661 of lalr1.cc  */
+#line 4855 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             rchandle<CDataSection> cdata_h = dynamic_cast<CDataSection*>((yysemantic_stack_[(1) - (1)].expr));
             (yyval.expr) = new DirElemContent( LOC((yyloc)), cdata_h );
         }
     break;
 
-  case 538:
-
-/* Line 678 of lalr1.cc  */
-#line 4836 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 540:
+/* Line 661 of lalr1.cc  */
+#line 4860 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             rchandle<CommonContent> cont_h = dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr));
             (yyval.expr) = new DirElemContent( LOC((yyloc)), cont_h );
         }
     break;
 
-  case 539:
-
-/* Line 678 of lalr1.cc  */
-#line 4845 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 541:
+/* Line 661 of lalr1.cc  */
+#line 4869 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CommonContent(
                 LOC((yyloc)), ParseConstants::cont_charref, SYMTAB((yysemantic_stack_[(1) - (1)].sval))
@@ -8108,10 +7138,9 @@
         }
     break;
 
-  case 540:
-
-/* Line 678 of lalr1.cc  */
-#line 4851 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 542:
+/* Line 661 of lalr1.cc  */
+#line 4875 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CommonContent(
                 LOC((yyloc)), ParseConstants::cont_escape_lbrace
@@ -8119,10 +7148,9 @@
         }
     break;
 
-  case 541:
-
-/* Line 678 of lalr1.cc  */
-#line 4857 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 543:
+/* Line 661 of lalr1.cc  */
+#line 4881 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CommonContent(
                 LOC((yyloc)), ParseConstants::cont_escape_rbrace
@@ -8130,353 +7158,315 @@
         }
     break;
 
-  case 542:
-
-/* Line 678 of lalr1.cc  */
-#line 4863 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 544:
+/* Line 661 of lalr1.cc  */
+#line 4887 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CommonContent(LOC((yyloc)), new EnclosedExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr)));
         }
     break;
 
-  case 543:
-
-/* Line 678 of lalr1.cc  */
-#line 4871 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 545:
+/* Line 661 of lalr1.cc  */
+#line 4895 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 544:
-
-/* Line 678 of lalr1.cc  */
-#line 4876 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 546:
+/* Line 661 of lalr1.cc  */
+#line 4900 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), "" );
     }
     break;
 
-  case 545:
-
-/* Line 678 of lalr1.cc  */
-#line 4884 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 547:
+/* Line 661 of lalr1.cc  */
+#line 4908 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 546:
-
-/* Line 678 of lalr1.cc  */
-#line 4889 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 548:
+/* Line 661 of lalr1.cc  */
+#line 4913 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
     break;
 
-  case 547:
-
-/* Line 678 of lalr1.cc  */
-#line 4897 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 549:
+/* Line 661 of lalr1.cc  */
+#line 4921 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new CDataSection( LOC((yyloc)),SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
-  case 548:
-
-/* Line 678 of lalr1.cc  */
-#line 4905 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 549:
-
-/* Line 678 of lalr1.cc  */
-#line 4910 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
   case 550:
-
-/* Line 678 of lalr1.cc  */
-#line 4915 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4929 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 551:
-
-/* Line 678 of lalr1.cc  */
-#line 4920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4934 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 552:
-
-/* Line 678 of lalr1.cc  */
-#line 4925 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4939 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 553:
-
-/* Line 678 of lalr1.cc  */
-#line 4930 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4944 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 554:
-
-/* Line 678 of lalr1.cc  */
-#line 4939 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4949 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
-        }
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
     break;
 
   case 555:
-
-/* Line 678 of lalr1.cc  */
-#line 4947 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4954 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompElemConstructor(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr));
-        }
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
     break;
 
   case 556:
-
-/* Line 678 of lalr1.cc  */
-#line 4951 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4963 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+            (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
   case 557:
-
-/* Line 678 of lalr1.cc  */
-#line 4968 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4971 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-          (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr) );
+            (yyval.expr) = new CompElemConstructor(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr));
         }
     break;
 
   case 558:
-
-/* Line 678 of lalr1.cc  */
-#line 4972 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4975 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+            (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
         }
     break;
 
   case 559:
-
-/* Line 678 of lalr1.cc  */
-#line 4980 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4992 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+          (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
   case 560:
-
-/* Line 678 of lalr1.cc  */
-#line 4988 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 4996 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+            (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
         }
     break;
 
   case 561:
-
-/* Line 678 of lalr1.cc  */
-#line 4996 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5004 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr) );
+            (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
   case 562:
-
-/* Line 678 of lalr1.cc  */
-#line 5000 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5012 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompPIConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+            (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
   case 563:
-
-/* Line 678 of lalr1.cc  */
-#line 5008 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5020 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SingleType(
-                LOC((yyloc)), dynamic_cast<AtomicType*>((yysemantic_stack_[(1) - (1)].node)), false
-            );
+            (yyval.expr) = new CompPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
   case 564:
-
-/* Line 678 of lalr1.cc  */
-#line 5014 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5024 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SingleType(
-                LOC((yyloc)), dynamic_cast<AtomicType*>((yysemantic_stack_[(2) - (1)].node)), true
-            );
+            (yyval.expr) = new CompPIConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
         }
     break;
 
   case 565:
-
-/* Line 678 of lalr1.cc  */
-#line 5024 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5032 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
+            (yyval.node) = new SingleType(
+                LOC((yyloc)), dynamic_cast<AtomicType*>((yysemantic_stack_[(1) - (1)].node)), false
+            );
         }
     break;
 
   case 566:
-
-/* Line 678 of lalr1.cc  */
-#line 5032 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5038 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
+            (yyval.node) = new SingleType(
+                LOC((yyloc)), dynamic_cast<AtomicType*>((yysemantic_stack_[(2) - (1)].node)), true
+            );
         }
     break;
 
   case 567:
-
-/* Line 678 of lalr1.cc  */
-#line 5036 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5048 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SequenceType(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node)));
+            (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
         }
     break;
 
   case 568:
-
-/* Line 678 of lalr1.cc  */
-#line 5040 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5056 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
+            (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
         }
     break;
 
   case 569:
-
-/* Line 678 of lalr1.cc  */
-#line 5075 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5060 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_optionally
-            );
+            (yyval.node) = new SequenceType(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node)));
         }
     break;
 
   case 570:
-
-/* Line 678 of lalr1.cc  */
-#line 5081 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5064 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_zero_or_more
-            );
+            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 571:
-
-/* Line 678 of lalr1.cc  */
-#line 5087 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5099 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_one_or_more
+                LOC((yyloc)), ParseConstants::occurs_optionally
             );
         }
     break;
 
   case 572:
-
-/* Line 678 of lalr1.cc  */
-#line 5097 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5105 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_zero_or_more
+            );
         }
     break;
 
   case 573:
-
-/* Line 678 of lalr1.cc  */
-#line 5101 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5111 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_one_or_more
+            );
         }
     break;
 
   case 574:
-
-/* Line 678 of lalr1.cc  */
-#line 5105 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5121 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ItemType( LOC((yyloc)), true );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 575:
-
-/* Line 678 of lalr1.cc  */
-#line 5109 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5125 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new StructuredItemType(LOC((yyloc)));
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 576:
-
-/* Line 678 of lalr1.cc  */
-#line 5113 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5129 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new ItemType( LOC((yyloc)), true );
         }
     break;
 
   case 577:
-
-/* Line 678 of lalr1.cc  */
-#line 5117 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5133 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new StructuredItemType(LOC((yyloc)));
         }
     break;
 
   case 578:
-
-/* Line 678 of lalr1.cc  */
-#line 5121 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5137 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 579:
-
-/* Line 678 of lalr1.cc  */
-#line 5128 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5141 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 580:
+/* Line 661 of lalr1.cc  */
+#line 5145 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 581:
+/* Line 661 of lalr1.cc  */
+#line 5152 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           TypeList* aTypeList = new TypeList(LOC ((yyloc)));
           aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
@@ -8484,10 +7474,9 @@
         }
     break;
 
-  case 580:
-
-/* Line 678 of lalr1.cc  */
-#line 5134 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 582:
+/* Line 661 of lalr1.cc  */
+#line 5158 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           TypeList* aTypeList = dynamic_cast<TypeList *>((yysemantic_stack_[(3) - (1)].node));
           aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(3) - (3)].node)));
@@ -8495,127 +7484,113 @@
         }
     break;
 
-  case 581:
-
-/* Line 678 of lalr1.cc  */
-#line 5144 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 583:
+/* Line 661 of lalr1.cc  */
+#line 5168 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
     break;
 
-  case 582:
-
-/* Line 678 of lalr1.cc  */
-#line 5152 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 583:
-
-/* Line 678 of lalr1.cc  */
-#line 5156 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 584:
-
-/* Line 678 of lalr1.cc  */
-#line 5160 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5176 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 585:
-
-/* Line 678 of lalr1.cc  */
-#line 5164 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5180 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 586:
-
-/* Line 678 of lalr1.cc  */
-#line 5168 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5184 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 587:
-
-/* Line 678 of lalr1.cc  */
-#line 5172 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5188 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 588:
-
-/* Line 678 of lalr1.cc  */
-#line 5176 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5192 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 589:
-
-/* Line 678 of lalr1.cc  */
-#line 5180 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5196 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 590:
-
-/* Line 678 of lalr1.cc  */
-#line 5184 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5200 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 591:
-
-/* Line 678 of lalr1.cc  */
-#line 5192 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5204 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 592:
+/* Line 661 of lalr1.cc  */
+#line 5208 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 593:
+/* Line 661 of lalr1.cc  */
+#line 5216 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AnyKindTest( LOC((yyloc)) );
         }
     break;
 
-  case 592:
-
-/* Line 678 of lalr1.cc  */
-#line 5200 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 594:
+/* Line 661 of lalr1.cc  */
+#line 5224 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DocumentTest( LOC((yyloc)) );
         }
     break;
 
-  case 593:
-
-/* Line 678 of lalr1.cc  */
-#line 5204 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 595:
+/* Line 661 of lalr1.cc  */
+#line 5228 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DocumentTest( LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)) );
         }
     break;
 
-  case 594:
-
-/* Line 678 of lalr1.cc  */
-#line 5208 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 596:
+/* Line 661 of lalr1.cc  */
+#line 5232 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DocumentTest(
                 LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node))
@@ -8623,259 +7598,233 @@
         }
     break;
 
-  case 595:
-
-/* Line 678 of lalr1.cc  */
-#line 5218 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 597:
+/* Line 661 of lalr1.cc  */
+#line 5242 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new TextTest( LOC((yyloc)) );
         }
     break;
 
-  case 596:
-
-/* Line 678 of lalr1.cc  */
-#line 5226 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 598:
+/* Line 661 of lalr1.cc  */
+#line 5250 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new CommentTest( LOC((yyloc)));
         }
     break;
 
-  case 597:
-
-/* Line 678 of lalr1.cc  */
-#line 5234 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 599:
+/* Line 661 of lalr1.cc  */
+#line 5258 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new PITest( LOC((yyloc)), "" );
         }
     break;
 
-  case 598:
-
-/* Line 678 of lalr1.cc  */
-#line 5238 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
-        }
-    break;
-
-  case 599:
-
-/* Line 678 of lalr1.cc  */
-#line 5242 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
-        }
-    break;
-
   case 600:
-
-/* Line 678 of lalr1.cc  */
-#line 5250 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5262 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
+            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
   case 601:
-
-/* Line 678 of lalr1.cc  */
-#line 5254 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5266 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AttributeTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
-            );
+            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
   case 602:
-
-/* Line 678 of lalr1.cc  */
-#line 5260 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5274 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AttributeTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
-            );
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 603:
-
-/* Line 678 of lalr1.cc  */
-#line 5266 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5278 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
+            );
         }
     break;
 
   case 604:
-
-/* Line 678 of lalr1.cc  */
-#line 5270 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5284 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AttributeTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
             );
         }
     break;
 
   case 605:
-
-/* Line 678 of lalr1.cc  */
-#line 5280 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5290 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 606:
-
-/* Line 678 of lalr1.cc  */
-#line 5288 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5294 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
+            );
         }
     break;
 
   case 607:
-
-/* Line 678 of lalr1.cc  */
-#line 5292 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5304 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
-            );
+            (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
   case 608:
-
-/* Line 678 of lalr1.cc  */
-#line 5298 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5312 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)),
-                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
-                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
-                false
-            );
+            (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
         }
     break;
 
   case 609:
-
-/* Line 678 of lalr1.cc  */
-#line 5307 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5316 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
-                LOC((yyloc)),
-                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
-                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
-                true
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
             );
         }
     break;
 
   case 610:
-
-/* Line 678 of lalr1.cc  */
-#line 5316 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5322 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, NULL, true
+                LOC((yyloc)),
+                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
+                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
+                false
             );
         }
     break;
 
   case 611:
-
-/* Line 678 of lalr1.cc  */
-#line 5322 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5331 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
+                LOC((yyloc)),
+                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
+                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
+                true
             );
         }
     break;
 
   case 612:
-
-/* Line 678 of lalr1.cc  */
-#line 5328 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5340 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
+                LOC((yyloc)), NULL, NULL, true
             );
         }
     break;
 
   case 613:
-
-/* Line 678 of lalr1.cc  */
-#line 5338 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5346 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
+            );
         }
     break;
 
   case 614:
-
-/* Line 678 of lalr1.cc  */
-#line 5355 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5352 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
+            );
         }
     break;
 
   case 615:
-
-/* Line 678 of lalr1.cc  */
-#line 5362 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5362 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
+            (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
   case 616:
-
-/* Line 678 of lalr1.cc  */
-#line 5377 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5379 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
+            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
     break;
 
   case 617:
-
-/* Line 678 of lalr1.cc  */
-#line 5413 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5386 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
+            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
+        }
     break;
 
   case 618:
-
-/* Line 678 of lalr1.cc  */
-#line 5417 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5401 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
+            (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
+        }
     break;
 
   case 619:
-
-/* Line 678 of lalr1.cc  */
-#line 5425 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5437 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 620:
+/* Line 661 of lalr1.cc  */
+#line 5441 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 621:
+/* Line 661 of lalr1.cc  */
+#line 5449 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new LiteralFunctionItem(LOC ((yyloc)), dynamic_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].ival));
     }
     break;
 
-  case 620:
-
-/* Line 678 of lalr1.cc  */
-#line 5433 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 622:
+/* Line 661 of lalr1.cc  */
+#line 5457 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new InlineFunction(LOC((yyloc)),
                               &*(yysemantic_stack_[(3) - (2)].fnsig)->theParams,
@@ -8885,46 +7834,41 @@
     }
     break;
 
-  case 621:
-
-/* Line 678 of lalr1.cc  */
-#line 5445 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
-  case 622:
-
-/* Line 678 of lalr1.cc  */
-#line 5449 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
   case 623:
-
-/* Line 678 of lalr1.cc  */
-#line 5457 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5469 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
+
+  case 624:
+/* Line 661 of lalr1.cc  */
+#line 5473 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
+
+  case 625:
+/* Line 661 of lalr1.cc  */
+#line 5481 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnyFunctionTest(LOC((yyloc)));
     }
     break;
 
-  case 624:
-
-/* Line 678 of lalr1.cc  */
-#line 5465 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 626:
+/* Line 661 of lalr1.cc  */
+#line 5489 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)), dynamic_cast<SequenceType *>((yysemantic_stack_[(5) - (5)].node)));
         }
     break;
 
-  case 625:
-
-/* Line 678 of lalr1.cc  */
-#line 5469 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 627:
+/* Line 661 of lalr1.cc  */
+#line 5493 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)),
               dynamic_cast<TypeList *>((yysemantic_stack_[(6) - (3)].node)),
@@ -8932,19 +7876,17 @@
         }
     break;
 
-  case 626:
-
-/* Line 678 of lalr1.cc  */
-#line 5480 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 628:
+/* Line 661 of lalr1.cc  */
+#line 5504 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
            (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
-  case 627:
-
-/* Line 678 of lalr1.cc  */
-#line 5497 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 629:
+/* Line 661 of lalr1.cc  */
+#line 5521 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::strict_validation
@@ -8952,10 +7894,9 @@
         }
     break;
 
-  case 628:
-
-/* Line 678 of lalr1.cc  */
-#line 5503 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 630:
+/* Line 661 of lalr1.cc  */
+#line 5527 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::lax_validation
@@ -8963,10 +7904,9 @@
         }
     break;
 
-  case 629:
-
-/* Line 678 of lalr1.cc  */
-#line 5509 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 631:
+/* Line 661 of lalr1.cc  */
+#line 5533 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::skip_validation
@@ -8974,81 +7914,73 @@
         }
     break;
 
-  case 630:
-
-/* Line 678 of lalr1.cc  */
-#line 5519 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
-        }
-    break;
-
-  case 631:
-
-/* Line 678 of lalr1.cc  */
-#line 5523 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
-        }
-    break;
-
   case 632:
-
-/* Line 678 of lalr1.cc  */
-#line 5529 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5543 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
   case 633:
-
-/* Line 678 of lalr1.cc  */
-#line 5535 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5547 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+            (yyval.expr) = new InsertExpr(
+                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
         }
     break;
 
   case 634:
-
-/* Line 678 of lalr1.cc  */
-#line 5539 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5553 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+                LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
             );
         }
     break;
 
   case 635:
-
-/* Line 678 of lalr1.cc  */
-#line 5545 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5559 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
   case 636:
-
-/* Line 678 of lalr1.cc  */
-#line 5549 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5563 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
             );
         }
     break;
 
   case 637:
-
-/* Line 678 of lalr1.cc  */
-#line 5555 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5569 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+        }
+    break;
+
+  case 638:
+/* Line 661 of lalr1.cc  */
+#line 5573 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
+        }
+    break;
+
+  case 639:
+/* Line 661 of lalr1.cc  */
+#line 5579 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InsertExpr(
                   LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
@@ -9056,10 +7988,9 @@
         }
     break;
 
-  case 638:
-
-/* Line 678 of lalr1.cc  */
-#line 5561 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 640:
+/* Line 661 of lalr1.cc  */
+#line 5585 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InsertExpr(
                 LOC ((yyloc)),
@@ -9068,39 +7999,35 @@
         }
     break;
 
-  case 639:
-
-/* Line 678 of lalr1.cc  */
-#line 5568 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
-            );
-        }
-    break;
-
-  case 640:
-
-/* Line 678 of lalr1.cc  */
-#line 5578 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
-        }
-    break;
-
   case 641:
-
-/* Line 678 of lalr1.cc  */
-#line 5583 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5592 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
         }
     break;
 
   case 642:
-
-/* Line 678 of lalr1.cc  */
-#line 5591 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5602 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 643:
+/* Line 661 of lalr1.cc  */
+#line 5607 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 644:
+/* Line 661 of lalr1.cc  */
+#line 5615 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ReplaceExpr(
                 LOC((yyloc)), store::UpdateConsts::NODE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
@@ -9108,10 +8035,9 @@
         }
     break;
 
-  case 643:
-
-/* Line 678 of lalr1.cc  */
-#line 5597 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 645:
+/* Line 661 of lalr1.cc  */
+#line 5621 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ReplaceExpr(
                 LOC((yyloc)), store::UpdateConsts::VALUE_OF_NODE, (yysemantic_stack_[(7) - (5)].expr), (yysemantic_stack_[(7) - (7)].expr)
@@ -9119,29 +8045,26 @@
         }
     break;
 
-  case 644:
-
-/* Line 678 of lalr1.cc  */
-#line 5607 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 646:
+/* Line 661 of lalr1.cc  */
+#line 5631 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new RenameExpr( LOC ((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 645:
-
-/* Line 678 of lalr1.cc  */
-#line 5629 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 647:
+/* Line 661 of lalr1.cc  */
+#line 5653 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CopyVarList *cvl = dynamic_cast<CopyVarList*>((yysemantic_stack_[(7) - (3)].expr));
       (yyval.expr) = new TransformExpr( LOC((yyloc)), cvl, (yysemantic_stack_[(7) - (5)].expr), (yysemantic_stack_[(7) - (7)].expr) );
     }
     break;
 
-  case 646:
-
-/* Line 678 of lalr1.cc  */
-#line 5638 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 648:
+/* Line 661 of lalr1.cc  */
+#line 5662 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CopyVarList* lList = new CopyVarList(LOC((yyloc)));
       lList->push_back (dynamic_cast<VarBinding*> ((yysemantic_stack_[(1) - (1)].expr)));
@@ -9149,10 +8072,9 @@
     }
     break;
 
-  case 647:
-
-/* Line 678 of lalr1.cc  */
-#line 5644 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 649:
+/* Line 661 of lalr1.cc  */
+#line 5668 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
       CopyVarList* lList = dynamic_cast<CopyVarList*>((yysemantic_stack_[(4) - (1)].expr));
       VarBinding* lBinding = dynamic_cast<VarBinding*>((yysemantic_stack_[(4) - (4)].expr));
@@ -9161,28 +8083,25 @@
     }
     break;
 
-  case 648:
-
-/* Line 678 of lalr1.cc  */
-#line 5657 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 650:
+/* Line 661 of lalr1.cc  */
+#line 5681 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = new VarBinding(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
-  case 649:
-
-/* Line 678 of lalr1.cc  */
-#line 5671 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 651:
+/* Line 661 of lalr1.cc  */
+#line 5695 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new TryExpr( LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 650:
-
-/* Line 678 of lalr1.cc  */
-#line 5678 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 652:
+/* Line 661 of lalr1.cc  */
+#line 5702 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             CatchListExpr *cle = new CatchListExpr( LOC((yyloc)) );
             cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -9190,10 +8109,9 @@
         }
     break;
 
-  case 651:
-
-/* Line 678 of lalr1.cc  */
-#line 5684 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 653:
+/* Line 661 of lalr1.cc  */
+#line 5708 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
             if ( cle )
@@ -9202,29 +8120,26 @@
         }
     break;
 
-  case 652:
-
-/* Line 678 of lalr1.cc  */
-#line 5694 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-       (yyval.expr) = new CatchExpr(LOC((yyloc)), *(yysemantic_stack_[(3) - (2)].name_test_list), (yysemantic_stack_[(3) - (3)].expr));
-       delete (yysemantic_stack_[(3) - (2)].name_test_list);
-    }
-    break;
-
-  case 653:
-
-/* Line 678 of lalr1.cc  */
-#line 5703 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
-    }
-    break;
-
   case 654:
-
-/* Line 678 of lalr1.cc  */
-#line 5711 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5718 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+       (yyval.expr) = new CatchExpr(LOC((yyloc)), *(yysemantic_stack_[(3) - (2)].name_test_list), (yysemantic_stack_[(3) - (3)].expr));
+       delete (yysemantic_stack_[(3) - (2)].name_test_list);
+    }
+    break;
+
+  case 655:
+/* Line 661 of lalr1.cc  */
+#line 5727 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
+    }
+    break;
+
+  case 656:
+/* Line 661 of lalr1.cc  */
+#line 5735 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             CatchExpr::NameTestList *ntl = new CatchExpr::NameTestList;
             ntl->push_back( static_cast<NameTest*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -9232,10 +8147,9 @@
         }
     break;
 
-  case 655:
-
-/* Line 678 of lalr1.cc  */
-#line 5717 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 657:
+/* Line 661 of lalr1.cc  */
+#line 5741 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             CatchExpr::NameTestList *ntl =
                 static_cast<CatchExpr::NameTestList*>((yysemantic_stack_[(3) - (1)].name_test_list));
@@ -9244,121 +8158,108 @@
         }
     break;
 
-  case 656:
-
-/* Line 678 of lalr1.cc  */
-#line 5735 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 658:
+/* Line 661 of lalr1.cc  */
+#line 5759 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTSelection( LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), (yysemantic_stack_[(2) - (2)].pos_filter_list) );
             delete (yysemantic_stack_[(2) - (2)].pos_filter_list);
         }
     break;
 
-  case 657:
-
-/* Line 678 of lalr1.cc  */
-#line 5743 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 659:
+/* Line 661 of lalr1.cc  */
+#line 5767 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.pos_filter_list) = NULL;
         }
     break;
 
-  case 658:
-
-/* Line 678 of lalr1.cc  */
-#line 5747 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 660:
+/* Line 661 of lalr1.cc  */
+#line 5771 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.pos_filter_list) = (yysemantic_stack_[(1) - (1)].pos_filter_list);
         }
     break;
 
-  case 659:
-
-/* Line 678 of lalr1.cc  */
-#line 5754 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 661:
+/* Line 661 of lalr1.cc  */
+#line 5778 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.pos_filter_list) = new FTSelection::pos_filter_list_t;
             (yyval.pos_filter_list)->push_back( dynamic_cast<FTPosFilter*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 660:
-
-/* Line 678 of lalr1.cc  */
-#line 5759 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 662:
+/* Line 661 of lalr1.cc  */
+#line 5783 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yysemantic_stack_[(2) - (1)].pos_filter_list)->push_back( dynamic_cast<FTPosFilter*>((yysemantic_stack_[(2) - (2)].node)) );
             (yyval.pos_filter_list) = (yysemantic_stack_[(2) - (1)].pos_filter_list);
         }
     break;
 
-  case 661:
-
-/* Line 678 of lalr1.cc  */
-#line 5767 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 662:
-
-/* Line 678 of lalr1.cc  */
-#line 5771 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = new FTOr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
-        }
-    break;
-
   case 663:
-
-/* Line 678 of lalr1.cc  */
-#line 5778 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5791 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 664:
-
-/* Line 678 of lalr1.cc  */
-#line 5782 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5795 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new FTAnd( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
+            (yyval.node) = new FTOr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
   case 665:
-
-/* Line 678 of lalr1.cc  */
-#line 5789 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5802 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 666:
-
-/* Line 678 of lalr1.cc  */
-#line 5793 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5806 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new FTMildNot( LOC((yyloc)), (yysemantic_stack_[(4) - (1)].node), (yysemantic_stack_[(4) - (4)].node) );
+            (yyval.node) = new FTAnd( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
   case 667:
-
-/* Line 678 of lalr1.cc  */
-#line 5800 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5813 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 668:
-
-/* Line 678 of lalr1.cc  */
-#line 5804 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5817 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = new FTMildNot( LOC((yyloc)), (yysemantic_stack_[(4) - (1)].node), (yysemantic_stack_[(4) - (4)].node) );
+        }
+    break;
+
+  case 669:
+/* Line 661 of lalr1.cc  */
+#line 5824 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 670:
+/* Line 661 of lalr1.cc  */
+#line 5828 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnaryNot(
                 LOC((yyloc)), dynamic_cast<FTPrimaryWithOptions*>((yysemantic_stack_[(2) - (2)].node))
@@ -9366,10 +8267,9 @@
         }
     break;
 
-  case 669:
-
-/* Line 678 of lalr1.cc  */
-#line 5813 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 671:
+/* Line 661 of lalr1.cc  */
+#line 5837 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTPrimaryWithOptions(
                 LOC((yyloc)),
@@ -9380,55 +8280,49 @@
         }
     break;
 
-  case 670:
-
-/* Line 678 of lalr1.cc  */
-#line 5825 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 671:
-
-/* Line 678 of lalr1.cc  */
-#line 5829 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 672:
-
-/* Line 678 of lalr1.cc  */
-#line 5836 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5849 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = NULL;
         }
     break;
 
   case 673:
-
-/* Line 678 of lalr1.cc  */
-#line 5840 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5853 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 674:
-
-/* Line 678 of lalr1.cc  */
-#line 5848 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5860 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 675:
+/* Line 661 of lalr1.cc  */
+#line 5864 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 676:
+/* Line 661 of lalr1.cc  */
+#line 5872 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWeight( LOC((yyloc)), dynamic_cast<exprnode*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 675:
-
-/* Line 678 of lalr1.cc  */
-#line 5856 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 677:
+/* Line 661 of lalr1.cc  */
+#line 5880 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWordsTimes(
                 LOC((yyloc)),
@@ -9438,46 +8332,41 @@
         }
     break;
 
-  case 676:
-
-/* Line 678 of lalr1.cc  */
-#line 5864 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 678:
+/* Line 661 of lalr1.cc  */
+#line 5888 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
-  case 677:
-
-/* Line 678 of lalr1.cc  */
-#line 5868 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 678:
-
-/* Line 678 of lalr1.cc  */
-#line 5875 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 679:
-
-/* Line 678 of lalr1.cc  */
-#line 5879 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5892 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 680:
-
-/* Line 678 of lalr1.cc  */
-#line 5887 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5899 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 681:
+/* Line 661 of lalr1.cc  */
+#line 5903 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 682:
+/* Line 661 of lalr1.cc  */
+#line 5911 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTExtensionSelection(
                 LOC((yyloc)),
@@ -9487,28 +8376,25 @@
         }
     break;
 
-  case 681:
-
-/* Line 678 of lalr1.cc  */
-#line 5898 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 682:
-
-/* Line 678 of lalr1.cc  */
-#line 5902 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 683:
-
-/* Line 678 of lalr1.cc  */
-#line 5910 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5922 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 684:
+/* Line 661 of lalr1.cc  */
+#line 5926 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 685:
+/* Line 661 of lalr1.cc  */
+#line 5934 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWords(
                 LOC((yyloc)),
@@ -9518,10 +8404,9 @@
         }
     break;
 
-  case 684:
-
-/* Line 678 of lalr1.cc  */
-#line 5922 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 686:
+/* Line 661 of lalr1.cc  */
+#line 5946 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), static_cast<StringLiteral*>((yysemantic_stack_[(1) - (1)].expr)), NULL
@@ -9529,10 +8414,9 @@
         }
     break;
 
-  case 685:
-
-/* Line 678 of lalr1.cc  */
-#line 5928 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 687:
+/* Line 661 of lalr1.cc  */
+#line 5952 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), NULL, dynamic_cast<exprnode*>((yysemantic_stack_[(3) - (2)].expr))
@@ -9540,145 +8424,129 @@
         }
     break;
 
-  case 686:
-
-/* Line 678 of lalr1.cc  */
-#line 5937 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 688:
+/* Line 661 of lalr1.cc  */
+#line 5961 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::any );
         }
     break;
 
-  case 687:
-
-/* Line 678 of lalr1.cc  */
-#line 5941 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 688:
-
-/* Line 678 of lalr1.cc  */
-#line 5949 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
-        }
-    break;
-
   case 689:
-
-/* Line 678 of lalr1.cc  */
-#line 5953 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5965 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 690:
-
-/* Line 678 of lalr1.cc  */
-#line 5957 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5973 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
     break;
 
   case 691:
-
-/* Line 678 of lalr1.cc  */
-#line 5964 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5977 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::any;
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
     break;
 
   case 692:
-
-/* Line 678 of lalr1.cc  */
-#line 5968 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5981 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
         }
     break;
 
   case 693:
-
-/* Line 678 of lalr1.cc  */
-#line 5975 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5988 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::all;
+            (yyval.ft_anyall_value) = ft_anyall_mode::any;
         }
     break;
 
   case 694:
-
-/* Line 678 of lalr1.cc  */
-#line 5979 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5992 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
+            (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
         }
     break;
 
   case 695:
-
-/* Line 678 of lalr1.cc  */
-#line 5987 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 5999 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.ft_anyall_value) = ft_anyall_mode::all;
         }
     break;
 
   case 696:
-
-/* Line 678 of lalr1.cc  */
-#line 5991 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6003 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
         }
     break;
 
   case 697:
-
-/* Line 678 of lalr1.cc  */
-#line 5995 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6011 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 698:
-
-/* Line 678 of lalr1.cc  */
-#line 5999 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6015 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 699:
-
-/* Line 678 of lalr1.cc  */
-#line 6003 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6019 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 700:
-
-/* Line 678 of lalr1.cc  */
-#line 6011 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6023 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 701:
+/* Line 661 of lalr1.cc  */
+#line 6027 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 702:
+/* Line 661 of lalr1.cc  */
+#line 6035 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTOrder( LOC((yyloc)) );
         }
     break;
 
-  case 701:
-
-/* Line 678 of lalr1.cc  */
-#line 6019 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 703:
+/* Line 661 of lalr1.cc  */
+#line 6043 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWindow(
                 LOC((yyloc)),
@@ -9688,10 +8556,9 @@
         }
     break;
 
-  case 702:
-
-/* Line 678 of lalr1.cc  */
-#line 6031 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 704:
+/* Line 661 of lalr1.cc  */
+#line 6055 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTDistance(
                 LOC((yyloc)),
@@ -9701,37 +8568,33 @@
         }
     break;
 
-  case 703:
-
-/* Line 678 of lalr1.cc  */
-#line 6043 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 705:
+/* Line 661 of lalr1.cc  */
+#line 6067 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::words );
         }
     break;
 
-  case 704:
-
-/* Line 678 of lalr1.cc  */
-#line 6047 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 706:
+/* Line 661 of lalr1.cc  */
+#line 6071 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::sentences );
         }
     break;
 
-  case 705:
-
-/* Line 678 of lalr1.cc  */
-#line 6051 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 707:
+/* Line 661 of lalr1.cc  */
+#line 6075 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::paragraphs );
         }
     break;
 
-  case 706:
-
-/* Line 678 of lalr1.cc  */
-#line 6059 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 708:
+/* Line 661 of lalr1.cc  */
+#line 6083 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             FTMatchOptions *mo = new FTMatchOptions( LOC((yyloc)) );
             mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -9739,10 +8602,9 @@
         }
     break;
 
-  case 707:
-
-/* Line 678 of lalr1.cc  */
-#line 6065 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 709:
+/* Line 661 of lalr1.cc  */
+#line 6089 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             FTMatchOptions *mo = dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (1)].node));
             mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -9750,118 +8612,105 @@
         }
     break;
 
-  case 708:
-
-/* Line 678 of lalr1.cc  */
-#line 6075 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 709:
-
-/* Line 678 of lalr1.cc  */
-#line 6079 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 710:
-
-/* Line 678 of lalr1.cc  */
-#line 6083 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6099 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 711:
-
-/* Line 678 of lalr1.cc  */
-#line 6087 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6103 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 712:
-
-/* Line 678 of lalr1.cc  */
-#line 6091 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6107 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 713:
-
-/* Line 678 of lalr1.cc  */
-#line 6095 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6111 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 714:
-
-/* Line 678 of lalr1.cc  */
-#line 6099 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6115 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 715:
-
-/* Line 678 of lalr1.cc  */
-#line 6103 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6119 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 716:
-
-/* Line 678 of lalr1.cc  */
-#line 6111 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6123 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 717:
+/* Line 661 of lalr1.cc  */
+#line 6127 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 718:
+/* Line 661 of lalr1.cc  */
+#line 6135 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::sensitive );
         }
     break;
 
-  case 717:
-
-/* Line 678 of lalr1.cc  */
-#line 6115 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 719:
+/* Line 661 of lalr1.cc  */
+#line 6139 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::insensitive );
         }
     break;
 
-  case 718:
-
-/* Line 678 of lalr1.cc  */
-#line 6119 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 720:
+/* Line 661 of lalr1.cc  */
+#line 6143 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::lower );
         }
     break;
 
-  case 719:
-
-/* Line 678 of lalr1.cc  */
-#line 6123 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 721:
+/* Line 661 of lalr1.cc  */
+#line 6147 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::upper );
         }
     break;
 
-  case 720:
-
-/* Line 678 of lalr1.cc  */
-#line 6131 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 722:
+/* Line 661 of lalr1.cc  */
+#line 6155 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::sensitive
@@ -9869,10 +8718,9 @@
         }
     break;
 
-  case 721:
-
-/* Line 678 of lalr1.cc  */
-#line 6137 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 723:
+/* Line 661 of lalr1.cc  */
+#line 6161 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::insensitive
@@ -9880,10 +8728,9 @@
         }
     break;
 
-  case 722:
-
-/* Line 678 of lalr1.cc  */
-#line 6147 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 724:
+/* Line 661 of lalr1.cc  */
+#line 6171 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTExtensionOption(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)), SYMTAB((yysemantic_stack_[(3) - (3)].sval))
@@ -9891,28 +8738,25 @@
         }
     break;
 
-  case 723:
-
-/* Line 678 of lalr1.cc  */
-#line 6157 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 725:
+/* Line 661 of lalr1.cc  */
+#line 6181 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::stemming );
         }
     break;
 
-  case 724:
-
-/* Line 678 of lalr1.cc  */
-#line 6161 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 726:
+/* Line 661 of lalr1.cc  */
+#line 6185 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::no_stemming );
         }
     break;
 
-  case 725:
-
-/* Line 678 of lalr1.cc  */
-#line 6169 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 727:
+/* Line 661 of lalr1.cc  */
+#line 6193 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = NULL;
             if ( (yysemantic_stack_[(2) - (2)].node) ) {
@@ -9924,10 +8768,9 @@
         }
     break;
 
-  case 726:
-
-/* Line 678 of lalr1.cc  */
-#line 6179 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 728:
+/* Line 661 of lalr1.cc  */
+#line 6203 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = (yysemantic_stack_[(5) - (4)].thesaurus_id_list);
             if ( (yysemantic_stack_[(5) - (3)].node) ) {
@@ -9940,75 +8783,67 @@
         }
     break;
 
-  case 727:
-
-/* Line 678 of lalr1.cc  */
-#line 6190 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 729:
+/* Line 661 of lalr1.cc  */
+#line 6214 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTThesaurusOption( LOC((yyloc)), NULL, false, true );
         }
     break;
 
-  case 728:
-
-/* Line 678 of lalr1.cc  */
-#line 6197 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 729:
-
-/* Line 678 of lalr1.cc  */
-#line 6201 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 730:
-
-/* Line 678 of lalr1.cc  */
-#line 6208 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6221 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 731:
+/* Line 661 of lalr1.cc  */
+#line 6225 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 732:
+/* Line 661 of lalr1.cc  */
+#line 6232 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.thesaurus_id_list) = NULL;
         }
     break;
 
-  case 731:
-
-/* Line 678 of lalr1.cc  */
-#line 6212 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 733:
+/* Line 661 of lalr1.cc  */
+#line 6236 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(2) - (2)].thesaurus_id_list);
         }
     break;
 
-  case 732:
-
-/* Line 678 of lalr1.cc  */
-#line 6219 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 734:
+/* Line 661 of lalr1.cc  */
+#line 6243 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.thesaurus_id_list) = new FTThesaurusOption::thesaurus_id_list_t;
             (yyval.thesaurus_id_list)->push_back( dynamic_cast<FTThesaurusID*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 733:
-
-/* Line 678 of lalr1.cc  */
-#line 6224 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 735:
+/* Line 661 of lalr1.cc  */
+#line 6248 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yysemantic_stack_[(3) - (1)].thesaurus_id_list)->push_back( dynamic_cast<FTThesaurusID*>((yysemantic_stack_[(3) - (3)].node)) );
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(3) - (1)].thesaurus_id_list);
         }
     break;
 
-  case 734:
-
-/* Line 678 of lalr1.cc  */
-#line 6233 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 736:
+/* Line 661 of lalr1.cc  */
+#line 6257 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTThesaurusID(
                 LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (2)].sval)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), dynamic_cast<FTRange*>((yysemantic_stack_[(4) - (4)].node))
@@ -10016,46 +8851,41 @@
         }
     break;
 
-  case 735:
-
-/* Line 678 of lalr1.cc  */
-#line 6242 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 737:
+/* Line 661 of lalr1.cc  */
+#line 6266 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.sval) = 0;
         }
     break;
 
-  case 736:
-
-/* Line 678 of lalr1.cc  */
-#line 6246 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 738:
+/* Line 661 of lalr1.cc  */
+#line 6270 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.sval) = (yysemantic_stack_[(2) - (2)].sval);
         }
     break;
 
-  case 737:
-
-/* Line 678 of lalr1.cc  */
-#line 6253 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 738:
-
-/* Line 678 of lalr1.cc  */
-#line 6257 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
-        }
-    break;
-
   case 739:
-
-/* Line 678 of lalr1.cc  */
-#line 6265 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6277 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 740:
+/* Line 661 of lalr1.cc  */
+#line 6281 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+        }
+    break;
+
+  case 741:
+/* Line 661 of lalr1.cc  */
+#line 6289 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)),
@@ -10066,10 +8896,9 @@
         }
     break;
 
-  case 740:
-
-/* Line 678 of lalr1.cc  */
-#line 6274 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 742:
+/* Line 661 of lalr1.cc  */
+#line 6298 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, (yysemantic_stack_[(4) - (4)].incl_excl_list), ft_stop_words_mode::with_default
@@ -10078,10 +8907,9 @@
         }
     break;
 
-  case 741:
-
-/* Line 678 of lalr1.cc  */
-#line 6281 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 743:
+/* Line 661 of lalr1.cc  */
+#line 6305 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, NULL, ft_stop_words_mode::without
@@ -10089,28 +8917,25 @@
         }
     break;
 
-  case 742:
-
-/* Line 678 of lalr1.cc  */
-#line 6291 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 744:
+/* Line 661 of lalr1.cc  */
+#line 6315 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), NULL );
         }
     break;
 
-  case 743:
-
-/* Line 678 of lalr1.cc  */
-#line 6295 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 745:
+/* Line 661 of lalr1.cc  */
+#line 6319 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), "", (yysemantic_stack_[(3) - (2)].strlist) );
         }
     break;
 
-  case 744:
-
-/* Line 678 of lalr1.cc  */
-#line 6302 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 746:
+/* Line 661 of lalr1.cc  */
+#line 6326 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             string_list_t *sl = new string_list_t;
             sl->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -10118,10 +8943,9 @@
         }
     break;
 
-  case 745:
-
-/* Line 678 of lalr1.cc  */
-#line 6308 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 747:
+/* Line 661 of lalr1.cc  */
+#line 6332 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             if ( (yysemantic_stack_[(3) - (1)].strlist) )
                 (yysemantic_stack_[(3) - (1)].strlist)->push_back( SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
@@ -10129,38 +8953,34 @@
         }
     break;
 
-  case 746:
-
-/* Line 678 of lalr1.cc  */
-#line 6317 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 748:
+/* Line 661 of lalr1.cc  */
+#line 6341 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.incl_excl_list) = NULL;
         }
     break;
 
-  case 747:
-
-/* Line 678 of lalr1.cc  */
-#line 6321 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 749:
+/* Line 661 of lalr1.cc  */
+#line 6345 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.incl_excl_list) = (yysemantic_stack_[(1) - (1)].incl_excl_list);
         }
     break;
 
-  case 748:
-
-/* Line 678 of lalr1.cc  */
-#line 6328 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 750:
+/* Line 661 of lalr1.cc  */
+#line 6352 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.incl_excl_list) = new FTStopWordOption::incl_excl_list_t;
             (yyval.incl_excl_list)->push_back( dynamic_cast<FTStopWordsInclExcl*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 749:
-
-/* Line 678 of lalr1.cc  */
-#line 6333 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 751:
+/* Line 661 of lalr1.cc  */
+#line 6357 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             FTStopWordOption::incl_excl_list_t *iel = (yysemantic_stack_[(2) - (1)].incl_excl_list);
             if ( !iel )
@@ -10170,10 +8990,9 @@
         }
     break;
 
-  case 750:
-
-/* Line 678 of lalr1.cc  */
-#line 6345 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 752:
+/* Line 661 of lalr1.cc  */
+#line 6369 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -10183,10 +9002,9 @@
         }
     break;
 
-  case 751:
-
-/* Line 678 of lalr1.cc  */
-#line 6353 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 753:
+/* Line 661 of lalr1.cc  */
+#line 6377 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -10196,109 +9014,97 @@
         }
     break;
 
-  case 752:
-
-/* Line 678 of lalr1.cc  */
-#line 6365 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 754:
+/* Line 661 of lalr1.cc  */
+#line 6389 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTLanguageOption( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
-  case 753:
-
-/* Line 678 of lalr1.cc  */
-#line 6373 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 755:
+/* Line 661 of lalr1.cc  */
+#line 6397 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::with );
         }
     break;
 
-  case 754:
-
-/* Line 678 of lalr1.cc  */
-#line 6377 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 756:
+/* Line 661 of lalr1.cc  */
+#line 6401 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::without );
         }
     break;
 
-  case 755:
-
-/* Line 678 of lalr1.cc  */
-#line 6385 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 757:
+/* Line 661 of lalr1.cc  */
+#line 6409 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_start );
         }
     break;
 
-  case 756:
-
-/* Line 678 of lalr1.cc  */
-#line 6389 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 758:
+/* Line 661 of lalr1.cc  */
+#line 6413 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_end );
         }
     break;
 
-  case 757:
-
-/* Line 678 of lalr1.cc  */
-#line 6393 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 759:
+/* Line 661 of lalr1.cc  */
+#line 6417 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::entire );
         }
     break;
 
-  case 758:
-
-/* Line 678 of lalr1.cc  */
-#line 6401 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 760:
+/* Line 661 of lalr1.cc  */
+#line 6425 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTTimes( LOC((yyloc)), dynamic_cast<FTRange*>((yysemantic_stack_[(3) - (2)].node)) );
         }
     break;
 
-  case 759:
-
-/* Line 678 of lalr1.cc  */
-#line 6409 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 761:
+/* Line 661 of lalr1.cc  */
+#line 6433 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::exactly, (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
-  case 760:
-
-/* Line 678 of lalr1.cc  */
-#line 6413 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 762:
+/* Line 661 of lalr1.cc  */
+#line 6437 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_least, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 761:
-
-/* Line 678 of lalr1.cc  */
-#line 6417 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 763:
+/* Line 661 of lalr1.cc  */
+#line 6441 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_most, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 762:
-
-/* Line 678 of lalr1.cc  */
-#line 6421 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 764:
+/* Line 661 of lalr1.cc  */
+#line 6445 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::from_to, (yysemantic_stack_[(4) - (2)].expr), (yysemantic_stack_[(4) - (4)].expr) );
         }
     break;
 
-  case 763:
-
-/* Line 678 of lalr1.cc  */
-#line 6429 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 765:
+/* Line 661 of lalr1.cc  */
+#line 6453 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10308,10 +9114,9 @@
         }
     break;
 
-  case 764:
-
-/* Line 678 of lalr1.cc  */
-#line 6437 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 766:
+/* Line 661 of lalr1.cc  */
+#line 6461 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10321,105 +9126,94 @@
         }
     break;
 
-  case 765:
-
-/* Line 678 of lalr1.cc  */
-#line 6449 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 767:
+/* Line 661 of lalr1.cc  */
+#line 6473 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::sentence );
         }
     break;
 
-  case 766:
-
-/* Line 678 of lalr1.cc  */
-#line 6453 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 768:
+/* Line 661 of lalr1.cc  */
+#line 6477 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::paragraph );
         }
     break;
 
-  case 767:
-
-/* Line 678 of lalr1.cc  */
-#line 6461 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 769:
+/* Line 661 of lalr1.cc  */
+#line 6485 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTIgnoreOption( LOC((yyloc)), static_cast<UnionExpr*>((yysemantic_stack_[(3) - (3)].expr)) );
         }
     break;
 
-  case 768:
-
-/* Line 678 of lalr1.cc  */
-#line 6475 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 770:
+/* Line 661 of lalr1.cc  */
+#line 6499 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), NULL );
         }
     break;
 
-  case 769:
-
-/* Line 678 of lalr1.cc  */
-#line 6479 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 771:
+/* Line 661 of lalr1.cc  */
+#line 6503 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 770:
-
-/* Line 678 of lalr1.cc  */
-#line 6486 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 772:
+/* Line 661 of lalr1.cc  */
+#line 6510 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, false);
         }
     break;
 
-  case 771:
-
-/* Line 678 of lalr1.cc  */
-#line 6491 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 773:
+/* Line 661 of lalr1.cc  */
+#line 6515 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), false);
         }
     break;
 
-  case 772:
-
-/* Line 678 of lalr1.cc  */
-#line 6499 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 774:
+/* Line 661 of lalr1.cc  */
+#line 6523 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, true);
         }
     break;
 
-  case 773:
-
-/* Line 678 of lalr1.cc  */
-#line 6504 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 775:
+/* Line 661 of lalr1.cc  */
+#line 6528 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), true);
         }
     break;
 
-  case 774:
-
-/* Line 678 of lalr1.cc  */
-#line 6513 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 776:
+/* Line 661 of lalr1.cc  */
+#line 6537 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONDirectObjectConstructor(LOC((yyloc)),
                                                dynamic_cast<JSONPairList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 775:
-
-/* Line 678 of lalr1.cc  */
-#line 6521 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 777:
+/* Line 661 of lalr1.cc  */
+#line 6545 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           JSONPairList* jpl = new JSONPairList(LOC((yyloc)));
           jpl->push_back(new JSONPairConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)));
@@ -10427,10 +9221,9 @@
         }
     break;
 
-  case 776:
-
-/* Line 678 of lalr1.cc  */
-#line 6527 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 778:
+/* Line 661 of lalr1.cc  */
+#line 6551 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (1)].node));
           assert(jpl);
@@ -10439,10 +9232,9 @@
         }
     break;
 
-  case 777:
-
-/* Line 678 of lalr1.cc  */
-#line 6537 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 779:
+/* Line 661 of lalr1.cc  */
+#line 6561 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONObjectInsertExpr(LOC((yyloc)),
                                         (yysemantic_stack_[(5) - (3)].expr),
@@ -10450,10 +9242,9 @@
         }
     break;
 
-  case 778:
-
-/* Line 678 of lalr1.cc  */
-#line 6543 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 780:
+/* Line 661 of lalr1.cc  */
+#line 6567 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (3)].node));
           (yyval.expr) = new JSONObjectInsertExpr(
@@ -10465,28 +9256,25 @@
         }
     break;
 
-  case 779:
-
-/* Line 678 of lalr1.cc  */
-#line 6553 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 781:
+/* Line 661 of lalr1.cc  */
+#line 6577 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayInsertExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), (yysemantic_stack_[(8) - (5)].expr), (yysemantic_stack_[(8) - (8)].expr));
         }
     break;
 
-  case 780:
-
-/* Line 678 of lalr1.cc  */
-#line 6560 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 782:
+/* Line 661 of lalr1.cc  */
+#line 6584 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayAppendExpr(LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr));
         }
     break;
 
-  case 781:
-
-/* Line 678 of lalr1.cc  */
-#line 6567 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 783:
+/* Line 661 of lalr1.cc  */
+#line 6591 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(3) - (3)].expr));
@@ -10510,10 +9298,9 @@
         }
     break;
 
-  case 782:
-
-/* Line 678 of lalr1.cc  */
-#line 6592 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 784:
+/* Line 661 of lalr1.cc  */
+#line 6616 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(5) - (3)].expr));
@@ -10540,10 +9327,9 @@
         }
     break;
 
-  case 783:
-
-/* Line 678 of lalr1.cc  */
-#line 6620 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+  case 785:
+/* Line 661 of lalr1.cc  */
+#line 6644 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(7) - (5)].expr));
@@ -10570,64 +9356,57 @@
         }
     break;
 
-  case 784:
-
-/* Line 678 of lalr1.cc  */
-#line 6648 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 785:
-
-/* Line 678 of lalr1.cc  */
-#line 6652 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 786:
-
-/* Line 678 of lalr1.cc  */
-#line 6656 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6672 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 787:
-
-/* Line 678 of lalr1.cc  */
-#line 6663 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+/* Line 661 of lalr1.cc  */
+#line 6676 "/home/colea/xquery_bzr/hof/src/compiler/parser/xquery_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 788:
+/* Line 661 of lalr

Follow ups