← Back to team overview

zorba-coders team mailing list archive

[Merge] lp:~zorba-coders/zorba/feature-empty_object into lp:zorba

 

Nicolae Brinza has proposed merging lp:~zorba-coders/zorba/feature-empty_object into lp:zorba.

Commit message:
Empty block {} is a an empty json object

Requested reviews:
  Matthias Brantner (matthias-brantner)

For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/feature-empty_object/+merge/154989

Empty block {} is a an empty json object
-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~zorba-coders/zorba/feature-empty_object/+merge/154989
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'ChangeLog'
--- ChangeLog	2013-03-21 00:54:36 +0000
+++ ChangeLog	2013-03-22 15:49:35 +0000
@@ -18,6 +18,7 @@
     DynamicContext class in C++ API.
   * fn:trace outputs "empty-sequence()" if the input is the empty-sequence.
   * Allow multiple default function namespaces.
+  * $array() => jn:members($array), $object() => jn:keys($object)
   * Added xqxq:variable-value function.
   * Added canonicalize function to modules/xml.
   * Added support for xs:dateTimeStamp type from XMLSchema 1.1, bug #924754.

=== modified file 'bin/zorbacmd.cpp'
--- bin/zorbacmd.cpp	2013-03-20 01:19:04 +0000
+++ bin/zorbacmd.cpp	2013-03-22 15:49:35 +0000
@@ -673,7 +673,10 @@
   std::auto_ptr<std::fstream> planFile;
   std::fstream* planFilep = NULL;
 
-  lHints.jsoniq_mode = (qfilepath.rfind(".jq") == qfilepath.size() - 3);
+  if (qfilepath.rfind(".jq") == qfilepath.size() - 3)
+  {
+    staticContext->setJSONiqVersion(zorba::jsoniq_version_1_0);
+  }
 
   if (serializePlan)
   {

=== modified file 'include/zorba/options.h'
--- include/zorba/options.h	2013-03-16 00:58:28 +0000
+++ include/zorba/options.h	2013-03-22 15:49:35 +0000
@@ -65,12 +65,6 @@
    */
   bool for_serialization_only;
 
-  /**
-   * \brief By default, the flag is set to false. If set to true, the JSONiq
-   * parser will be used.
-   */
-  bool jsoniq_mode;
-
 #ifdef __cplusplus
   /** \brief Default constructor for CompilerHints which assigns default values to all hints (C++ only).
    *

=== modified file 'include/zorba/pregenerated/diagnostic_list.h'
--- include/zorba/pregenerated/diagnostic_list.h	2013-03-21 19:33:22 +0000
+++ include/zorba/pregenerated/diagnostic_list.h	2013-03-22 15:49:35 +0000
@@ -913,6 +913,8 @@
 
 extern ZORBA_DLL_PUBLIC JSONiqErrorCode JNTY0020;
 
+extern ZORBA_DLL_PUBLIC JSONiqErrorCode JNTY0021;
+
 extern ZORBA_DLL_PUBLIC JSONiqErrorCode JNDY0021;
 #endif
 

=== modified file 'include/zorba/static_context.h'
--- include/zorba/static_context.h	2013-02-07 17:24:36 +0000
+++ include/zorba/static_context.h	2013-03-22 15:49:35 +0000
@@ -205,6 +205,15 @@
   virtual bool
   setXQueryVersion( xquery_version_t aMode ) = 0;
 
+  /** \brief Set the JSONiq processing mode
+   *
+   *
+   * @param aMode the JSONiq version
+   * @return true if the version was set, false otherwise.
+   */
+  virtual bool
+  setJSONiqVersion( jsoniq_version_t aMode ) = 0;
+
   /** \brief Get the XQuery processing mode (version 1.0 or 3.0).
    *
    *
@@ -213,6 +222,14 @@
   virtual xquery_version_t
   getXQueryVersion( ) const = 0;
 
+  /** \brief Get the JSONiq processing mode.
+   *
+   *
+   * @return jsoniq_version_t the JSONiq version processing mode.
+   */
+  virtual jsoniq_version_t
+  getJSONiqVersion( ) const = 0;
+
   /** \brief Set the XPath 1.0 compatibility mode.
    *         (see http://www.w3.org/TR/xquery/#static_context)
    *

=== modified file 'include/zorba/static_context_consts.h'
--- include/zorba/static_context_consts.h	2013-02-07 17:24:36 +0000
+++ include/zorba/static_context_consts.h	2013-03-22 15:49:35 +0000
@@ -55,6 +55,9 @@
  */
 typedef enum { xquery_version_1_0 = 100, xquery_version_3_0 = 300 } xquery_version_t;
 
+/** \brief The JSONiq version */
+typedef enum { jsoniq_version_undefined = 0, jsoniq_version_1_0 = 100 } jsoniq_version_t;
+
 /** \brief Revalidation mode as defined in
  *         http://www.w3.org/TR/xquery-update-10/#id-revalidation-declaration
  *  Note: when DTD validation is needed the use of validate_lax_dtd is required.

=== modified file 'modules/org/jsoniq/www/pregenerated/errors.xq'
--- modules/org/jsoniq/www/pregenerated/errors.xq	2013-03-06 00:18:36 +0000
+++ modules/org/jsoniq/www/pregenerated/errors.xq	2013-03-22 15:49:35 +0000
@@ -157,6 +157,11 @@
 declare variable $jerr:JNTY0020 as xs:QName := fn:QName($jerr:NS, "jerr:JNTY0020");
 
 (:~
+ :array or object selector on heterogeneous sequence
+:)
+declare variable $jerr:JNTY0021 as xs:QName := fn:QName($jerr:NS, "jerr:JNTY0021");
+
+(:~
  :parser error raised by jn:parse-json
 :)
 declare variable $jerr:JNDY0021 as xs:QName := fn:QName($jerr:NS, "jerr:JNDY0021");
\ No newline at end of file

=== modified file 'src/api/options.cpp'
--- src/api/options.cpp	2013-03-16 00:58:28 +0000
+++ src/api/options.cpp	2013-03-22 15:49:35 +0000
@@ -23,8 +23,7 @@
   :
   opt_level(ZORBA_OPT_LEVEL_O1),
   lib_module(false),
-  for_serialization_only(false),
-  jsoniq_mode(false)
+  for_serialization_only(false)
 {
 }
 

=== modified file 'src/api/staticcontextimpl.cpp'
--- src/api/staticcontextimpl.cpp	2013-03-18 16:18:32 +0000
+++ src/api/staticcontextimpl.cpp	2013-03-22 15:49:35 +0000
@@ -386,6 +386,7 @@
 bool StaticContextImpl::setXQueryVersion(xquery_version_t version)
 {
   ZORBA_TRY
+    theCtx->set_language_kind(StaticContextConsts::language_kind_xquery);
     if ( version == xquery_version_1_0)
       theCtx->set_xquery_version(StaticContextConsts::xquery_version_1_0);
     else
@@ -399,6 +400,27 @@
 /*******************************************************************************
 
 ********************************************************************************/
+bool StaticContextImpl::setJSONiqVersion(jsoniq_version_t version)
+{
+  ZORBA_TRY
+    if ( version == jsoniq_version_1_0)
+    {
+      theCtx->set_language_kind(StaticContextConsts::language_kind_jsoniq);
+      theCtx->set_jsoniq_version(StaticContextConsts::jsoniq_version_1_0);
+    }
+    else
+    {
+      theCtx->set_language_kind(StaticContextConsts::language_kind_unknown);
+    }
+    return true;
+  ZORBA_CATCH
+  return false;
+}
+
+
+/*******************************************************************************
+
+********************************************************************************/
 xquery_version_t StaticContextImpl::getXQueryVersion() const
 {
   try {
@@ -416,6 +438,25 @@
 /*******************************************************************************
 
 ********************************************************************************/
+jsoniq_version_t StaticContextImpl::getJSONiqVersion() const
+{
+  try {
+    if (theCtx->language_kind() != StaticContextConsts::language_kind_jsoniq)
+      return jsoniq_version_undefined;
+    return theCtx->jsoniq_version()==StaticContextConsts::jsoniq_version_1_0?
+      jsoniq_version_1_0:jsoniq_version_undefined;
+  } catch (ZorbaException const& e) {
+    ZorbaImpl::notifyError(theDiagnosticHandler, e);
+  } catch (std::exception const& e) {
+    ZorbaImpl::notifyError(theDiagnosticHandler, e.what());
+  }
+  return jsoniq_version_undefined;
+}
+
+
+/*******************************************************************************
+
+********************************************************************************/
 bool StaticContextImpl::setXPath1_0CompatibMode( xpath1_0compatib_mode_t mode )
 {
   ZORBA_TRY

=== modified file 'src/api/staticcontextimpl.h'
--- src/api/staticcontextimpl.h	2013-02-07 17:24:36 +0000
+++ src/api/staticcontextimpl.h	2013-03-22 15:49:35 +0000
@@ -116,9 +116,15 @@
   virtual bool
   setXQueryVersion(xquery_version_t mode);
 
+  virtual bool
+  setJSONiqVersion(jsoniq_version_t aMode);
+
   virtual xquery_version_t
   getXQueryVersion() const;
 
+  virtual jsoniq_version_t
+  getJSONiqVersion( ) const;
+
   virtual bool
   setXPath1_0CompatibMode( xpath1_0compatib_mode_t mode );
 

=== modified file 'src/api/xqueryimpl.cpp'
--- src/api/xqueryimpl.cpp	2013-03-16 00:58:28 +0000
+++ src/api/xqueryimpl.cpp	2013-03-22 15:49:35 +0000
@@ -587,7 +587,6 @@
   // If lib_module is set to true the query will be considered a library module
   theCompilerCB->theConfig.lib_module = aHints.lib_module;
   theCompilerCB->theConfig.for_serialization_only = aHints.for_serialization_only;
-  theCompilerCB->theConfig.jsoniq_mode = aHints.jsoniq_mode;
 
   CompilerCB::config::opt_level_t optLevel;
   if (aHints.opt_level == ZORBA_OPT_LEVEL_O0)

=== modified file 'src/compiler/api/compiler_api.cpp'
--- src/compiler/api/compiler_api.cpp	2013-03-20 23:33:11 +0000
+++ src/compiler/api/compiler_api.cpp	2013-03-22 15:49:35 +0000
@@ -126,6 +126,35 @@
 /*******************************************************************************
 
 ********************************************************************************/
+bool XQueryCompiler::getLanguageMode(std::stringstream& s) const
+{
+  char lPeek[6];
+  s.get(lPeek, 7, ' ');
+  s.clear();
+  s.seekg(0, s.beg);
+
+  bool lXQueryMode;
+
+  if (strncmp(lPeek, "jsoniq", 6) == 0)
+  {
+    lXQueryMode = false;
+  }
+  else if (strncmp(lPeek, "xquery", 6) == 0)
+  {
+    lXQueryMode = true;
+  }
+  else
+  {
+    StaticContextConsts::language_kind_t lKind
+      = theCompilerCB->theRootSctx->language_kind();
+    lXQueryMode = (lKind != StaticContextConsts::language_kind_jsoniq);
+  }
+  return lXQueryMode;
+}
+
+/*******************************************************************************
+
+********************************************************************************/
 parsenode_t XQueryCompiler::parse(std::istream& aXQuery, const zstring& aFileName)
 {
   // TODO: move these out
@@ -134,7 +163,7 @@
     theCompilerCB->theConfig.parse_cb = print_ast_tree;
   }
 
-  std::istream* xquery_stream = &aXQuery;
+  std::stringstream xquery_stream;
 
 #ifdef ZORBA_XQUERYX
   char* converted_xquery_str = NULL;
@@ -170,34 +199,38 @@
 #ifndef NDEBUG
     printf ("\n\n%s", converted_xquery_str);  // debug
 #endif
-    xquery_stream = new std::istringstream(converted_xquery_str);
+    xquery_stream << converted_xquery_str;
   }
   else
   {
-    xquery_stream = new std::istringstream(xquery_str);
+    xquery_stream << xquery_str;
   }
-#endif // ZORBA_XQUERYX
+#else // ZORBA_XQUERYX
+
+  xquery_stream << aXQuery.rdbuf();
+#endif
 
   theCompilerCB->setPhase(CompilerCB::PARSING);
 
   parsenode_t node;
   theCompilerCB->setPhase(CompilerCB::NONE);
+  
+  bool lXQueryMode = getLanguageMode(xquery_stream);
 
-  if (theCompilerCB->theConfig.jsoniq_mode)
+  if (!lXQueryMode)
   {
     jsoniq_driver lDriver(&*theCompilerCB);
-    lDriver.parse_stream(*xquery_stream, aFileName);
+    lDriver.parse_stream(xquery_stream, aFileName);
     node =  lDriver.get_expr();
   }
   else
   {
     xquery_driver lDriver(&*theCompilerCB);
-    lDriver.parse_stream(*xquery_stream, aFileName);
+    lDriver.parse_stream(xquery_stream, aFileName);
     node =  lDriver.get_expr();
   }
 
 #ifdef ZORBA_XQUERYX
-  delete xquery_stream;
   if (is_xqueryx)
   {
     xqxconvertor->freeResult(converted_xquery_str);

=== modified file 'src/compiler/api/compiler_api.h'
--- src/compiler/api/compiler_api.h	2013-02-07 17:24:36 +0000
+++ src/compiler/api/compiler_api.h	2013-03-22 15:49:35 +0000
@@ -68,6 +68,8 @@
   expr* optimize(expr* expr);
 
 private:
+  bool getLanguageMode(std::stringstream& s) const;
+
   parsenode_t createMainModule(
       parsenode_t libModule,
       std::istream& xquery,

=== modified file 'src/compiler/api/compilercb.cpp'
--- src/compiler/api/compilercb.cpp	2013-03-20 23:33:11 +0000
+++ src/compiler/api/compilercb.cpp	2013-03-22 15:49:35 +0000
@@ -61,8 +61,7 @@
   opt_level(O1),
   lib_module(false),
   for_serialization_only(false),
-  parse_cb(NULL),
-  jsoniq_mode(false)
+  parse_cb(NULL)
 {
   translate_cb = optimize_cb = NULL;
 
@@ -101,7 +100,6 @@
   ar & lib_module;
   ar & for_serialization_only;
   ar & print_item_flow;
-  ar & jsoniq_mode;
 }
 
 

=== modified file 'src/compiler/api/compilercb.h'
--- src/compiler/api/compilercb.h	2013-03-18 23:01:20 +0000
+++ src/compiler/api/compilercb.h	2013-03-22 15:49:35 +0000
@@ -132,9 +132,6 @@
   Pointer to the function to call to print the expr tree that results from
   translating the query AST.
 
-  theConfig.jsoniq_mode :
-  -----------------------
-  If true, the JSONiq parser will be used instead of the XQuery parser.
 ********************************************************************************/
 class CompilerCB : public zorba::serialization::SerializeBaseClass
 {
@@ -160,7 +157,6 @@
     expr_callback  translate_cb;
     expr_callback  optimize_cb;
     bool           print_item_flow;  // TODO: move to RuntimeCB
-    bool           jsoniq_mode;
 
    public:
     SERIALIZABLE_CLASS(config);

=== modified file 'src/compiler/parser/FlexLexer.h'
--- src/compiler/parser/FlexLexer.h	2013-03-20 23:33:11 +0000
+++ src/compiler/parser/FlexLexer.h	2013-03-22 15:49:35 +0000
@@ -62,8 +62,8 @@
 public:
 	virtual ~FlexLexer()	{ }
 
-	const char* YYText() const	{ return yytext; }
-	int YYLeng()	const	{ return yyleng; }
+	const char* YYText()	{ return yytext; }
+	int YYLeng()		{ return yyleng; }
 
 	virtual void
 		yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
@@ -99,12 +99,12 @@
 };
 
 }
-#endif // FLEXLEXER_H
+#endif
 
 #if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)
 // Either this is the first time through (yyFlexLexerOnce not defined),
 // or this is a repeated include to define a different flavor of
-// yyFlexLexer, as discussed in the flex manual.
+// yyFlexLexer, as discussed in the flex man page.
 #define yyFlexLexerOnce
 
 extern "C++" {
@@ -122,12 +122,11 @@
 	void yy_delete_buffer( struct yy_buffer_state* b );
 	void yyrestart( FLEX_STD istream* s );
 
-	void yypush_buffer_state( struct yy_buffer_state* new_buffer );
-	void yypop_buffer_state();
+    void yypush_buffer_state( struct yy_buffer_state* new_buffer );
+    void yypop_buffer_state(void);
 
 	virtual int yylex();
-	virtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 );
-	virtual int yywrap();
+	virtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out );
 
 protected:
 	virtual int LexerInput( char* buf, int max_size );
@@ -173,10 +172,10 @@
 	int yy_did_buffer_switch_on_eof;
 
 
-	size_t yy_buffer_stack_top; /**< index of top of stack. */
-	size_t yy_buffer_stack_max; /**< capacity of stack. */
-	struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */
-	void yyensure_buffer_stack(void);
+    size_t yy_buffer_stack_top; /**< index of top of stack. */
+    size_t yy_buffer_stack_max; /**< capacity of stack. */
+    struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */
+    void yyensure_buffer_stack(void);
 
 	// The following are not always needed, but may be depending
 	// on use of certain flex features (like REJECT or yymore()).
@@ -202,5 +201,4 @@
 
 }
 
-#endif // yyFlexLexer || ! yyFlexLexerOnce
-
+#endif

=== modified file 'src/compiler/parser/jsoniq_parser.cpp'
--- src/compiler/parser/jsoniq_parser.cpp	2013-03-20 23:33:11 +0000
+++ src/compiler/parser/jsoniq_parser.cpp	2013-03-22 15:49:35 +0000
@@ -36,7 +36,7 @@
 /* First part of user declarations.  */
 
 /* Line 293 of lalr1.cc  */
-#line 88 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 88 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 
 
 #include "common/common.h"
@@ -65,7 +65,7 @@
 
 
 /* Line 293 of lalr1.cc  */
-#line 69 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
+#line 69 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 
 
 #include "jsoniq_parser.hpp"
@@ -73,7 +73,7 @@
 /* User implementation prologue.  */
 
 /* Line 299 of lalr1.cc  */
-#line 908 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 915 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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...
@@ -85,7 +85,7 @@
 }
 
 /* Line 299 of lalr1.cc  */
-#line 1039 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1053 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 
 #include "compiler/parser/jsoniq_scanner.h"
 
@@ -95,7 +95,7 @@
 
 
 /* Line 299 of lalr1.cc  */
-#line 99 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
+#line 99 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 
 #ifndef YY_
 # if defined YYENABLE_NLS && YYENABLE_NLS
@@ -181,7 +181,7 @@
 namespace zorba {
 
 /* Line 382 of lalr1.cc  */
-#line 185 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
+#line 185 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 
   /* Return YYSTR after stripping away unnecessary quotes and
      backslashes, so that it's suitable for yyerror.  The heuristic is
@@ -282,2495 +282,2495 @@
         case 112: /* "\"'DECIMAL'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 906 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->decval); };
 
 /* Line 480 of lalr1.cc  */
-#line 290 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
+#line 290 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 126: /* "\"'DOUBLE'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 905 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 912 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->dval); };
 
 /* Line 480 of lalr1.cc  */
-#line 299 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
+#line 299 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 151: /* "\"'INTEGER'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 904 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 911 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->ival); };
 
 /* Line 480 of lalr1.cc  */
-#line 308 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 340: /* "VersionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 317 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 341: /* "MainModule" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 326 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 342: /* "LibraryModule" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 335 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 343: /* "ModuleDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 344 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 344: /* "SIND_DeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 353 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 345: /* "SIND_Decl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 362 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 346: /* "Setter" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 371 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 347: /* "BoundarySpaceDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 380 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 348: /* "DefaultCollationDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 389 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 349: /* "BaseURIDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 398 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 350: /* "ConstructionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 407 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 351: /* "OrderingModeDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 416 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 352: /* "EmptyOrderDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 425 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 353: /* "CopyNamespacesDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 434 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 354: /* "Import" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 443 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 355: /* "SchemaImport" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 452 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 356: /* "URILiteralList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 461 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 357: /* "SchemaPrefix" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 470 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 358: /* "ModuleImport" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 479 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 359: /* "NamespaceDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 488 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 360: /* "DefaultNamespaceDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 497 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 361: /* "VFO_DeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 506 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 362: /* "VFO_Decl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 515 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 363: /* "DecimalFormatDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 524 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 364: /* "DecimalFormatParamList" */
-
-/* Line 480 of lalr1.cc  */
-#line 938 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 308 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 345: /* "VersionDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 317 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 346: /* "MainModule" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 326 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 347: /* "LibraryModule" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 335 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 348: /* "ModuleDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 344 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 349: /* "SIND_DeclList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 353 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 350: /* "SIND_Decl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 362 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 351: /* "Setter" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 371 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 352: /* "BoundarySpaceDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 380 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 353: /* "DefaultCollationDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 389 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 354: /* "BaseURIDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 398 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 355: /* "ConstructionDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 407 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 356: /* "OrderingModeDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 416 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 357: /* "EmptyOrderDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 425 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 358: /* "CopyNamespacesDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 434 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 359: /* "Import" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 443 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 360: /* "SchemaImport" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 452 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 361: /* "URILiteralList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 461 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 362: /* "SchemaPrefix" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 470 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 363: /* "ModuleImport" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 479 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 364: /* "NamespaceDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 488 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 365: /* "DefaultNamespaceDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 497 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 366: /* "VFO_DeclList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 506 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 367: /* "VFO_Decl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 515 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 368: /* "DecimalFormatDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 524 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 369: /* "DecimalFormatParamList" */
+
+/* Line 480 of lalr1.cc  */
+#line 945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->vstrpair); };
 
 /* Line 480 of lalr1.cc  */
-#line 533 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
+#line 533 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 365: /* "DecimalFormatParam" */
+      case 370: /* "DecimalFormatParam" */
 
 /* Line 480 of lalr1.cc  */
-#line 938 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->strpair); };
 
 /* Line 480 of lalr1.cc  */
-#line 542 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 367: /* "OptionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 551 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 368: /* "FTOptionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 560 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 369: /* "CtxItemDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 569 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 370: /* "CtxItemDecl2" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 578 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 371: /* "CtxItemDecl3" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 587 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 372: /* "CtxItemDecl4" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 596 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 373: /* "VarDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 605 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 374: /* "VarNameAndType" */
-
-/* Line 480 of lalr1.cc  */
-#line 938 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 542 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 372: /* "OptionDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 551 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 373: /* "FTOptionDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 560 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 374: /* "CtxItemDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 569 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 375: /* "CtxItemDecl2" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 578 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 376: /* "CtxItemDecl3" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 587 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 377: /* "CtxItemDecl4" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 596 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 378: /* "VarDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 605 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 379: /* "VarNameAndType" */
+
+/* Line 480 of lalr1.cc  */
+#line 945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->varnametype); };
 
 /* Line 480 of lalr1.cc  */
-#line 614 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 375: /* "AnnotationList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 623 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 376: /* "Annotation" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 632 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 377: /* "AnnotationLiteralList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 641 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 378: /* "FunctionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 650 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 379: /* "FunctionDecl2" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 659 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 380: /* "FunctionDeclSimple" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 668 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 381: /* "FunctionDeclUpdating" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 677 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 382: /* "FunctionSig" */
-
-/* Line 480 of lalr1.cc  */
-#line 938 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 614 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 380: /* "AnnotationList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 623 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 381: /* "Annotation" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 632 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 382: /* "AnnotationLiteralList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 641 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 383: /* "FunctionDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 650 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 384: /* "FunctionDecl2" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 659 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 385: /* "FunctionDeclSimple" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 668 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 386: /* "FunctionDeclUpdating" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 677 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 387: /* "FunctionSig" */
+
+/* Line 480 of lalr1.cc  */
+#line 945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->fnsig); };
 
 /* Line 480 of lalr1.cc  */
-#line 686 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 383: /* "ParamList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 695 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 384: /* "Param" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 704 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 385: /* "CollectionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 713 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 387: /* "IndexDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 722 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 388: /* "IndexKeyList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 731 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 389: /* "IndexKeySpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 740 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 390: /* "IntegrityConstraintDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 749 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 391: /* "QueryBody" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 758 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 392: /* "StatementsAndOptionalExprTop" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 767 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 393: /* "StatementsAndOptionalExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 776 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 394: /* "StatementsAndExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 785 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 395: /* "Statements" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 794 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 396: /* "Statement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 397: /* "BlockStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 398: /* "BlockExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 821 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 399: /* "EnclosedStatementsAndOptionalExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 830 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 400: /* "VarDeclStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 839 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 403: /* "AssignStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 848 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 404: /* "ApplyStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 857 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 405: /* "ExitStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 866 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 406: /* "WhileStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 875 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 407: /* "FlowCtlStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 884 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 408: /* "FLWORStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 893 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 409: /* "ReturnStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 902 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 410: /* "IfStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 911 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 411: /* "TryStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 412: /* "CatchListStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 413: /* "CatchStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 938 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 414: /* "Expr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 947 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 415: /* "ExprSingle" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 956 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 416: /* "ExprSimple" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 965 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 417: /* "FLWORExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 974 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 418: /* "ReturnExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 983 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 421: /* "FLWORWinCond" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 992 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 422: /* "WindowClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1001 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 423: /* "CountClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1010 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 424: /* "ForLetWinClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1019 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 426: /* "FLWORClauseList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1028 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 427: /* "ForClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1037 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 428: /* "VarInDeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1046 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 429: /* "VarInDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1055 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 430: /* "PositionalVar" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1064 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 431: /* "FTScoreVar" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1073 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 432: /* "LetClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1082 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 433: /* "VarGetsDeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1091 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 434: /* "VarGetsDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1100 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 435: /* "WindowVarDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1109 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 436: /* "WindowVars" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1118 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 437: /* "WindowVars3" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1127 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 438: /* "WindowVars2" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1136 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 439: /* "WhereClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1145 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 440: /* "GroupByClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1154 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 441: /* "GroupSpecList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1163 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 442: /* "GroupSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1172 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 443: /* "GroupCollationSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1181 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 444: /* "OrderByClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1190 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 445: /* "OrderSpecList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1199 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 446: /* "OrderSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1208 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 447: /* "OrderModifier" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1217 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 448: /* "OrderDirSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1226 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 449: /* "OrderEmptySpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1235 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 450: /* "OrderCollationSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1244 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 451: /* "QuantifiedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1253 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 452: /* "QVarInDeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1262 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 453: /* "QVarInDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1271 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 454: /* "SwitchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1280 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 455: /* "SwitchCaseClauseList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1289 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 456: /* "SwitchCaseClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1298 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 457: /* "SwitchCaseOperandList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1307 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 458: /* "SwitchStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1316 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 461: /* "TypeswitchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1325 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 462: /* "TypeswitchStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1334 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 463: /* "CaseClauseList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1343 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 464: /* "CaseClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1352 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 467: /* "SequenceTypeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1361 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 468: /* "IfExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1370 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 469: /* "OrExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1379 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 470: /* "AndExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1388 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 471: /* "ComparisonExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1397 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 473: /* "FTContainsExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1406 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 474: /* "StringConcatExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1415 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 475: /* "opt_FTIgnoreOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1424 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 476: /* "RangeExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1433 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 477: /* "AdditiveExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1442 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 478: /* "MultiplicativeExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1451 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 479: /* "UnionExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1460 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 480: /* "IntersectExceptExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1469 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 481: /* "InstanceofExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1478 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 482: /* "TreatExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1487 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 483: /* "CastableExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1496 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 484: /* "CastExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1505 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 485: /* "SingleType" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1514 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 486: /* "UnaryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1523 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 487: /* "SignList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1532 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 488: /* "ValueExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1541 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 489: /* "SimpleMapExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1550 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 490: /* "ValueComp" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1559 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 491: /* "NodeComp" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1568 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 492: /* "ValidateExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1577 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 493: /* "ExtensionExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1586 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 494: /* "Pragma_list" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1595 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 495: /* "Pragma" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1604 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 496: /* "PathExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1613 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 497: /* "RelativePathExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1622 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 498: /* "StepExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1631 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 499: /* "NameTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1640 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 500: /* "Wildcard" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1649 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 501: /* "FilterExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1658 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 502: /* "PredicateList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1667 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 503: /* "Predicate" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1676 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 504: /* "PrimaryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1685 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 505: /* "Literal" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1694 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 506: /* "NumericLiteral" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1703 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 507: /* "VarRef" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1712 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 508: /* "ParenthesizedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1721 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 509: /* "ContextItemExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1730 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 510: /* "OrderedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1739 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 511: /* "UnorderedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1748 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 512: /* "FunctionCall" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1757 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 513: /* "ArgList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1766 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 517: /* "Constructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1775 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 518: /* "DirectConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1784 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 519: /* "DirElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1793 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 520: /* "DirElemContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1802 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 521: /* "DirAttributeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1811 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 522: /* "DirAttr" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1820 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 524: /* "DirAttributeValue" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1829 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 525: /* "opt_QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1838 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 526: /* "QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1847 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 527: /* "opt_AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1856 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 528: /* "AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1865 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 529: /* "QuoteAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1874 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 530: /* "AposAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1883 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 531: /* "DirElemContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1892 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 532: /* "CommonContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1901 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 533: /* "DirCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1910 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 534: /* "DirPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1919 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 535: /* "CDataSection" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1928 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 536: /* "ComputedConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1937 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 537: /* "CompDocConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1946 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 538: /* "CompElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1955 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 539: /* "CompAttrConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1964 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 540: /* "CompTextConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1973 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 541: /* "CompCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1982 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 542: /* "CompPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1991 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 543: /* "CompNamespaceConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2000 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 544: /* "TypeDeclaration" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2009 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 545: /* "SequenceType" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2018 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 546: /* "OccurrenceIndicator" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2027 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 547: /* "ItemType" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2036 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 548: /* "TypeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2045 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 549: /* "GeneralizedAtomicType" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2054 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 550: /* "SimpleType" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2063 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 551: /* "KindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2072 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 552: /* "AnyKindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2081 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 553: /* "DocumentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2090 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 554: /* "NamespaceTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2099 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 555: /* "TextTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2108 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 556: /* "CommentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2117 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 557: /* "PITest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2126 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 558: /* "AttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2135 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 559: /* "SchemaAttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2144 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 560: /* "ElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2153 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 561: /* "SchemaElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2162 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 562: /* "TypeName" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2171 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 563: /* "TypeName_WITH_HOOK" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2180 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 564: /* "StringLiteral" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2189 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 566: /* "AnyFunctionTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2198 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 567: /* "TypedFunctionTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2207 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 570: /* "InsertExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2216 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 571: /* "DeleteExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2225 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 572: /* "ReplaceExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2234 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 573: /* "RenameExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2243 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 574: /* "TransformExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2252 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 575: /* "VarNameList" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2261 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 576: /* "VarNameDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2270 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 577: /* "TryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2279 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 578: /* "CatchListExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2288 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 579: /* "CatchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2297 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 580: /* "BracedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2306 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 581: /* "NameTestList" */
-
-/* Line 480 of lalr1.cc  */
-#line 938 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 686 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 388: /* "ParamList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 695 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 389: /* "Param" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 704 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 390: /* "CollectionDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 713 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 392: /* "IndexDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 722 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 393: /* "IndexKeyList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 731 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 394: /* "IndexKeySpec" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 740 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 395: /* "IntegrityConstraintDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 749 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 396: /* "QueryBody" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 758 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 397: /* "StatementsAndOptionalExprTop" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 767 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 398: /* "StatementsAndOptionalExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 776 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 399: /* "StatementsAndExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 785 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 400: /* "Statements" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 794 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 401: /* "Statement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 803 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 402: /* "BlockStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 812 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 403: /* "BlockExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 821 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 404: /* "EnclosedStatementsAndOptionalExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 830 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 405: /* "VarDeclStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 839 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 408: /* "AssignStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 848 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 409: /* "ApplyStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 857 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 410: /* "ExitStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 866 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 411: /* "WhileStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 875 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 412: /* "FlowCtlStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 884 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 413: /* "FLWORStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 893 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 414: /* "ReturnStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 902 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 415: /* "IfStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 911 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 416: /* "TryStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 920 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 417: /* "CatchListStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 929 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 418: /* "CatchStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 938 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 420: /* "Expr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 947 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 421: /* "ExprSingle" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 956 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 422: /* "ExprSimple" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 965 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 423: /* "FLWORExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 974 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 424: /* "ReturnExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 983 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 427: /* "FLWORWinCond" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 992 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 428: /* "WindowClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1001 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 429: /* "CountClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1010 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 430: /* "ForLetWinClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1019 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 432: /* "FLWORClauseList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1028 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 433: /* "ForClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1037 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 435: /* "VarInDeclList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1046 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 436: /* "VarInDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1055 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 437: /* "PositionalVar" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1064 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 438: /* "FTScoreVar" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1073 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 439: /* "LetClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1082 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 440: /* "VarGetsDeclList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1091 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 441: /* "VarGetsDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1100 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 442: /* "WindowVarDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1109 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 443: /* "WindowVars" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1118 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 444: /* "WindowVars3" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1127 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 445: /* "WindowVars2" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1136 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 446: /* "WhereClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1145 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 447: /* "GroupByClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1154 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 448: /* "GroupSpecList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1163 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 449: /* "GroupSpec" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1172 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 450: /* "GroupCollationSpec" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1181 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 451: /* "OrderByClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1190 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 452: /* "OrderSpecList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1199 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 453: /* "OrderSpec" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1208 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 454: /* "OrderModifier" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1217 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 455: /* "OrderDirSpec" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1226 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 456: /* "OrderEmptySpec" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1235 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 457: /* "OrderCollationSpec" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1244 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 458: /* "QuantifiedExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1253 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 459: /* "QVarInDeclList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1262 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 460: /* "QVarInDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1271 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 461: /* "SwitchExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1280 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 462: /* "SwitchCaseClauseList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1289 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 463: /* "SwitchCaseClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1298 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 464: /* "SwitchCaseOperandList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1307 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 465: /* "SwitchStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1316 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 468: /* "TypeswitchExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1325 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 469: /* "TypeswitchStatement" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1334 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 470: /* "CaseClauseList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1343 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 471: /* "CaseClause" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1352 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 474: /* "SequenceTypeList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1361 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 475: /* "IfExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1370 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 476: /* "OrExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1379 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 477: /* "AndExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1388 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 478: /* "ComparisonExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1397 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 480: /* "FTContainsExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1406 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 481: /* "StringConcatExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1415 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 482: /* "opt_FTIgnoreOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1424 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 483: /* "RangeExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1433 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 484: /* "AdditiveExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1442 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 485: /* "MultiplicativeExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1451 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 486: /* "UnionExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1460 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 487: /* "IntersectExceptExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1469 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 488: /* "InstanceofExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1478 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 489: /* "TreatExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1487 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 490: /* "CastableExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1496 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 491: /* "CastExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1505 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 492: /* "SingleType" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1514 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 493: /* "UnaryExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1523 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 494: /* "SignList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1532 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 495: /* "ValueExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1541 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 496: /* "SimpleMapExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1550 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 497: /* "ValueComp" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1559 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 498: /* "NodeComp" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1568 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 499: /* "ValidateExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1577 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 500: /* "ExtensionExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1586 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 501: /* "Pragma_list" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1595 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 502: /* "Pragma" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1604 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 503: /* "PathExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1613 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 504: /* "RelativePathExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1622 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 505: /* "StepExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1631 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 506: /* "NameTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1640 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 507: /* "Wildcard" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1649 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 508: /* "FilterExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1658 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 509: /* "PredicateList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1667 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 510: /* "Predicate" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1676 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 511: /* "PrimaryExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1685 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 512: /* "Literal" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1694 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 513: /* "NumericLiteral" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1703 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 515: /* "VarRef" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1712 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 516: /* "ParenthesizedExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1721 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 517: /* "ContextItemExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1730 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 518: /* "OrderedExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1739 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 519: /* "UnorderedExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1748 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 520: /* "FunctionCall" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1757 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 521: /* "ArgList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1766 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 525: /* "Constructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1775 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 526: /* "DirectConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1784 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 527: /* "DirElemConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1793 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 528: /* "DirElemContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1802 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 529: /* "DirAttributeList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1811 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 530: /* "DirAttr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1820 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 532: /* "DirAttributeValue" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1829 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 533: /* "opt_QuoteAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1838 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 534: /* "QuoteAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1847 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 535: /* "opt_AposAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1856 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 536: /* "AposAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1865 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 537: /* "QuoteAttrValueContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1874 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 538: /* "AposAttrValueContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1883 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 539: /* "DirElemContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1892 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 540: /* "CommonContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1901 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 541: /* "DirCommentConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1910 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 542: /* "DirPIConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1919 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 543: /* "CDataSection" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1928 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 544: /* "ComputedConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1937 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 545: /* "CompDocConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1946 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 546: /* "CompElemConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1955 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 547: /* "CompAttrConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1964 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 548: /* "CompTextConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1973 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 549: /* "CompCommentConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1982 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 550: /* "CompPIConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1991 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 551: /* "CompNamespaceConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2000 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 552: /* "TypeDeclaration" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2009 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 553: /* "SequenceType" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2018 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 554: /* "OccurrenceIndicator" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2027 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 555: /* "ItemType" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2036 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 556: /* "TypeList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2045 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 557: /* "GeneralizedAtomicType" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2054 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 558: /* "SimpleType" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2063 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 559: /* "KindTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2072 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 560: /* "AnyKindTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2081 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 561: /* "DocumentTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2090 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 562: /* "NamespaceTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2099 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 563: /* "TextTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2108 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 564: /* "CommentTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2117 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 565: /* "PITest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2126 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 566: /* "AttributeTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2135 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 567: /* "SchemaAttributeTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2144 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 568: /* "ElementTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2153 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 569: /* "SchemaElementTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2162 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 570: /* "TypeName" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2171 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 571: /* "TypeName_WITH_HOOK" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2180 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 572: /* "StringLiteral" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2189 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 574: /* "AnyFunctionTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2198 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 575: /* "TypedFunctionTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2207 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 578: /* "InsertExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2216 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 579: /* "DeleteExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2225 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 580: /* "ReplaceExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2234 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 581: /* "RenameExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2243 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 582: /* "TransformExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2252 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 583: /* "VarNameList" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2261 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 584: /* "VarNameDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2270 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 585: /* "TryExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2279 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 586: /* "CatchListExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2288 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 587: /* "CatchExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2297 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 588: /* "BracedExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2306 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 589: /* "NameTestList" */
+
+/* Line 480 of lalr1.cc  */
+#line 945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->name_test_list); };
 
 /* Line 480 of lalr1.cc  */
-#line 2315 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 582: /* "FTSelection" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2324 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 585: /* "FTOr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2333 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 586: /* "FTAnd" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2342 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 587: /* "FTMildNot" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2351 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 588: /* "FTUnaryNot" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2360 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 589: /* "FTPrimaryWithOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2369 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 590: /* "opt_FTMatchOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2378 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 592: /* "FTWeight" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2387 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 593: /* "FTPrimary" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2396 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 594: /* "opt_FTTimes" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2405 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 595: /* "FTExtensionSelection" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2414 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 597: /* "FTWords" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2423 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 598: /* "FTWordsValue" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2432 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 600: /* "FTAnyallOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2441 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 603: /* "FTPosFilter" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2450 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 604: /* "FTOrder" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2459 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 605: /* "FTWindow" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2468 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 606: /* "FTDistance" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2477 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 607: /* "FTUnit" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2486 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 608: /* "FTMatchOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2495 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 609: /* "FTMatchOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2504 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 610: /* "FTCaseOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2513 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 611: /* "FTDiacriticsOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2522 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 612: /* "FTExtensionOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2531 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 613: /* "FTStemOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2540 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 614: /* "FTThesaurusOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2549 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 618: /* "FTThesaurusID" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2558 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 621: /* "FTStopWordOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2567 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 622: /* "FTStopWords" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2576 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 626: /* "FTStopWordsInclExcl" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2585 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 627: /* "FTLanguageOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2594 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 628: /* "FTWildCardOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2603 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 629: /* "FTContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2612 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 630: /* "FTTimes" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2621 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 631: /* "FTRange" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2630 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 632: /* "FTScope" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2639 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 633: /* "FTBigUnit" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2648 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 634: /* "FTIgnoreOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2657 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 635: /* "JSONArrayConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2666 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 636: /* "JSONSimpleObjectUnion" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2675 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 637: /* "JSONAccumulatorObjectUnion" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2684 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 638: /* "JSONObjectConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2693 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 639: /* "JSONPairList" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2702 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 640: /* "JSONInsertExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2711 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 641: /* "JSONAppendExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2720 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 642: /* "JSONDeleteExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2729 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 643: /* "JSONRenameExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2738 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 644: /* "JSONReplaceExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2747 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 651: /* "QNAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2756 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 652: /* "FUNCTION_NAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2765 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 653: /* "EQNAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2774 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
+#line 2315 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 590: /* "FTSelection" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2324 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 593: /* "FTOr" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2333 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 594: /* "FTAnd" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2342 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 595: /* "FTMildNot" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2351 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 596: /* "FTUnaryNot" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2360 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 597: /* "FTPrimaryWithOptions" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2369 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 598: /* "opt_FTMatchOptions" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2378 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 600: /* "FTWeight" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2387 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 601: /* "FTPrimary" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2396 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 602: /* "opt_FTTimes" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2405 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 603: /* "FTExtensionSelection" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2414 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 605: /* "FTWords" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2423 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 606: /* "FTWordsValue" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2432 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 608: /* "FTAnyallOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2441 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 611: /* "FTPosFilter" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2450 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 612: /* "FTOrder" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2459 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 613: /* "FTWindow" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2468 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 614: /* "FTDistance" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2477 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 615: /* "FTUnit" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2486 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 616: /* "FTMatchOptions" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2495 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 617: /* "FTMatchOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2504 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 618: /* "FTCaseOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2513 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 619: /* "FTDiacriticsOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2522 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 620: /* "FTExtensionOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2531 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 621: /* "FTStemOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2540 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 622: /* "FTThesaurusOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2549 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 626: /* "FTThesaurusID" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2558 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 629: /* "FTStopWordOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2567 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 630: /* "FTStopWords" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2576 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 634: /* "FTStopWordsInclExcl" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2585 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 635: /* "FTLanguageOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2594 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 636: /* "FTWildCardOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2603 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 637: /* "FTContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2612 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 638: /* "FTTimes" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2621 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 639: /* "FTRange" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2630 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 640: /* "FTScope" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2639 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 641: /* "FTBigUnit" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2648 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 642: /* "FTIgnoreOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2657 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 643: /* "JSONArrayConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2666 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 644: /* "JSONSimpleObjectUnion" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2675 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 645: /* "JSONAccumulatorObjectUnion" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2684 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 646: /* "JSONObjectConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2693 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 647: /* "JSONPairList" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2702 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 648: /* "JSONInsertExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2711 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 649: /* "JSONAppendExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2720 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 650: /* "JSONDeleteExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2729 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 651: /* "JSONRenameExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2738 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 652: /* "JSONReplaceExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2747 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 659: /* "QNAME" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2756 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 660: /* "FUNCTION_NAME" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2765 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+	break;
+      case 661: /* "EQNAME" */
+
+/* Line 480 of lalr1.cc  */
+#line 942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2774 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
 
 	default:
@@ -2861,13 +2861,13 @@
     /* User initialization code.  */
     
 /* Line 565 of lalr1.cc  */
-#line 133 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 133 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 {
     yylloc.begin.filename = yylloc.end.filename = &(driver.theFilename2);
 }
 
 /* Line 565 of lalr1.cc  */
-#line 2871 "/home/markos/zorba/repo/hof-merge/build-opt/src/compiler/parser/jsoniq_parser.cpp"
+#line 2871 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 
     /* Initialize the stacks.  The initial state will be pushed in
        yynewstate, since the latter expects the semantical and the
@@ -2986,7 +2986,7 @@
 	  case 3:
 
 /* Line 690 of lalr1.cc  */
-#line 1057 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1071 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -2995,7 +2995,7 @@
   case 4:
 
 /* Line 690 of lalr1.cc  */
-#line 1061 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1075 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -3004,7 +3004,7 @@
   case 5:
 
 /* Line 690 of lalr1.cc  */
-#line 1065 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1079 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       }
@@ -3013,7 +3013,7 @@
   case 6:
 
 /* Line 690 of lalr1.cc  */
-#line 1073 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1087 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL;
       }
@@ -3022,7 +3022,7 @@
   case 7:
 
 /* Line 690 of lalr1.cc  */
-#line 1079 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1093 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
@@ -3031,7 +3031,7 @@
   case 8:
 
 /* Line 690 of lalr1.cc  */
-#line 1083 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1097 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
@@ -3040,7 +3040,7 @@
   case 9:
 
 /* Line 690 of lalr1.cc  */
-#line 1092 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1106 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3050,7 +3050,7 @@
   case 10:
 
 /* Line 690 of lalr1.cc  */
-#line 1098 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1112 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       MainModule* mm = dynamic_cast<MainModule*>((yysemantic_stack_[(2) - (2)].node));
       mm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
@@ -3062,7 +3062,7 @@
   case 11:
 
 /* Line 690 of lalr1.cc  */
-#line 1106 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1120 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3072,7 +3072,7 @@
   case 12:
 
 /* Line 690 of lalr1.cc  */
-#line 1112 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1126 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LibraryModule* lm = dynamic_cast<LibraryModule*>((yysemantic_stack_[(2) - (2)].node));
       lm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
@@ -3084,7 +3084,7 @@
   case 13:
 
 /* Line 690 of lalr1.cc  */
-#line 1123 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1137 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), "utf-8" );
     }
@@ -3093,7 +3093,7 @@
   case 14:
 
 /* Line 690 of lalr1.cc  */
-#line 1128 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1142 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
     }
@@ -3102,7 +3102,26 @@
   case 15:
 
 /* Line 690 of lalr1.cc  */
-#line 1136 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1146 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), "utf-8", VersionDecl::jsoniq );
+    }
+    break;
+
+  case 16:
+
+/* Line 690 of lalr1.cc  */
+#line 1151 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new VersionDecl(
+        LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)), VersionDecl::jsoniq );
+    }
+    break;
+
+  case 17:
+
+/* Line 690 of lalr1.cc  */
+#line 1160 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (1)].node)), NULL);
 
@@ -3110,10 +3129,10 @@
     }
     break;
 
-  case 16:
+  case 18:
 
 /* Line 690 of lalr1.cc  */
-#line 1143 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1167 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (1)].node)));
 
@@ -3121,10 +3140,10 @@
     }
     break;
 
-  case 17:
+  case 19:
 
 /* Line 690 of lalr1.cc  */
-#line 1150 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1174 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (1)].node)),
@@ -3134,19 +3153,19 @@
     }
     break;
 
-  case 18:
+  case 20:
 
 /* Line 690 of lalr1.cc  */
-#line 1159 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1183 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new MainModule( LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(1) - (1)].expr)), NULL );
     }
     break;
 
-  case 19:
+  case 21:
 
 /* Line 690 of lalr1.cc  */
-#line 1166 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1190 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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();
@@ -3155,10 +3174,10 @@
     }
     break;
 
-  case 20:
+  case 22:
 
 /* Line 690 of lalr1.cc  */
-#line 1174 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1198 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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();
@@ -3167,10 +3186,10 @@
     }
     break;
 
-  case 21:
+  case 23:
 
 /* Line 690 of lalr1.cc  */
-#line 1182 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1206 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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();
@@ -3179,10 +3198,10 @@
     }
     break;
 
-  case 22:
+  case 24:
 
 /* Line 690 of lalr1.cc  */
-#line 1190 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1214 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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();
@@ -3191,19 +3210,19 @@
     }
     break;
 
-  case 23:
+  case 25:
 
 /* Line 690 of lalr1.cc  */
-#line 1201 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1225 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(1) - (1)].node)), NULL);
     }
     break;
 
-  case 24:
+  case 26:
 
 /* Line 690 of lalr1.cc  */
-#line 1206 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1230 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (2)].node)), NULL);
 
@@ -3211,10 +3230,10 @@
     }
     break;
 
-  case 25:
+  case 27:
 
 /* Line 690 of lalr1.cc  */
-#line 1213 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1237 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (2)].node)));
 
@@ -3222,10 +3241,10 @@
     }
     break;
 
-  case 26:
+  case 28:
 
 /* Line 690 of lalr1.cc  */
-#line 1220 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1244 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (2)].node)),
@@ -3235,10 +3254,10 @@
     }
     break;
 
-  case 27:
+  case 29:
 
 /* Line 690 of lalr1.cc  */
-#line 1232 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1256 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
 
@@ -3246,10 +3265,10 @@
     }
     break;
 
-  case 28:
+  case 30:
 
 /* Line 690 of lalr1.cc  */
-#line 1242 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1266 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       SIND_DeclList *sdl = new SIND_DeclList( LOC((yyloc)) );
       sdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3257,20 +3276,20 @@
     }
     break;
 
-  case 29:
+  case 31:
 
 /* Line 690 of lalr1.cc  */
-#line 1249 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1273 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ((SIND_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
     }
     break;
 
-  case 30:
+  case 32:
 
 /* Line 690 of lalr1.cc  */
-#line 1256 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1280 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       // error
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
@@ -3280,136 +3299,136 @@
     }
     break;
 
-  case 44:
+  case 46:
 
 /* Line 690 of lalr1.cc  */
-#line 1291 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1315 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::preserve_space);
     }
     break;
 
-  case 45:
+  case 47:
 
 /* Line 690 of lalr1.cc  */
-#line 1296 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1320 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::strip_space);
     }
     break;
 
-  case 46:
+  case 48:
 
 /* Line 690 of lalr1.cc  */
-#line 1304 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1328 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultCollationDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)) );
     }
     break;
 
-  case 47:
+  case 49:
 
 /* Line 690 of lalr1.cc  */
-#line 1312 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1336 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BaseURIDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
     break;
 
-  case 48:
+  case 50:
 
 /* Line 690 of lalr1.cc  */
-#line 1320 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1344 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_preserve);
     }
     break;
 
-  case 49:
+  case 51:
 
 /* Line 690 of lalr1.cc  */
-#line 1325 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1349 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_strip);
     }
     break;
 
-  case 50:
+  case 52:
 
 /* Line 690 of lalr1.cc  */
-#line 1333 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1357 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::ordered);
     }
     break;
 
-  case 51:
+  case 53:
 
 /* Line 690 of lalr1.cc  */
-#line 1338 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1362 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::unordered);
     }
     break;
 
-  case 52:
+  case 54:
 
 /* Line 690 of lalr1.cc  */
-#line 1346 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1370 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_greatest);
     }
     break;
 
-  case 53:
+  case 55:
 
 /* Line 690 of lalr1.cc  */
-#line 1351 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1375 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_least);
     }
     break;
 
-  case 54:
+  case 56:
 
 /* Line 690 of lalr1.cc  */
-#line 1359 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1383 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, true);
     }
     break;
 
-  case 55:
+  case 57:
 
 /* Line 690 of lalr1.cc  */
-#line 1364 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1388 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, false);
     }
     break;
 
-  case 56:
+  case 58:
 
 /* Line 690 of lalr1.cc  */
-#line 1369 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1393 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, true);
     }
     break;
 
-  case 57:
+  case 59:
 
 /* Line 690 of lalr1.cc  */
-#line 1374 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1398 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, false);
     }
     break;
 
-  case 60:
+  case 62:
 
 /* Line 690 of lalr1.cc  */
-#line 1387 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1411 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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\".");
@@ -3417,19 +3436,19 @@
     }
     break;
 
-  case 61:
+  case 63:
 
 /* Line 690 of lalr1.cc  */
-#line 1397 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1421 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport( LOC((yyloc)), NULL, SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL );
     }
     break;
 
-  case 62:
+  case 64:
 
 /* Line 690 of lalr1.cc  */
-#line 1402 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1426 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(4) - (3)].node)),
@@ -3438,10 +3457,10 @@
     }
     break;
 
-  case 63:
+  case 65:
 
 /* Line 690 of lalr1.cc  */
-#line 1410 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1434 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             NULL,
@@ -3450,10 +3469,10 @@
     }
     break;
 
-  case 64:
+  case 66:
 
 /* Line 690 of lalr1.cc  */
-#line 1418 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1442 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(6) - (3)].node)),
@@ -3462,10 +3481,10 @@
     }
     break;
 
-  case 65:
+  case 67:
 
 /* Line 690 of lalr1.cc  */
-#line 1429 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1453 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       URILiteralList *ull = new URILiteralList( LOC((yyloc)));
       ull->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -3473,10 +3492,10 @@
     }
     break;
 
-  case 66:
+  case 68:
 
 /* Line 690 of lalr1.cc  */
-#line 1436 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1460 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ( URILiteralList *ull = dynamic_cast<URILiteralList*>((yysemantic_stack_[(3) - (1)].node)) )
         ull->push_back( SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
@@ -3485,28 +3504,28 @@
     }
     break;
 
-  case 67:
+  case 69:
 
 /* Line 690 of lalr1.cc  */
-#line 1447 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1471 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 68:
+  case 70:
 
 /* Line 690 of lalr1.cc  */
-#line 1452 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1476 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), true );
     }
     break;
 
-  case 69:
+  case 71:
 
 /* Line 690 of lalr1.cc  */
-#line 1460 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1484 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL);
 
@@ -3514,10 +3533,10 @@
     }
     break;
 
-  case 70:
+  case 72:
 
 /* Line 690 of lalr1.cc  */
-#line 1467 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1491 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (4)].sval)), SYMTAB((yysemantic_stack_[(6) - (6)].sval)), NULL);
 
@@ -3525,10 +3544,10 @@
     }
     break;
 
-  case 71:
+  case 73:
 
 /* Line 690 of lalr1.cc  */
-#line 1474 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1498 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(5) - (3)].sval)),
@@ -3538,10 +3557,10 @@
     }
     break;
 
-  case 72:
+  case 74:
 
 /* Line 690 of lalr1.cc  */
-#line 1483 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1507 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(8) - (4)].sval)),
@@ -3552,19 +3571,19 @@
     }
     break;
 
-  case 73:
+  case 75:
 
 /* Line 690 of lalr1.cc  */
-#line 1496 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1520 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new NamespaceDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(5) - (3)].sval)), SYMTAB((yysemantic_stack_[(5) - (5)].sval)) );
     }
     break;
 
-  case 74:
+  case 76:
 
 /* Line 690 of lalr1.cc  */
-#line 1504 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1528 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_element_default,
@@ -3572,10 +3591,10 @@
     }
     break;
 
-  case 75:
+  case 77:
 
 /* Line 690 of lalr1.cc  */
-#line 1511 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1535 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_function_default,
@@ -3583,10 +3602,10 @@
     }
     break;
 
-  case 76:
+  case 78:
 
 /* Line 690 of lalr1.cc  */
-#line 1521 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1545 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VFO_DeclList *vdl = new VFO_DeclList( LOC((yyloc)));
       vdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3594,20 +3613,20 @@
     }
     break;
 
-  case 77:
+  case 79:
 
 /* Line 690 of lalr1.cc  */
-#line 1528 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1552 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ((VFO_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
     }
     break;
 
-  case 78:
+  case 80:
 
 /* Line 690 of lalr1.cc  */
-#line 1535 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1559 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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();
@@ -3616,30 +3635,30 @@
     }
     break;
 
-  case 87:
+  case 89:
 
 /* Line 690 of lalr1.cc  */
-#line 1558 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1582 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
     }
     break;
 
-  case 88:
+  case 90:
 
 /* Line 690 of lalr1.cc  */
-#line 1564 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1588 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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);
     }
     break;
 
-  case 89:
+  case 91:
 
 /* Line 690 of lalr1.cc  */
-#line 1573 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1597 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.vstrpair) = new vector<string_pair_t>();
       (yyval.vstrpair)->push_back( *(yysemantic_stack_[(1) - (1)].strpair) );
@@ -3647,10 +3666,10 @@
     }
     break;
 
-  case 90:
+  case 92:
 
 /* Line 690 of lalr1.cc  */
-#line 1580 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1604 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yysemantic_stack_[(2) - (1)].vstrpair)->push_back( *(yysemantic_stack_[(2) - (2)].strpair) );
       delete (yysemantic_stack_[(2) - (2)].strpair);
@@ -3658,10 +3677,10 @@
     }
     break;
 
-  case 91:
+  case 93:
 
 /* Line 690 of lalr1.cc  */
-#line 1590 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1614 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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() );
@@ -3669,107 +3688,107 @@
     }
     break;
 
-  case 92:
+  case 94:
 
 /* Line 690 of lalr1.cc  */
-#line 1599 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1623 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "decimal-separator"; }
     break;
 
-  case 93:
+  case 95:
 
 /* Line 690 of lalr1.cc  */
-#line 1600 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1624 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "digit"; }
     break;
 
-  case 94:
+  case 96:
 
 /* Line 690 of lalr1.cc  */
-#line 1601 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1625 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "grouping-separator"; }
     break;
 
-  case 95:
+  case 97:
 
 /* Line 690 of lalr1.cc  */
-#line 1602 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1626 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "infinty"; }
     break;
 
-  case 96:
+  case 98:
 
 /* Line 690 of lalr1.cc  */
-#line 1603 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1627 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "minus-sign"; }
     break;
 
-  case 97:
+  case 99:
 
 /* Line 690 of lalr1.cc  */
-#line 1604 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1628 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "NaN"; }
     break;
 
-  case 98:
+  case 100:
 
 /* Line 690 of lalr1.cc  */
-#line 1605 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1629 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "pattern-separator"; }
     break;
 
-  case 99:
+  case 101:
 
 /* Line 690 of lalr1.cc  */
-#line 1606 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1630 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "percent"; }
     break;
 
-  case 100:
+  case 102:
 
 /* Line 690 of lalr1.cc  */
-#line 1607 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1631 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "per-mille"; }
     break;
 
-  case 101:
+  case 103:
 
 /* Line 690 of lalr1.cc  */
-#line 1608 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1632 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "zero-digit"; }
     break;
 
-  case 102:
+  case 104:
 
 /* Line 690 of lalr1.cc  */
-#line 1614 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1638 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OptionDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)));
     }
     break;
 
-  case 103:
+  case 105:
 
 /* Line 690 of lalr1.cc  */
-#line 1622 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1646 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FTOptionDecl( LOC((yyloc)), dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (3)].node)) );
     }
     break;
 
-  case 104:
+  case 106:
 
 /* Line 690 of lalr1.cc  */
-#line 1630 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1654 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(4) - (4)].node);
     }
     break;
 
-  case 105:
+  case 107:
 
 /* Line 690 of lalr1.cc  */
-#line 1638 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1662 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(3) - (3)].node));
       d->theType = (yysemantic_stack_[(3) - (2)].node);
@@ -3777,19 +3796,19 @@
     }
     break;
 
-  case 106:
+  case 108:
 
 /* Line 690 of lalr1.cc  */
-#line 1645 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1669 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
-  case 107:
+  case 109:
 
 /* Line 690 of lalr1.cc  */
-#line 1653 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1677 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(1) - (1)].node));
       d->theIsExternal = false;
@@ -3797,37 +3816,37 @@
     }
     break;
 
-  case 108:
+  case 110:
 
 /* Line 690 of lalr1.cc  */
-#line 1660 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1684 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), NULL);
     }
     break;
 
-  case 109:
+  case 111:
 
 /* Line 690 of lalr1.cc  */
-#line 1665 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1689 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
     }
     break;
 
-  case 110:
+  case 112:
 
 /* Line 690 of lalr1.cc  */
-#line 1673 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1697 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
     break;
 
-  case 111:
+  case 113:
 
 /* Line 690 of lalr1.cc  */
-#line 1681 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1705 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(4) - (2)].varnametype)));
 
@@ -3842,10 +3861,10 @@
     }
     break;
 
-  case 112:
+  case 114:
 
 /* Line 690 of lalr1.cc  */
-#line 1695 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1719 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(3) - (2)].varnametype)));
 
@@ -3860,10 +3879,10 @@
     }
     break;
 
-  case 113:
+  case 115:
 
 /* Line 690 of lalr1.cc  */
-#line 1709 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1733 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(5) - (2)].varnametype)));
 
@@ -3878,19 +3897,19 @@
     }
     break;
 
-  case 114:
+  case 116:
 
 /* Line 690 of lalr1.cc  */
-#line 1726 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1750 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL, NULL);
     }
     break;
 
-  case 115:
+  case 117:
 
 /* Line 690 of lalr1.cc  */
-#line 1731 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1755 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)),
@@ -3899,10 +3918,10 @@
     }
     break;
 
-  case 116:
+  case 118:
 
 /* Line 690 of lalr1.cc  */
-#line 1739 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1763 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -3911,10 +3930,10 @@
     }
     break;
 
-  case 117:
+  case 119:
 
 /* Line 690 of lalr1.cc  */
-#line 1747 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1771 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (4)].expr)),
@@ -3923,38 +3942,38 @@
     }
     break;
 
-  case 118:
+  case 120:
 
 /* Line 690 of lalr1.cc  */
-#line 1758 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1782 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationListParsenode(LOC((yyloc)), static_cast<AnnotationParsenode*>((yysemantic_stack_[(1) - (1)].node)));
     }
     break;
 
-  case 119:
+  case 121:
 
 /* Line 690 of lalr1.cc  */
-#line 1763 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1787 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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);
     }
     break;
 
-  case 120:
+  case 122:
 
 /* Line 690 of lalr1.cc  */
-#line 1772 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1796 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))), NULL);
     }
     break;
 
-  case 121:
+  case 123:
 
 /* Line 690 of lalr1.cc  */
-#line 1777 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1801 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval))),
@@ -3962,19 +3981,19 @@
     }
     break;
 
-  case 122:
+  case 124:
 
 /* Line 690 of lalr1.cc  */
-#line 1784 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1808 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), true), NULL);
     }
     break;
 
-  case 123:
+  case 125:
 
 /* Line 690 of lalr1.cc  */
-#line 1789 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1813 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval)), true),
@@ -3982,39 +4001,39 @@
     }
     break;
 
-  case 124:
+  case 126:
 
 /* Line 690 of lalr1.cc  */
-#line 1799 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1823 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationLiteralListParsenode(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr));
     }
     break;
 
-  case 125:
+  case 127:
 
 /* Line 690 of lalr1.cc  */
-#line 1804 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1828 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       static_cast<AnnotationLiteralListParsenode*>((yysemantic_stack_[(3) - (1)].node))->push_back((yysemantic_stack_[(3) - (3)].expr));
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
     }
     break;
 
-  case 126:
+  case 128:
 
 /* Line 690 of lalr1.cc  */
-#line 1813 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1837 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       static_cast<FunctionDecl*>((yysemantic_stack_[(2) - (2)].node))->setComment( SYMTAB((yysemantic_stack_[(2) - (1)].sval)) );
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
     }
     break;
 
-  case 127:
+  case 129:
 
 /* Line 690 of lalr1.cc  */
-#line 1819 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1843 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       FunctionDecl* fdecl = static_cast<FunctionDecl*>((yysemantic_stack_[(3) - (3)].node));
 
@@ -4025,28 +4044,28 @@
     }
     break;
 
-  case 128:
-
-/* Line 690 of lalr1.cc  */
-#line 1832 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
-  case 129:
-
-/* Line 690 of lalr1.cc  */
-#line 1837 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
   case 130:
 
 /* Line 690 of lalr1.cc  */
-#line 1845 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1856 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
+
+  case 131:
+
+/* Line 690 of lalr1.cc  */
+#line 1861 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
+
+  case 132:
+
+/* Line 690 of lalr1.cc  */
+#line 1869 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4059,10 +4078,10 @@
     }
     break;
 
-  case 131:
+  case 133:
 
 /* Line 690 of lalr1.cc  */
-#line 1856 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1880 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4075,10 +4094,10 @@
     }
     break;
 
-  case 132:
+  case 134:
 
 /* Line 690 of lalr1.cc  */
-#line 1871 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4091,10 +4110,10 @@
     }
     break;
 
-  case 133:
+  case 135:
 
 /* Line 690 of lalr1.cc  */
-#line 1883 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1907 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4107,46 +4126,46 @@
     }
     break;
 
-  case 134:
+  case 136:
 
 /* Line 690 of lalr1.cc  */
-#line 1898 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1922 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL);
     }
     break;
 
-  case 135:
+  case 137:
 
 /* Line 690 of lalr1.cc  */
-#line 1903 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1927 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
-  case 136:
+  case 138:
 
 /* Line 690 of lalr1.cc  */
-#line 1908 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1932 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL, dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node)));
     }
     break;
 
-  case 137:
+  case 139:
 
 /* Line 690 of lalr1.cc  */
-#line 1913 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1937 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(5) - (2)].node)), dynamic_cast<SequenceType*>((yysemantic_stack_[(5) - (5)].node)));
     }
     break;
 
-  case 138:
+  case 140:
 
 /* Line 690 of lalr1.cc  */
-#line 1921 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ParamList *pl = new ParamList( LOC((yyloc)) );
       pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -4154,10 +4173,10 @@
     }
     break;
 
-  case 139:
+  case 141:
 
 /* Line 690 of lalr1.cc  */
-#line 1928 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1952 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ( ParamList *pl = dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (1)].node)) )
         pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -4166,19 +4185,19 @@
     }
     break;
 
-  case 140:
+  case 142:
 
 /* Line 690 of lalr1.cc  */
-#line 1939 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1963 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL);
     }
     break;
 
-  case 141:
+  case 143:
 
 /* Line 690 of lalr1.cc  */
-#line 1944 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1968 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)),
                      static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4186,10 +4205,10 @@
     }
     break;
 
-  case 142:
+  case 144:
 
 /* Line 690 of lalr1.cc  */
-#line 1954 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1978 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)),
@@ -4200,10 +4219,10 @@
     }
     break;
 
-  case 143:
+  case 145:
 
 /* Line 690 of lalr1.cc  */
-#line 1963 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1987 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4214,10 +4233,10 @@
     }
     break;
 
-  case 144:
+  case 146:
 
 /* Line 690 of lalr1.cc  */
-#line 1972 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 1996 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -4228,10 +4247,10 @@
     }
     break;
 
-  case 145:
+  case 147:
 
 /* Line 690 of lalr1.cc  */
-#line 1981 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2005 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)),
@@ -4242,30 +4261,10 @@
     }
     break;
 
-  case 146:
-
-/* Line 690 of lalr1.cc  */
-#line 1993 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
-    }
-    break;
-
-  case 147:
-
-/* Line 690 of lalr1.cc  */
-#line 1997 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
-                                                    (yysemantic_stack_[(2) - (1)].node),
-                                                    dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node))));
-    }
-    break;
-
   case 148:
 
 /* Line 690 of lalr1.cc  */
-#line 2003 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2017 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
@@ -4274,19 +4273,39 @@
   case 149:
 
 /* Line 690 of lalr1.cc  */
-#line 2007 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2021 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
                                                     dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node))));
-
     }
     break;
 
   case 150:
 
 /* Line 690 of lalr1.cc  */
-#line 2017 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2027 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
+    }
+    break;
+
+  case 151:
+
+/* Line 690 of lalr1.cc  */
+#line 2031 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
+                                                    (yysemantic_stack_[(2) - (1)].node),
+                                                    dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node))));
+
+    }
+    break;
+
+  case 152:
+
+/* Line 690 of lalr1.cc  */
+#line 2041 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(8) - (3)].expr)),
@@ -4298,10 +4317,10 @@
     }
     break;
 
-  case 151:
+  case 153:
 
 /* Line 690 of lalr1.cc  */
-#line 2027 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2051 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(9) - (4)].expr)),
@@ -4313,10 +4332,10 @@
     }
     break;
 
-  case 152:
+  case 154:
 
 /* Line 690 of lalr1.cc  */
-#line 2040 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2064 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       IndexKeyList* keyList = new IndexKeyList(LOC((yyloc)));
       keyList->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -4324,29 +4343,29 @@
     }
     break;
 
-  case 153:
+  case 155:
 
 /* Line 690 of lalr1.cc  */
-#line 2046 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2070 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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);
     }
     break;
 
-  case 154:
+  case 156:
 
 /* Line 690 of lalr1.cc  */
-#line 2055 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2079 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL, NULL);
     }
     break;
 
-  case 155:
+  case 157:
 
 /* Line 690 of lalr1.cc  */
-#line 2060 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2084 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4355,10 +4374,10 @@
     }
     break;
 
-  case 156:
+  case 158:
 
 /* Line 690 of lalr1.cc  */
-#line 2067 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2091 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4367,10 +4386,10 @@
     }
     break;
 
-  case 157:
+  case 159:
 
 /* Line 690 of lalr1.cc  */
-#line 2074 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2098 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(3) - (1)].expr),
@@ -4379,10 +4398,10 @@
     }
     break;
 
-  case 158:
+  case 160:
 
 /* Line 690 of lalr1.cc  */
-#line 2086 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2110 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollSimpleCheck(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(11) - (4)].expr)),
@@ -4392,10 +4411,10 @@
     }
     break;
 
-  case 159:
+  case 161:
 
 /* Line 690 of lalr1.cc  */
-#line 2096 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2120 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollUniqueKeyCheck(LOC((yyloc)),
                                     static_cast<QName*>((yysemantic_stack_[(14) - (4)].expr)),
@@ -4405,10 +4424,10 @@
     }
     break;
 
-  case 160:
+  case 162:
 
 /* Line 690 of lalr1.cc  */
-#line 2106 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2130 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollForeachNode(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(13) - (4)].expr)),
@@ -4418,10 +4437,10 @@
     }
     break;
 
-  case 161:
+  case 163:
 
 /* Line 690 of lalr1.cc  */
-#line 2117 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2141 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICForeignKey( LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(22) - (4)].expr)),
@@ -4434,10 +4453,10 @@
     }
     break;
 
-  case 162:
+  case 164:
 
 /* Line 690 of lalr1.cc  */
-#line 2133 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2157 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ((yysemantic_stack_[(1) - (1)].expr) == NULL)
       {
@@ -4455,37 +4474,19 @@
     }
     break;
 
-  case 163:
-
-/* Line 690 of lalr1.cc  */
-#line 2153 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 164:
-
-/* Line 690 of lalr1.cc  */
-#line 2157 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
   case 165:
 
 /* Line 690 of lalr1.cc  */
-#line 2161 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2177 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) =  NULL;
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 166:
 
 /* Line 690 of lalr1.cc  */
-#line 2169 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2181 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4494,25 +4495,25 @@
   case 167:
 
 /* Line 690 of lalr1.cc  */
-#line 2173 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2185 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+      (yyval.expr) =  NULL;
     }
     break;
 
   case 168:
 
 /* Line 690 of lalr1.cc  */
-#line 2177 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2193 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) =  new BlockBody(LOC((yyloc)));
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 169:
 
 /* Line 690 of lalr1.cc  */
-#line 2185 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2197 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4521,20 +4522,38 @@
   case 170:
 
 /* Line 690 of lalr1.cc  */
-#line 2190 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2201 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
-
-      blk->add((yysemantic_stack_[(2) - (2)].expr));
-
-      (yyval.expr) = blk;
+      (yyval.expr) =  new BlockBody(LOC((yyloc)));
     }
     break;
 
   case 171:
 
 /* Line 690 of lalr1.cc  */
-#line 2202 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2209 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 172:
+
+/* Line 690 of lalr1.cc  */
+#line 2214 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
+
+      blk->add((yysemantic_stack_[(2) - (2)].expr));
+
+      (yyval.expr) = blk;
+    }
+    break;
+
+  case 173:
+
+/* Line 690 of lalr1.cc  */
+#line 2226 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = new BlockBody(LOC((yyloc)));
       blk->add((yysemantic_stack_[(1) - (1)].expr));
@@ -4542,10 +4561,10 @@
     }
     break;
 
-  case 172:
+  case 174:
 
 /* Line 690 of lalr1.cc  */
-#line 2209 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2233 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -4555,10 +4574,10 @@
     }
     break;
 
-  case 173:
+  case 175:
 
 /* Line 690 of lalr1.cc  */
-#line 2219 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2243 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(4) - (1)].expr); // to prevent the Bison warning
       (yyval.expr) = (yysemantic_stack_[(4) - (2)].expr); // to prevent the Bison warning
@@ -4571,28 +4590,19 @@
     }
     break;
 
-  case 186:
+  case 189:
 
 /* Line 690 of lalr1.cc  */
-#line 2251 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2276 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
     break;
 
-  case 187:
-
-/* Line 690 of lalr1.cc  */
-#line 2256 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new BlockBody(LOC((yyloc)));
-    }
-    break;
-
-  case 188:
-
-/* Line 690 of lalr1.cc  */
-#line 2264 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 190:
+
+/* Line 690 of lalr1.cc  */
+#line 2284 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (dynamic_cast<BlockBody*>((yysemantic_stack_[(3) - (2)].expr)) == NULL)
       {
@@ -4607,28 +4617,28 @@
     }
     break;
 
-  case 189:
-
-/* Line 690 of lalr1.cc  */
-#line 2281 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
-    }
-    break;
-
-  case 190:
-
-/* Line 690 of lalr1.cc  */
-#line 2289 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(2) - (1)].expr);
-    }
-    break;
-
   case 191:
 
 /* Line 690 of lalr1.cc  */
-#line 2297 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2301 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
+    }
+    break;
+
+  case 192:
+
+/* Line 690 of lalr1.cc  */
+#line 2309 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(2) - (1)].expr);
+    }
+    break;
+
+  case 193:
+
+/* Line 690 of lalr1.cc  */
+#line 2317 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = static_cast<VarDeclStmt*>((yysemantic_stack_[(3) - (1)].expr));
       vdecl->add((yysemantic_stack_[(3) - (3)].node));
@@ -4636,10 +4646,10 @@
     }
     break;
 
-  case 192:
+  case 194:
 
 /* Line 690 of lalr1.cc  */
-#line 2304 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2324 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)), NULL);
       vdecl->add((yysemantic_stack_[(2) - (2)].node));
@@ -4647,10 +4657,10 @@
     }
     break;
 
-  case 193:
+  case 195:
 
 /* Line 690 of lalr1.cc  */
-#line 2311 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2331 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)),
                                            static_cast<AnnotationListParsenode*>((yysemantic_stack_[(3) - (1)].node)));
@@ -4659,10 +4669,10 @@
     }
     break;
 
-  case 194:
+  case 196:
 
 /* Line 690 of lalr1.cc  */
-#line 2322 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2342 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)),
@@ -4673,10 +4683,10 @@
     }
     break;
 
-  case 195:
+  case 197:
 
 /* Line 690 of lalr1.cc  */
-#line 2331 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2351 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4687,10 +4697,10 @@
     }
     break;
 
-  case 196:
+  case 198:
 
 /* Line 690 of lalr1.cc  */
-#line 2340 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2360 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4701,10 +4711,10 @@
     }
     break;
 
-  case 197:
+  case 199:
 
 /* Line 690 of lalr1.cc  */
-#line 2349 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2369 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4715,37 +4725,37 @@
     }
     break;
 
-  case 198:
+  case 200:
 
 /* Line 690 of lalr1.cc  */
-#line 2362 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2382 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new AssignExpr(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)), (yysemantic_stack_[(5) - (4)].expr));
     }
     break;
 
-  case 199:
+  case 201:
 
 /* Line 690 of lalr1.cc  */
-#line 2370 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2390 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ApplyExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr));
     }
     break;
 
-  case 200:
+  case 202:
 
 /* Line 690 of lalr1.cc  */
-#line 2378 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2398 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ExitExpr(LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr));
     }
     break;
 
-  case 201:
+  case 203:
 
 /* Line 690 of lalr1.cc  */
-#line 2386 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2406 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* bb = dynamic_cast<BlockBody *>((yysemantic_stack_[(5) - (5)].expr));
       if (bb == NULL)
@@ -4758,28 +4768,28 @@
     }
     break;
 
-  case 202:
+  case 204:
 
 /* Line 690 of lalr1.cc  */
-#line 2401 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2421 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement(LOC((yyloc)), FlowCtlStatement::BREAK);
     }
     break;
 
-  case 203:
+  case 205:
 
 /* Line 690 of lalr1.cc  */
-#line 2406 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2426 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement( LOC((yyloc)), FlowCtlStatement::CONTINUE );
     }
     break;
 
-  case 204:
+  case 206:
 
 /* Line 690 of lalr1.cc  */
-#line 2414 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2434 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ReturnExpr* re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4791,10 +4801,10 @@
     }
     break;
 
-  case 205:
+  case 207:
 
 /* Line 690 of lalr1.cc  */
-#line 2428 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2448 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* retExpr = (yysemantic_stack_[(2) - (2)].expr);
 
@@ -4809,10 +4819,10 @@
     }
     break;
 
-  case 206:
+  case 208:
 
 /* Line 690 of lalr1.cc  */
-#line 2445 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2465 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* thenExpr = (yysemantic_stack_[(8) - (6)].expr);
       exprnode* elseExpr = (yysemantic_stack_[(8) - (8)].expr);
@@ -4835,19 +4845,19 @@
     }
     break;
 
-  case 207:
+  case 209:
 
 /* Line 690 of lalr1.cc  */
-#line 2470 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2490 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new TryExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
-  case 208:
+  case 210:
 
 /* Line 690 of lalr1.cc  */
-#line 2478 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2498 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CatchListExpr* cle = new CatchListExpr( LOC((yyloc)) );
       cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -4855,10 +4865,10 @@
     }
     break;
 
-  case 209:
+  case 211:
 
 /* Line 690 of lalr1.cc  */
-#line 2485 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2505 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
       if ( cle )
@@ -4867,29 +4877,38 @@
     }
     break;
 
-  case 210:
-
-/* Line 690 of lalr1.cc  */
-#line 2496 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_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 211:
-
-/* Line 690 of lalr1.cc  */
-#line 2506 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
   case 212:
 
 /* Line 690 of lalr1.cc  */
-#line 2511 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2516 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 213:
+
+/* Line 690 of lalr1.cc  */
+#line 2525 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = new BlockBody(LOC((yyloc)));
+    }
+    break;
+
+  case 214:
+
+/* Line 690 of lalr1.cc  */
+#line 2532 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 215:
+
+/* Line 690 of lalr1.cc  */
+#line 2537 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Expr* expr = dynamic_cast<Expr*>((yysemantic_stack_[(3) - (1)].expr));
       if ( !expr )
@@ -4902,10 +4921,10 @@
     }
     break;
 
-  case 213:
+  case 216:
 
 /* Line 690 of lalr1.cc  */
-#line 2524 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2550 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (1)].expr); // to prevent the Bison warning
       (yyval.expr) = (yysemantic_stack_[(3) - (3)].expr); // to prevent the Bison warning
@@ -4920,10 +4939,10 @@
     }
     break;
 
-  case 232:
+  case 235:
 
 /* Line 690 of lalr1.cc  */
-#line 2571 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2597 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ReturnExpr *re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4935,64 +4954,64 @@
     }
     break;
 
-  case 233:
+  case 236:
 
 /* Line 690 of lalr1.cc  */
-#line 2585 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2611 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ReturnExpr( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr) );
     }
     break;
 
-  case 234:
+  case 237:
 
 /* Line 690 of lalr1.cc  */
-#line 2593 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2619 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_sliding;
     }
     break;
 
-  case 235:
+  case 238:
 
 /* Line 690 of lalr1.cc  */
-#line 2598 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2624 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_tumbling;
     }
     break;
 
-  case 236:
+  case 239:
 
 /* Line 690 of lalr1.cc  */
-#line 2606 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2632 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_start;
     }
     break;
 
-  case 237:
+  case 240:
 
 /* Line 690 of lalr1.cc  */
-#line 2611 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2637 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_end;
     }
     break;
 
-  case 238:
+  case 241:
 
 /* Line 690 of lalr1.cc  */
-#line 2616 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2642 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
     (yyval.strval) = parser::the_only_end;
   }
     break;
 
-  case 239:
+  case 242:
 
 /* Line 690 of lalr1.cc  */
-#line 2624 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2650 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             dynamic_cast<WindowVars*>((yysemantic_stack_[(4) - (2)].node)),
@@ -5002,10 +5021,10 @@
     }
     break;
 
-  case 240:
+  case 243:
 
 /* Line 690 of lalr1.cc  */
-#line 2633 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2659 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             NULL,
@@ -5015,10 +5034,10 @@
     }
     break;
 
-  case 241:
+  case 244:
 
 /* Line 690 of lalr1.cc  */
-#line 2645 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2671 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(5) - (2)].strval) == parser::the_tumbling ?
@@ -5030,10 +5049,10 @@
     }
     break;
 
-  case 242:
+  case 245:
 
 /* Line 690 of lalr1.cc  */
-#line 2655 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2681 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(4) - (2)].strval) == parser::the_tumbling ?
@@ -5044,19 +5063,19 @@
     }
     break;
 
-  case 243:
+  case 246:
 
 /* Line 690 of lalr1.cc  */
-#line 2668 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2694 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CountClause(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
-  case 252:
+  case 255:
 
 /* Line 690 of lalr1.cc  */
-#line 2692 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2718 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       FLWORClauseList *fcl = new FLWORClauseList( LOC((yyloc)) );
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5064,10 +5083,10 @@
     }
     break;
 
-  case 253:
+  case 256:
 
 /* Line 690 of lalr1.cc  */
-#line 2699 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2725 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       FLWORClauseList *fcl = dynamic_cast<FLWORClauseList*>((yysemantic_stack_[(2) - (1)].node));
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -5075,19 +5094,19 @@
     }
     break;
 
-  case 254:
+  case 257:
 
 /* Line 690 of lalr1.cc  */
-#line 2709 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2735 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ForClause(LOC((yyloc)), dynamic_cast<VarInDeclList*>((yysemantic_stack_[(3) - (3)].node)));
     }
     break;
 
-  case 255:
+  case 258:
 
 /* Line 690 of lalr1.cc  */
-#line 2715 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2741 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected qualified name \""
@@ -5097,10 +5116,10 @@
     }
     break;
 
-  case 256:
+  case 259:
 
 /* Line 690 of lalr1.cc  */
-#line 2724 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2750 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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
@@ -5108,10 +5127,19 @@
     }
     break;
 
-  case 257:
-
-/* Line 690 of lalr1.cc  */
-#line 2734 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 261:
+
+/* Line 690 of lalr1.cc  */
+#line 2760 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      // this adds on shift-reduce conflict (probably with FTRange expression)
+    }
+    break;
+
+  case 262:
+
+/* Line 690 of lalr1.cc  */
+#line 2768 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VarInDeclList* vdl = new VarInDeclList( LOC((yyloc)) );
       vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5119,10 +5147,10 @@
     }
     break;
 
-  case 258:
+  case 263:
 
 /* Line 690 of lalr1.cc  */
-#line 2741 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2775 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ( VarInDeclList* vdl = dynamic_cast<VarInDeclList*>((yysemantic_stack_[(4) - (1)].node)) )
         vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
@@ -5130,10 +5158,10 @@
     }
     break;
 
-  case 259:
+  case 264:
 
 /* Line 690 of lalr1.cc  */
-#line 2749 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2783 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (3)]), "syntax error, unexpected QName \""
@@ -5143,10 +5171,10 @@
     }
     break;
 
-  case 260:
+  case 265:
 
 /* Line 690 of lalr1.cc  */
-#line 2761 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2795 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)),
@@ -5158,10 +5186,10 @@
     }
     break;
 
-  case 261:
+  case 266:
 
 /* Line 690 of lalr1.cc  */
-#line 2771 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2805 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5173,10 +5201,10 @@
     }
     break;
 
-  case 262:
+  case 267:
 
 /* Line 690 of lalr1.cc  */
-#line 2781 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2815 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5188,10 +5216,10 @@
     }
     break;
 
-  case 263:
+  case 268:
 
 /* Line 690 of lalr1.cc  */
-#line 2791 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2825 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5203,10 +5231,10 @@
     }
     break;
 
-  case 264:
+  case 269:
 
 /* Line 690 of lalr1.cc  */
-#line 2801 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2835 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5218,10 +5246,10 @@
     }
     break;
 
-  case 265:
+  case 270:
 
 /* Line 690 of lalr1.cc  */
-#line 2811 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2845 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5233,10 +5261,10 @@
     }
     break;
 
-  case 266:
+  case 271:
 
 /* Line 690 of lalr1.cc  */
-#line 2821 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2855 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5248,10 +5276,10 @@
     }
     break;
 
-  case 267:
+  case 272:
 
 /* Line 690 of lalr1.cc  */
-#line 2831 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2865 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(7) - (1)].expr)),
@@ -5263,10 +5291,10 @@
     }
     break;
 
-  case 268:
+  case 273:
 
 /* Line 690 of lalr1.cc  */
-#line 2842 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2876 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5277,10 +5305,10 @@
     }
     break;
 
-  case 269:
+  case 274:
 
 /* Line 690 of lalr1.cc  */
-#line 2851 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2885 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5292,10 +5320,10 @@
     }
     break;
 
-  case 270:
+  case 275:
 
 /* Line 690 of lalr1.cc  */
-#line 2861 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5307,10 +5335,10 @@
     }
     break;
 
-  case 271:
+  case 276:
 
 /* Line 690 of lalr1.cc  */
-#line 2871 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2905 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5322,37 +5350,37 @@
     }
     break;
 
-  case 272:
+  case 277:
 
 /* Line 690 of lalr1.cc  */
-#line 2887 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2921 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new PositionalVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
-  case 273:
+  case 278:
 
 /* Line 690 of lalr1.cc  */
-#line 2896 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FTScoreVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
-  case 274:
+  case 279:
 
 /* Line 690 of lalr1.cc  */
-#line 2905 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2939 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new LetClause( LOC((yyloc)), dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(2) - (2)].node)) );
         }
     break;
 
-  case 275:
+  case 280:
 
 /* Line 690 of lalr1.cc  */
-#line 2913 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2947 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             VarGetsDeclList *vgdl = new VarGetsDeclList( LOC((yyloc)) );
             vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5360,10 +5388,10 @@
         }
     break;
 
-  case 276:
+  case 281:
 
 /* Line 690 of lalr1.cc  */
-#line 2919 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2953 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             if( VarGetsDeclList *vgdl = dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(3) - (1)].node)) )
                 vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -5371,10 +5399,10 @@
         }
     break;
 
-  case 277:
+  case 282:
 
 /* Line 690 of lalr1.cc  */
-#line 2931 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2965 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5384,10 +5412,10 @@
     }
     break;
 
-  case 278:
+  case 283:
 
 /* Line 690 of lalr1.cc  */
-#line 2939 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2973 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5397,10 +5425,10 @@
     }
     break;
 
-  case 279:
+  case 284:
 
 /* Line 690 of lalr1.cc  */
-#line 2949 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2983 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            dynamic_cast<FTScoreVar*>((yysemantic_stack_[(3) - (1)].node))->get_var_name(),
@@ -5410,10 +5438,10 @@
      }
     break;
 
-  case 280:
+  case 285:
 
 /* Line 690 of lalr1.cc  */
-#line 2957 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 2991 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5423,10 +5451,10 @@
     }
     break;
 
-  case 281:
+  case 286:
 
 /* Line 690 of lalr1.cc  */
-#line 2969 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3003 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5434,10 +5462,10 @@
     }
     break;
 
-  case 282:
+  case 287:
 
 /* Line 690 of lalr1.cc  */
-#line 2975 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3009 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5446,93 +5474,93 @@
     }
     break;
 
-  case 284:
+  case 289:
 
 /* Line 690 of lalr1.cc  */
-#line 2988 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3022 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL);
     }
     break;
 
-  case 285:
+  case 290:
 
 /* Line 690 of lalr1.cc  */
-#line 2992 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3026 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       dynamic_cast<WindowVars *>((yyval.node))->set_curr(static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)));
     }
     break;
 
-  case 286:
+  case 291:
 
 /* Line 690 of lalr1.cc  */
-#line 3000 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3034 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), dynamic_cast<PositionalVar*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL, NULL);
     }
     break;
 
-  case 287:
+  case 292:
 
 /* Line 690 of lalr1.cc  */
-#line 3004 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3038 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       dynamic_cast<WindowVars *>((yyval.node))->set_posvar(dynamic_cast<PositionalVar*>((yysemantic_stack_[(2) - (1)].node)));
     }
     break;
 
-  case 289:
+  case 294:
 
 /* Line 690 of lalr1.cc  */
-#line 3013 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3047 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 290:
+  case 295:
 
 /* Line 690 of lalr1.cc  */
-#line 3017 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3051 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
-  case 291:
+  case 296:
 
 /* Line 690 of lalr1.cc  */
-#line 3021 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3055 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL);
     }
     break;
 
-  case 292:
+  case 297:
 
 /* Line 690 of lalr1.cc  */
-#line 3031 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3065 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WhereClause(LOC ((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
     break;
 
-  case 293:
+  case 298:
 
 /* Line 690 of lalr1.cc  */
-#line 3039 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3073 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupByClause(LOC((yyloc)), dynamic_cast<GroupSpecList*>((yysemantic_stack_[(3) - (3)].node)));
     }
     break;
 
-  case 294:
+  case 299:
 
 /* Line 690 of lalr1.cc  */
-#line 3046 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3080 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       GroupSpecList* gsl = new GroupSpecList(LOC((yyloc)));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5540,10 +5568,10 @@
     }
     break;
 
-  case 295:
+  case 300:
 
 /* Line 690 of lalr1.cc  */
-#line 3052 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3086 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       GroupSpecList* gsl = static_cast<GroupSpecList*>((yysemantic_stack_[(3) - (1)].node));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(3) - (3)].node)));
@@ -5551,28 +5579,28 @@
     }
     break;
 
-  case 296:
+  case 301:
 
 /* Line 690 of lalr1.cc  */
-#line 3062 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3096 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL, NULL);
     }
     break;
 
-  case 297:
+  case 302:
 
 /* Line 690 of lalr1.cc  */
-#line 3066 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3100 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 298:
+  case 303:
 
 /* Line 690 of lalr1.cc  */
-#line 3070 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3104 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5582,10 +5610,10 @@
     }
     break;
 
-  case 299:
+  case 304:
 
 /* Line 690 of lalr1.cc  */
-#line 3078 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3112 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5595,10 +5623,10 @@
     }
     break;
 
-  case 300:
+  case 305:
 
 /* Line 690 of lalr1.cc  */
-#line 3086 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3120 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5608,10 +5636,10 @@
     }
     break;
 
-  case 301:
+  case 306:
 
 /* Line 690 of lalr1.cc  */
-#line 3094 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3128 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -5621,19 +5649,19 @@
     }
     break;
 
-  case 302:
+  case 307:
 
 /* Line 690 of lalr1.cc  */
-#line 3106 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3140 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
-  case 303:
+  case 308:
 
 /* Line 690 of lalr1.cc  */
-#line 3114 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3148 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (3)].node))
@@ -5641,10 +5669,10 @@
         }
     break;
 
-  case 304:
+  case 309:
 
 /* Line 690 of lalr1.cc  */
-#line 3120 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3154 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(4) - (4)].node)), true
@@ -5652,10 +5680,10 @@
         }
     break;
 
-  case 305:
+  case 310:
 
 /* Line 690 of lalr1.cc  */
-#line 3130 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3164 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             OrderSpecList *osl = new OrderSpecList( LOC((yyloc)) );
             osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5663,10 +5691,10 @@
         }
     break;
 
-  case 306:
+  case 311:
 
 /* Line 690 of lalr1.cc  */
-#line 3136 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3170 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             if ( OrderSpecList* osl = dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (1)].node)) )
                 osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -5674,19 +5702,19 @@
         }
     break;
 
-  case 307:
+  case 312:
 
 /* Line 690 of lalr1.cc  */
-#line 3146 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3180 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderSpec( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL );
         }
     break;
 
-  case 308:
+  case 313:
 
 /* Line 690 of lalr1.cc  */
-#line 3150 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3184 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderSpec(
                 LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<OrderModifierPN*>((yysemantic_stack_[(2) - (2)].node))
@@ -5694,10 +5722,10 @@
         }
     break;
 
-  case 309:
+  case 314:
 
 /* Line 690 of lalr1.cc  */
-#line 3160 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3194 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL
@@ -5705,10 +5733,10 @@
         }
     break;
 
-  case 310:
+  case 315:
 
 /* Line 690 of lalr1.cc  */
-#line 3166 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3200 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -5716,10 +5744,10 @@
         }
     break;
 
-  case 311:
+  case 316:
 
 /* Line 690 of lalr1.cc  */
-#line 3172 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3206 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, NULL, dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(1) - (1)].node))
@@ -5727,10 +5755,10 @@
         }
     break;
 
-  case 312:
+  case 317:
 
 /* Line 690 of lalr1.cc  */
-#line 3178 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3212 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5741,10 +5769,10 @@
         }
     break;
 
-  case 313:
+  case 318:
 
 /* Line 690 of lalr1.cc  */
-#line 3187 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3221 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5755,10 +5783,10 @@
         }
     break;
 
-  case 314:
+  case 319:
 
 /* Line 690 of lalr1.cc  */
-#line 3196 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3230 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5769,10 +5797,10 @@
         }
     break;
 
-  case 315:
+  case 320:
 
 /* Line 690 of lalr1.cc  */
-#line 3205 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3239 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5783,28 +5811,28 @@
         }
     break;
 
-  case 316:
+  case 321:
 
 /* Line 690 of lalr1.cc  */
-#line 3218 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3252 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_ascending );
         }
     break;
 
-  case 317:
+  case 322:
 
 /* Line 690 of lalr1.cc  */
-#line 3222 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3256 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_descending );
         }
     break;
 
-  case 318:
+  case 323:
 
 /* Line 690 of lalr1.cc  */
-#line 3230 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3264 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_greatest
@@ -5812,10 +5840,10 @@
         }
     break;
 
-  case 319:
+  case 324:
 
 /* Line 690 of lalr1.cc  */
-#line 3236 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3270 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_least
@@ -5823,19 +5851,19 @@
         }
     break;
 
-  case 320:
+  case 325:
 
 /* Line 690 of lalr1.cc  */
-#line 3246 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3280 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
-  case 321:
+  case 326:
 
 /* Line 690 of lalr1.cc  */
-#line 3254 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3288 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5846,10 +5874,10 @@
         }
     break;
 
-  case 322:
+  case 327:
 
 /* Line 690 of lalr1.cc  */
-#line 3263 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3297 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5860,10 +5888,10 @@
         }
     break;
 
-  case 323:
+  case 328:
 
 /* Line 690 of lalr1.cc  */
-#line 3276 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3310 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QVarInDeclList *qvidl = new QVarInDeclList( LOC((yyloc)) );
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5872,10 +5900,10 @@
     }
     break;
 
-  case 324:
+  case 329:
 
 /* Line 690 of lalr1.cc  */
-#line 3283 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3317 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QVarInDeclList *qvidl = dynamic_cast<QVarInDeclList*>((yysemantic_stack_[(4) - (1)].node));
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
@@ -5883,19 +5911,19 @@
     }
     break;
 
-  case 325:
+  case 330:
 
 /* Line 690 of lalr1.cc  */
-#line 3295 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3329 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
-  case 326:
+  case 331:
 
 /* Line 690 of lalr1.cc  */
-#line 3299 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3333 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5904,252 +5932,252 @@
     }
     break;
 
-  case 327:
-
-/* Line 690 of lalr1.cc  */
-#line 3311 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_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 328:
-
-/* Line 690 of lalr1.cc  */
-#line 3318 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
-      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
-      (yyval.node) = scc_list_p;
-    }
-    break;
-
-  case 329:
-
-/* Line 690 of lalr1.cc  */
-#line 3324 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_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)));
-      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
-    }
-    break;
-
-  case 330:
-
-/* Line 690 of lalr1.cc  */
-#line 3333 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
-    }
-    break;
-
-  case 331:
-
-/* Line 690 of lalr1.cc  */
-#line 3340 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      SwitchCaseOperandList* sco_list_p = new SwitchCaseOperandList(LOC((yyloc)));
-      sco_list_p->push_back((yysemantic_stack_[(2) - (2)].expr));
-      (yyval.node) = sco_list_p;
-    }
-    break;
-
   case 332:
 
 /* Line 690 of lalr1.cc  */
-#line 3346 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3345 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      SwitchCaseOperandList* sco_list_p = static_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node));
-      sco_list_p->push_back((yysemantic_stack_[(3) - (3)].expr));
-      (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
+      (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 333:
 
 /* Line 690 of lalr1.cc  */
-#line 3357 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3352 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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));
+      SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
+      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
+      (yyval.node) = scc_list_p;
     }
     break;
 
   case 334:
 
 /* Line 690 of lalr1.cc  */
-#line 3364 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3358 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
-      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
-      (yyval.node) = scc_list_p;
+      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)));
+      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
     }
     break;
 
   case 335:
 
 /* Line 690 of lalr1.cc  */
-#line 3370 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3367 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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)));
-      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+      (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
   case 336:
 
 /* Line 690 of lalr1.cc  */
-#line 3379 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3374 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
+      SwitchCaseOperandList* sco_list_p = new SwitchCaseOperandList(LOC((yyloc)));
+      sco_list_p->push_back((yysemantic_stack_[(2) - (2)].expr));
+      (yyval.node) = sco_list_p;
     }
     break;
 
   case 337:
 
 /* Line 690 of lalr1.cc  */
-#line 3388 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3380 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
-                              (yysemantic_stack_[(8) - (3)].expr),
-                              static_cast<CaseClauseList*>((yysemantic_stack_[(8) - (5)].node)),
-                              (yysemantic_stack_[(8) - (8)].expr));
+      SwitchCaseOperandList* sco_list_p = static_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node));
+      sco_list_p->push_back((yysemantic_stack_[(3) - (3)].expr));
+      (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
     }
     break;
 
   case 338:
 
 /* Line 690 of lalr1.cc  */
-#line 3395 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3391 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
-                              (yysemantic_stack_[(10) - (3)].expr),
-                              static_cast<CaseClauseList*>((yysemantic_stack_[(10) - (5)].node)),
-                              static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr)),
-                              (yysemantic_stack_[(10) - (10)].expr));
+      (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 339:
 
 /* Line 690 of lalr1.cc  */
-#line 3406 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3398 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
-                              (yysemantic_stack_[(8) - (3)].expr),
-                              static_cast<CaseClauseList*>((yysemantic_stack_[(8) - (5)].node)),
-                              (yysemantic_stack_[(8) - (8)].expr));
+      SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
+      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
+      (yyval.node) = scc_list_p;
     }
     break;
 
   case 340:
 
 /* Line 690 of lalr1.cc  */
-#line 3413 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3404 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
-                              (yysemantic_stack_[(10) - (3)].expr),
-                              static_cast<CaseClauseList*>((yysemantic_stack_[(10) - (5)].node)),
-                              static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr)),
-                              (yysemantic_stack_[(10) - (10)].expr));
+      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)));
+      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
     }
     break;
 
   case 341:
 
 /* Line 690 of lalr1.cc  */
-#line 3425 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3413 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
-      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
-      (yyval.node) = cc_list_p;
+      (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
   case 342:
 
 /* Line 690 of lalr1.cc  */
-#line 3431 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3422 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
-      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
-      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+      (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
+                              (yysemantic_stack_[(8) - (3)].expr),
+                              static_cast<CaseClauseList*>((yysemantic_stack_[(8) - (5)].node)),
+                              (yysemantic_stack_[(8) - (8)].expr));
     }
     break;
 
   case 343:
 
 /* Line 690 of lalr1.cc  */
-#line 3443 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3429 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new CaseClause(LOC ((yyloc)),
-                          static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
-                          (yysemantic_stack_[(4) - (4)].expr));
+      (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
+                              (yysemantic_stack_[(10) - (3)].expr),
+                              static_cast<CaseClauseList*>((yysemantic_stack_[(10) - (5)].node)),
+                              static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr)),
+                              (yysemantic_stack_[(10) - (10)].expr));
     }
     break;
 
   case 344:
 
 /* Line 690 of lalr1.cc  */
-#line 3449 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3440 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new CaseClause(LOC ((yyloc)),
-                          static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
-                          static_cast<SequenceTypeList*>((yysemantic_stack_[(7) - (5)].node)),
-                          (yysemantic_stack_[(7) - (7)].expr));
-     }
+      (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
+                              (yysemantic_stack_[(8) - (3)].expr),
+                              static_cast<CaseClauseList*>((yysemantic_stack_[(8) - (5)].node)),
+                              (yysemantic_stack_[(8) - (8)].expr));
+    }
     break;
 
   case 345:
 
 /* Line 690 of lalr1.cc  */
-#line 3460 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3447 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
-      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
-      (yyval.node) = cc_list_p;
+      (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
+                              (yysemantic_stack_[(10) - (3)].expr),
+                              static_cast<CaseClauseList*>((yysemantic_stack_[(10) - (5)].node)),
+                              static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr)),
+                              (yysemantic_stack_[(10) - (10)].expr));
     }
     break;
 
   case 346:
 
 /* Line 690 of lalr1.cc  */
-#line 3466 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3459 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      CaseClauseList* cc_list_p = static_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
-      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
-      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+      CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
+      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
+      (yyval.node) = cc_list_p;
     }
     break;
 
   case 347:
 
 /* Line 690 of lalr1.cc  */
-#line 3477 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3465 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new CaseClause(LOC ((yyloc)),
-                          static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
-                          (yysemantic_stack_[(4) - (4)].expr));
+      CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
+      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
+      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
     }
     break;
 
   case 348:
 
 /* Line 690 of lalr1.cc  */
-#line 3483 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3477 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
-                          static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
-                          static_cast<SequenceTypeList*>((yysemantic_stack_[(7) - (5)].node)),
-                          (yysemantic_stack_[(7) - (7)].expr));
-     }
+                          static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
+                          (yysemantic_stack_[(4) - (4)].expr));
+    }
     break;
 
   case 349:
 
 /* Line 690 of lalr1.cc  */
-#line 3494 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3483 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new CaseClause(LOC ((yyloc)),
+                          static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
+                          static_cast<SequenceTypeList*>((yysemantic_stack_[(7) - (5)].node)),
+                          (yysemantic_stack_[(7) - (7)].expr));
+     }
+    break;
+
+  case 350:
+
+/* Line 690 of lalr1.cc  */
+#line 3494 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
+      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
+      (yyval.node) = cc_list_p;
+    }
+    break;
+
+  case 351:
+
+/* Line 690 of lalr1.cc  */
+#line 3500 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      CaseClauseList* cc_list_p = static_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
+      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
+      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+    }
+    break;
+
+  case 352:
+
+/* Line 690 of lalr1.cc  */
+#line 3511 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new CaseClause(LOC ((yyloc)),
+                          static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
+                          (yysemantic_stack_[(4) - (4)].expr));
+    }
+    break;
+
+  case 353:
+
+/* Line 690 of lalr1.cc  */
+#line 3517 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new CaseClause(LOC ((yyloc)),
+                          static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
+                          static_cast<SequenceTypeList*>((yysemantic_stack_[(7) - (5)].node)),
+                          (yysemantic_stack_[(7) - (7)].expr));
+     }
+    break;
+
+  case 354:
+
+/* Line 690 of lalr1.cc  */
+#line 3528 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       SequenceTypeList* seqList = new SequenceTypeList(LOC((yyloc)));
       seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6157,10 +6185,10 @@
     }
     break;
 
-  case 350:
+  case 355:
 
 /* Line 690 of lalr1.cc  */
-#line 3500 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3534 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       SequenceTypeList* seqList = static_cast<SequenceTypeList*>((yysemantic_stack_[(3) - (1)].node));
       seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(3) - (3)].node)));
@@ -6168,64 +6196,64 @@
     }
     break;
 
-  case 351:
+  case 356:
 
 /* Line 690 of lalr1.cc  */
-#line 3511 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3545 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 352:
+  case 357:
 
 /* Line 690 of lalr1.cc  */
-#line 3520 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3554 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
-  case 353:
+  case 358:
 
 /* Line 690 of lalr1.cc  */
-#line 3524 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3558 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new OrExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
     }
     break;
 
-  case 354:
+  case 359:
 
 /* Line 690 of lalr1.cc  */
-#line 3533 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3567 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
-  case 355:
+  case 360:
 
 /* Line 690 of lalr1.cc  */
-#line 3537 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3571 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AndExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 356:
+  case 361:
 
 /* Line 690 of lalr1.cc  */
-#line 3545 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3579 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
-  case 357:
+  case 362:
 
 /* Line 690 of lalr1.cc  */
-#line 3549 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3583 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             /*  ::=  "eq" | "ne" | "lt" | "le" | "gt" | "ge" */
             (yyval.expr) = new ComparisonExpr(
@@ -6237,10 +6265,10 @@
         }
     break;
 
-  case 358:
+  case 363:
 
 /* Line 690 of lalr1.cc  */
-#line 3559 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3593 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             /*  ::=  "is" | "<<" | ">>" */
             (yyval.expr) = new ComparisonExpr(
@@ -6249,10 +6277,10 @@
         }
     break;
 
-  case 359:
+  case 364:
 
 /* Line 690 of lalr1.cc  */
-#line 3566 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3600 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6263,10 +6291,10 @@
         }
     break;
 
-  case 360:
+  case 365:
 
 /* Line 690 of lalr1.cc  */
-#line 3575 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3609 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6277,20 +6305,20 @@
         }
     break;
 
-  case 361:
+  case 366:
 
 /* Line 690 of lalr1.cc  */
-#line 3584 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3618 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             /* this call is needed */
             driver.lexer->interpretAsLessThan();
         }
     break;
 
-  case 362:
+  case 367:
 
 /* Line 690 of lalr1.cc  */
-#line 3589 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3623 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6301,10 +6329,10 @@
         }
     break;
 
-  case 363:
+  case 368:
 
 /* Line 690 of lalr1.cc  */
-#line 3598 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3632 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6315,10 +6343,10 @@
         }
     break;
 
-  case 364:
+  case 369:
 
 /* Line 690 of lalr1.cc  */
-#line 3607 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3641 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6329,10 +6357,10 @@
         }
     break;
 
-  case 365:
+  case 370:
 
 /* Line 690 of lalr1.cc  */
-#line 3616 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3650 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6343,19 +6371,19 @@
         }
     break;
 
-  case 366:
+  case 371:
 
 /* Line 690 of lalr1.cc  */
-#line 3629 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3663 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
-  case 367:
+  case 372:
 
 /* Line 690 of lalr1.cc  */
-#line 3633 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3667 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new FTContainsExpr(
                 LOC((yyloc)),
@@ -6366,91 +6394,46 @@
         }
     break;
 
-  case 368:
-
-/* Line 690 of lalr1.cc  */
-#line 3645 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 369:
-
-/* Line 690 of lalr1.cc  */
-#line 3649 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = new StringConcatExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
-        }
-    break;
-
-  case 370:
-
-/* Line 690 of lalr1.cc  */
-#line 3656 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 371:
-
-/* Line 690 of lalr1.cc  */
-#line 3660 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 372:
-
-/* Line 690 of lalr1.cc  */
-#line 3667 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 373:
 
 /* Line 690 of lalr1.cc  */
-#line 3671 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3679 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new RangeExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 374:
 
 /* Line 690 of lalr1.cc  */
-#line 3680 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3683 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+          (yyval.expr) = new StringConcatExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
         }
     break;
 
   case 375:
 
 /* Line 690 of lalr1.cc  */
-#line 3684 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3690 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_plus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.node) = NULL;
         }
     break;
 
   case 376:
 
 /* Line 690 of lalr1.cc  */
-#line 3688 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3694 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_minus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 377:
 
 /* Line 690 of lalr1.cc  */
-#line 3696 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3701 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6459,51 +6442,43 @@
   case 378:
 
 /* Line 690 of lalr1.cc  */
-#line 3700 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3705 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new MultiplicativeExpr(
-                LOC((yyloc)), ParseConstants::op_mul, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
-            );
+            (yyval.expr) = new RangeExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 379:
 
 /* Line 690 of lalr1.cc  */
-#line 3706 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3714 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new MultiplicativeExpr(
-                LOC((yyloc)), ParseConstants::op_div, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
-            );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 380:
 
 /* Line 690 of lalr1.cc  */
-#line 3712 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3718 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new MultiplicativeExpr(
-                LOC((yyloc)), ParseConstants::op_idiv, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
-            );
+            (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_plus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 381:
 
 /* Line 690 of lalr1.cc  */
-#line 3718 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3722 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new MultiplicativeExpr(
-                LOC((yyloc)), ParseConstants::op_mod, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
-            );
+            (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_minus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 382:
 
 /* Line 690 of lalr1.cc  */
-#line 3728 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3730 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6512,37 +6487,43 @@
   case 383:
 
 /* Line 690 of lalr1.cc  */
-#line 3732 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3734 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = new MultiplicativeExpr(
+                LOC((yyloc)), ParseConstants::op_mul, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+            );
         }
     break;
 
   case 384:
 
 /* Line 690 of lalr1.cc  */
-#line 3736 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3740 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = new MultiplicativeExpr(
+                LOC((yyloc)), ParseConstants::op_div, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+            );
         }
     break;
 
   case 385:
 
 /* Line 690 of lalr1.cc  */
-#line 3744 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3746 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new MultiplicativeExpr(
+                LOC((yyloc)), ParseConstants::op_idiv, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+            );
         }
     break;
 
   case 386:
 
 /* Line 690 of lalr1.cc  */
-#line 3748 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3752 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new IntersectExceptExpr(
-                LOC((yyloc)), ParseConstants::op_intersect, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+            (yyval.expr) = new MultiplicativeExpr(
+                LOC((yyloc)), ParseConstants::op_mod, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
             );
         }
     break;
@@ -6550,38 +6531,34 @@
   case 387:
 
 /* Line 690 of lalr1.cc  */
-#line 3754 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3762 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new IntersectExceptExpr(
-                LOC((yyloc)), ParseConstants::op_except, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
-            );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 388:
 
 /* Line 690 of lalr1.cc  */
-#line 3764 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3766 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 389:
 
 /* Line 690 of lalr1.cc  */
-#line 3768 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3770 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InstanceofExpr(
-                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
-            );
+            (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 390:
 
 /* Line 690 of lalr1.cc  */
-#line 3778 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3778 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6590,10 +6567,10 @@
   case 391:
 
 /* Line 690 of lalr1.cc  */
-#line 3782 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3782 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new TreatExpr(
-                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
+            (yyval.expr) = new IntersectExceptExpr(
+                LOC((yyloc)), ParseConstants::op_intersect, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
             );
         }
     break;
@@ -6601,274 +6578,325 @@
   case 392:
 
 /* Line 690 of lalr1.cc  */
-#line 3792 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3788 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new IntersectExceptExpr(
+                LOC((yyloc)), ParseConstants::op_except, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+            );
         }
     break;
 
   case 393:
 
 /* Line 690 of lalr1.cc  */
-#line 3796 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3798 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new CastableExpr(
-                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
-            );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 394:
 
 /* Line 690 of lalr1.cc  */
-#line 3806 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3802 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new InstanceofExpr(
+                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
+            );
         }
     break;
 
   case 395:
 
 /* Line 690 of lalr1.cc  */
-#line 3810 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3812 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new CastExpr(
-                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
-            );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 396:
 
 /* Line 690 of lalr1.cc  */
-#line 3820 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3816 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(1) - (1)].node)), false);
-    }
+            (yyval.expr) = new TreatExpr(
+                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
+            );
+        }
     break;
 
   case 397:
 
 /* Line 690 of lalr1.cc  */
-#line 3824 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3826 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(2) - (1)].node)), true);
-    }
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
     break;
 
   case 398:
 
 /* Line 690 of lalr1.cc  */
-#line 3833 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3830 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new CastableExpr(
+                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
+            );
         }
     break;
 
   case 399:
 
 /* Line 690 of lalr1.cc  */
-#line 3837 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3840 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new UnaryExpr( LOC((yyloc)), dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].expr) );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 400:
 
 /* Line 690 of lalr1.cc  */
-#line 3845 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3844 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SignList( LOC((yyloc)), true );
+            (yyval.expr) = new CastExpr(
+                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
+            );
         }
     break;
 
   case 401:
 
 /* Line 690 of lalr1.cc  */
-#line 3849 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3854 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SignList( LOC((yyloc)), false );
-        }
+      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(1) - (1)].node)), false);
+    }
     break;
 
   case 402:
 
 /* Line 690 of lalr1.cc  */
-#line 3853 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3858 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
-        }
+      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(2) - (1)].node)), true);
+    }
     break;
 
   case 403:
 
 /* Line 690 of lalr1.cc  */
-#line 3857 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3867 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            if ( SignList *sl = dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)) )
-                sl->negate();
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 404:
 
 /* Line 690 of lalr1.cc  */
-#line 3867 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3871 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new UnaryExpr( LOC((yyloc)), dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
   case 405:
 
 /* Line 690 of lalr1.cc  */
-#line 3871 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3879 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.node) = new SignList( LOC((yyloc)), true );
         }
     break;
 
   case 406:
 
 /* Line 690 of lalr1.cc  */
-#line 3875 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3883 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.node) = new SignList( LOC((yyloc)), false );
         }
     break;
 
   case 407:
 
 /* Line 690 of lalr1.cc  */
-#line 3882 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3887 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+        }
+    break;
+
+  case 408:
+
+/* Line 690 of lalr1.cc  */
+#line 3891 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            if ( SignList *sl = dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)) )
+                sl->negate();
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+        }
+    break;
+
+  case 409:
+
+/* Line 690 of lalr1.cc  */
+#line 3901 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 410:
+
+/* Line 690 of lalr1.cc  */
+#line 3905 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 411:
+
+/* Line 690 of lalr1.cc  */
+#line 3909 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 412:
+
+/* Line 690 of lalr1.cc  */
+#line 3916 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
       }
     break;
 
-  case 408:
+  case 413:
 
 /* Line 690 of lalr1.cc  */
-#line 3887 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3921 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.expr) = new SimpleMapExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
       }
     break;
 
-  case 409:
+  case 414:
 
 /* Line 690 of lalr1.cc  */
-#line 3895 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_eq );
         }
     break;
 
-  case 410:
+  case 415:
 
 /* Line 690 of lalr1.cc  */
-#line 3899 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ne );
         }
     break;
 
-  case 411:
+  case 416:
 
 /* Line 690 of lalr1.cc  */
-#line 3903 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3937 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_lt );
         }
     break;
 
-  case 412:
+  case 417:
 
 /* Line 690 of lalr1.cc  */
-#line 3907 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3941 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_le );
         }
     break;
 
-  case 413:
+  case 418:
 
 /* Line 690 of lalr1.cc  */
-#line 3911 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_gt );
         }
     break;
 
-  case 414:
+  case 419:
 
 /* Line 690 of lalr1.cc  */
-#line 3915 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3949 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ge );
         }
     break;
 
-  case 415:
+  case 420:
 
 /* Line 690 of lalr1.cc  */
-#line 3923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3957 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_is );
         }
     break;
 
-  case 416:
+  case 421:
 
 /* Line 690 of lalr1.cc  */
-#line 3927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3961 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_precedes );
         }
     break;
 
-  case 417:
+  case 422:
 
 /* Line 690 of lalr1.cc  */
-#line 3931 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3965 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_follows );
         }
     break;
 
-  case 418:
+  case 423:
 
 /* Line 690 of lalr1.cc  */
-#line 3939 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3973 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 419:
+  case 424:
 
 /* Line 690 of lalr1.cc  */
-#line 3943 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3977 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "lax", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
-  case 420:
+  case 425:
 
 /* Line 690 of lalr1.cc  */
-#line 3947 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3981 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
-  case 421:
+  case 426:
 
 /* Line 690 of lalr1.cc  */
-#line 3951 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3985 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr(
                 LOC((yyloc)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (3)].node))->get_name(), (yysemantic_stack_[(6) - (5)].expr)
@@ -6877,10 +6905,10 @@
         }
     break;
 
-  case 422:
+  case 427:
 
 /* Line 690 of lalr1.cc  */
-#line 3962 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 3996 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(3) - (1)].node)), NULL
@@ -6888,10 +6916,10 @@
         }
     break;
 
-  case 423:
+  case 428:
 
 /* Line 690 of lalr1.cc  */
-#line 3968 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4002 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(4) - (1)].node)), (yysemantic_stack_[(4) - (3)].expr)
@@ -6899,10 +6927,10 @@
         }
     break;
 
-  case 424:
+  case 429:
 
 /* Line 690 of lalr1.cc  */
-#line 3978 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4012 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             PragmaList *pl = new PragmaList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -6910,10 +6938,10 @@
         }
     break;
 
-  case 425:
+  case 430:
 
 /* Line 690 of lalr1.cc  */
-#line 3984 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4018 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             if ( PragmaList *pl = dynamic_cast<PragmaList*>((yysemantic_stack_[(2) - (1)].node)) )
                 pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -6921,37 +6949,37 @@
         }
     break;
 
-  case 426:
+  case 431:
 
 /* Line 690 of lalr1.cc  */
-#line 3994 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4028 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
         }
     break;
 
-  case 427:
+  case 432:
 
 /* Line 690 of lalr1.cc  */
-#line 3998 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4032 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) ), "" );
         }
     break;
 
-  case 428:
+  case 433:
 
 /* Line 690 of lalr1.cc  */
-#line 4002 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4036 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), true ), "" );
         }
     break;
 
-  case 429:
+  case 434:
 
 /* Line 690 of lalr1.cc  */
-#line 4065 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4099 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       RelativePathExpr* rpe = dynamic_cast<RelativePathExpr*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (!rpe ?
@@ -6960,10 +6988,10 @@
     }
     break;
 
-  case 430:
+  case 435:
 
 /* Line 690 of lalr1.cc  */
-#line 4087 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4121 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AxisStep* as = dynamic_cast<AxisStep*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (as ?
@@ -6975,230 +7003,186 @@
     }
     break;
 
-  case 431:
-
-/* Line 690 of lalr1.cc  */
-#line 4115 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 432:
-
-/* Line 690 of lalr1.cc  */
-#line 4279 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new NameTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
-        }
-    break;
-
-  case 433:
-
-/* Line 690 of lalr1.cc  */
-#line 4283 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new NameTest( LOC((yyloc)), dynamic_cast<Wildcard*>((yysemantic_stack_[(1) - (1)].node)) );
-        }
-    break;
-
-  case 434:
-
-/* Line 690 of lalr1.cc  */
-#line 4293 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = new Wildcard(LOC((yyloc)), "", "", ParseConstants::wild_all, false);
-    }
-    break;
-
-  case 435:
-
-/* Line 690 of lalr1.cc  */
-#line 4297 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, false);
-    }
-    break;
-
   case 436:
 
 /* Line 690 of lalr1.cc  */
-#line 4301 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4149 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, true);
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 437:
 
 /* Line 690 of lalr1.cc  */
-#line 4305 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4313 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new Wildcard(LOC((yyloc)), "", SYMTAB((yysemantic_stack_[(1) - (1)].sval)), ParseConstants::wild_prefix, false);
-    }
+            (yyval.node) = new NameTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
+        }
     break;
 
   case 438:
 
 /* Line 690 of lalr1.cc  */
-#line 4314 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4317 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-     }
+            (yyval.node) = new NameTest( LOC((yyloc)), dynamic_cast<Wildcard*>((yysemantic_stack_[(1) - (1)].node)) );
+        }
     break;
 
   case 439:
 
 /* Line 690 of lalr1.cc  */
-#line 4318 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4327 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-       (yyval.expr) = new FilterExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (2)].node)));
-     }
+      (yyval.node) = new Wildcard(LOC((yyloc)), "", "", ParseConstants::wild_all, false);
+    }
     break;
 
   case 440:
 
 /* Line 690 of lalr1.cc  */
-#line 4322 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4331 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(3) - (1)].expr), false);
-     }
+      (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, false);
+    }
     break;
 
   case 441:
 
 /* Line 690 of lalr1.cc  */
-#line 4326 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4335 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node)), false);
-     }
+      (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, true);
+    }
     break;
 
   case 442:
 
 /* Line 690 of lalr1.cc  */
-#line 4334 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4339 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            PredicateList *pl = new PredicateList( LOC((yyloc)) );
-            pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(1) - (1)].expr)) );
-            (yyval.node) = pl;
-        }
+      (yyval.node) = new Wildcard(LOC((yyloc)), "", SYMTAB((yysemantic_stack_[(1) - (1)].sval)), ParseConstants::wild_prefix, false);
+    }
     break;
 
   case 443:
 
 /* Line 690 of lalr1.cc  */
-#line 4340 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4348 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            if ( PredicateList *pl = dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (1)].node)) )
-                pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(2) - (2)].expr)) );
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
-        }
+       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+     }
     break;
 
   case 444:
 
 /* Line 690 of lalr1.cc  */
-#line 4350 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4352 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
-        }
+       (yyval.expr) = new FilterExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (2)].node)));
+     }
     break;
 
   case 445:
 
 /* Line 690 of lalr1.cc  */
-#line 4358 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4356 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(3) - (1)].expr), false);
+     }
     break;
 
   case 446:
 
 /* Line 690 of lalr1.cc  */
-#line 4362 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4360 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node)), false);
+     }
     break;
 
   case 447:
 
 /* Line 690 of lalr1.cc  */
-#line 4366 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4364 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       StringLiteral* sl = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
+       (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), sl);
+     }
     break;
 
   case 448:
 
 /* Line 690 of lalr1.cc  */
-#line 4370 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4369 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
+     }
     break;
 
   case 449:
 
 /* Line 690 of lalr1.cc  */
-#line 4374 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4373 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
+     }
     break;
 
   case 450:
 
 /* Line 690 of lalr1.cc  */
-#line 4378 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4377 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
+     }
     break;
 
   case 451:
 
 /* Line 690 of lalr1.cc  */
-#line 4382 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4381 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr));
+     }
     break;
 
   case 452:
 
 /* Line 690 of lalr1.cc  */
-#line 4386 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4390 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            PredicateList *pl = new PredicateList( LOC((yyloc)) );
+            pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(1) - (1)].expr)) );
+            (yyval.node) = pl;
         }
     break;
 
   case 453:
 
 /* Line 690 of lalr1.cc  */
-#line 4390 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4396 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            if ( PredicateList *pl = dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (1)].node)) )
+                pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(2) - (2)].expr)) );
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
     break;
 
   case 454:
 
 /* Line 690 of lalr1.cc  */
-#line 4394 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4406 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
         }
     break;
 
   case 455:
 
 /* Line 690 of lalr1.cc  */
-#line 4399 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4414 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7207,7 +7191,7 @@
   case 456:
 
 /* Line 690 of lalr1.cc  */
-#line 4403 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4418 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7216,7 +7200,7 @@
   case 457:
 
 /* Line 690 of lalr1.cc  */
-#line 4407 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4422 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7225,7 +7209,7 @@
   case 458:
 
 /* Line 690 of lalr1.cc  */
-#line 4411 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4426 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7234,37 +7218,133 @@
   case 459:
 
 /* Line 690 of lalr1.cc  */
-#line 4415 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4430 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          StringLiteral* sl = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
-          ArgList *al = new ArgList( LOC((yyloc)) );
-          al->push_back(sl);
-          (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), al, false); 
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 460:
 
 /* Line 690 of lalr1.cc  */
-#line 4426 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4434 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 461:
 
 /* Line 690 of lalr1.cc  */
-#line 4430 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4438 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 462:
 
 /* Line 690 of lalr1.cc  */
-#line 4438 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4442 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 463:
+
+/* Line 690 of lalr1.cc  */
+#line 4446 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 464:
+
+/* Line 690 of lalr1.cc  */
+#line 4450 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 465:
+
+/* Line 690 of lalr1.cc  */
+#line 4455 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 466:
+
+/* Line 690 of lalr1.cc  */
+#line 4459 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 467:
+
+/* Line 690 of lalr1.cc  */
+#line 4463 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 468:
+
+/* Line 690 of lalr1.cc  */
+#line 4467 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 469:
+
+/* Line 690 of lalr1.cc  */
+#line 4475 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 470:
+
+/* Line 690 of lalr1.cc  */
+#line 4479 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 471:
+
+/* Line 690 of lalr1.cc  */
+#line 4483 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 472:
+
+/* Line 690 of lalr1.cc  */
+#line 4487 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new NullLiteral(LOC((yyloc)));
+        }
+    break;
+
+  case 473:
+
+/* Line 690 of lalr1.cc  */
+#line 4495 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_decimal, *(yysemantic_stack_[(1) - (1)].decval)
@@ -7273,10 +7353,10 @@
         }
     break;
 
-  case 463:
+  case 474:
 
 /* Line 690 of lalr1.cc  */
-#line 4445 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4502 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_integer, *(yysemantic_stack_[(1) - (1)].ival)
@@ -7285,10 +7365,10 @@
         }
     break;
 
-  case 464:
+  case 475:
 
 /* Line 690 of lalr1.cc  */
-#line 4452 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4509 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_double, *(yysemantic_stack_[(1) - (1)].dval)
@@ -7297,73 +7377,91 @@
         }
     break;
 
-  case 465:
-
-/* Line 690 of lalr1.cc  */
-#line 4463 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 476:
+
+/* Line 690 of lalr1.cc  */
+#line 4519 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = new BooleanLiteral(LOC((yyloc)), true);
+        }
+    break;
+
+  case 477:
+
+/* Line 690 of lalr1.cc  */
+#line 4523 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = new BooleanLiteral(LOC((yyloc)), false);
+        }
+    break;
+
+  case 478:
+
+/* Line 690 of lalr1.cc  */
+#line 4531 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new VarRef(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)));
         }
     break;
 
-  case 466:
+  case 479:
 
 /* Line 690 of lalr1.cc  */
-#line 4471 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4539 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), NULL);
         }
     break;
 
-  case 467:
+  case 480:
 
 /* Line 690 of lalr1.cc  */
-#line 4475 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4543 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 468:
+  case 481:
 
 /* Line 690 of lalr1.cc  */
-#line 4483 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4551 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ContextItemExpr( LOC((yyloc)) );
         }
     break;
 
-  case 469:
+  case 482:
 
 /* Line 690 of lalr1.cc  */
-#line 4491 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4559 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new OrderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 470:
+  case 483:
 
 /* Line 690 of lalr1.cc  */
-#line 4499 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4567 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new UnorderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 471:
+  case 484:
 
 /* Line 690 of lalr1.cc  */
-#line 4553 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4621 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FunctionCall( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), NULL );
     }
     break;
 
-  case 472:
+  case 485:
 
 /* Line 690 of lalr1.cc  */
-#line 4557 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4625 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList* argList = dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node));
 
@@ -7383,10 +7481,10 @@
     }
     break;
 
-  case 473:
+  case 486:
 
 /* Line 690 of lalr1.cc  */
-#line 4579 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4647 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList *al = new ArgList( LOC((yyloc)) );
       al->push_back(new ArgumentPlaceholder(LOC((yyloc))));
@@ -7394,10 +7492,10 @@
     }
     break;
 
-  case 474:
+  case 487:
 
 /* Line 690 of lalr1.cc  */
-#line 4585 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4653 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ( ArgList *al = dynamic_cast<ArgList*>((yysemantic_stack_[(3) - (1)].node)) )
         al->push_back( new ArgumentPlaceholder(LOC((yyloc))) );
@@ -7405,10 +7503,10 @@
     }
     break;
 
-  case 475:
+  case 488:
 
 /* Line 690 of lalr1.cc  */
-#line 4591 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4659 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList *al = new ArgList( LOC((yyloc)) );
       al->push_back( (yysemantic_stack_[(1) - (1)].expr) );
@@ -7416,10 +7514,10 @@
     }
     break;
 
-  case 476:
+  case 489:
 
 /* Line 690 of lalr1.cc  */
-#line 4597 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4665 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ( ArgList *al = dynamic_cast<ArgList*>((yysemantic_stack_[(3) - (1)].node)) )
         al->push_back( (yysemantic_stack_[(3) - (3)].expr) );
@@ -7427,37 +7525,37 @@
     }
     break;
 
-  case 477:
-
-/* Line 690 of lalr1.cc  */
-#line 4607 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 478:
-
-/* Line 690 of lalr1.cc  */
-#line 4611 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 479:
-
-/* Line 690 of lalr1.cc  */
-#line 4619 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 490:
+
+/* Line 690 of lalr1.cc  */
+#line 4675 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 491:
+
+/* Line 690 of lalr1.cc  */
+#line 4679 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 492:
+
+/* Line 690 of lalr1.cc  */
+#line 4687 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new LiteralFunctionItem(LOC ((yyloc)), dynamic_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].ival));
     }
     break;
 
-  case 480:
+  case 493:
 
 /* Line 690 of lalr1.cc  */
-#line 4627 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4695 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new InlineFunction(LOC((yyloc)),
                               &*(yysemantic_stack_[(3) - (2)].fnsig)->theParams,
@@ -7467,55 +7565,55 @@
     }
     break;
 
-  case 481:
-
-/* Line 690 of lalr1.cc  */
-#line 4639 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 482:
-
-/* Line 690 of lalr1.cc  */
-#line 4643 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 483:
-
-/* Line 690 of lalr1.cc  */
-#line 4651 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 484:
-
-/* Line 690 of lalr1.cc  */
-#line 4655 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 485:
-
-/* Line 690 of lalr1.cc  */
-#line 4659 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 486:
-
-/* Line 690 of lalr1.cc  */
-#line 4667 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 494:
+
+/* Line 690 of lalr1.cc  */
+#line 4707 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 495:
+
+/* Line 690 of lalr1.cc  */
+#line 4711 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 496:
+
+/* Line 690 of lalr1.cc  */
+#line 4719 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 497:
+
+/* Line 690 of lalr1.cc  */
+#line 4723 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 498:
+
+/* Line 690 of lalr1.cc  */
+#line 4727 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 499:
+
+/* Line 690 of lalr1.cc  */
+#line 4735 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -7525,10 +7623,10 @@
     }
     break;
 
-  case 487:
+  case 500:
 
 /* Line 690 of lalr1.cc  */
-#line 4675 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4743 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (static_cast<QName*>((yysemantic_stack_[(8) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(8) - (6)].expr))->get_qname())
       {
@@ -7547,10 +7645,10 @@
     }
     break;
 
-  case 488:
+  case 501:
 
 /* Line 690 of lalr1.cc  */
-#line 4692 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4760 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -7560,10 +7658,10 @@
     }
     break;
 
-  case 489:
+  case 502:
 
 /* Line 690 of lalr1.cc  */
-#line 4700 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4768 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (static_cast<QName*>((yysemantic_stack_[(9) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(9) - (7)].expr))->get_qname())
       {
@@ -7582,10 +7680,10 @@
     }
     break;
 
-  case 490:
+  case 503:
 
 /* Line 690 of lalr1.cc  */
-#line 4719 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4787 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (static_cast<QName*>((yysemantic_stack_[(9) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(9) - (7)].expr))->get_qname())
       {
@@ -7604,10 +7702,10 @@
     }
     break;
 
-  case 491:
+  case 504:
 
 /* Line 690 of lalr1.cc  */
-#line 4738 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4806 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (static_cast<QName*>((yysemantic_stack_[(10) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr))->get_qname())
       {
@@ -7626,10 +7724,10 @@
     }
     break;
 
-  case 492:
+  case 505:
 
 /* Line 690 of lalr1.cc  */
-#line 4760 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4828 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       DirElemContentList *decl = new DirElemContentList( LOC((yyloc)) );
       decl->push_back( dynamic_cast<DirElemContent*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -7637,10 +7735,10 @@
     }
     break;
 
-  case 493:
+  case 506:
 
 /* Line 690 of lalr1.cc  */
-#line 4766 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4834 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       DirElemContentList *decl = dynamic_cast<DirElemContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( decl )
@@ -7649,10 +7747,10 @@
     }
     break;
 
-  case 494:
+  case 507:
 
 /* Line 690 of lalr1.cc  */
-#line 4777 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4845 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       DirAttributeList *dal = new DirAttributeList( LOC((yyloc)) );
       dal->push_back( dynamic_cast<DirAttr*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7660,10 +7758,10 @@
     }
     break;
 
-  case 495:
+  case 508:
 
 /* Line 690 of lalr1.cc  */
-#line 4783 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4851 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       DirAttributeList *dal = dynamic_cast<DirAttributeList*>((yysemantic_stack_[(2) - (1)].node));
       if ( dal )
@@ -7672,10 +7770,10 @@
     }
     break;
 
-  case 496:
+  case 509:
 
 /* Line 690 of lalr1.cc  */
-#line 4794 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4862 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttr(LOC((yyloc)),
                        static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -7683,48 +7781,48 @@
     }
     break;
 
-  case 499:
+  case 512:
 
 /* Line 690 of lalr1.cc  */
-#line 4809 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4877 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttributeValue(LOC((yyloc)),
                                  dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
-  case 500:
+  case 513:
 
 /* Line 690 of lalr1.cc  */
-#line 4814 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4882 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttributeValue( LOC((yyloc)),
                                   dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
-  case 501:
+  case 514:
 
 /* Line 690 of lalr1.cc  */
-#line 4823 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4891 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrContentList( LOC((yyloc)) );
     }
     break;
 
-  case 502:
+  case 515:
 
 /* Line 690 of lalr1.cc  */
-#line 4827 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
-  case 503:
+  case 516:
 
 /* Line 690 of lalr1.cc  */
-#line 4834 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4902 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
@@ -7732,10 +7830,10 @@
     }
     break;
 
-  case 504:
+  case 517:
 
 /* Line 690 of lalr1.cc  */
-#line 4840 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4908 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7743,10 +7841,10 @@
     }
     break;
 
-  case 505:
+  case 518:
 
 /* Line 690 of lalr1.cc  */
-#line 4846 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4914 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList* qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -7755,10 +7853,10 @@
     }
     break;
 
-  case 506:
+  case 519:
 
 /* Line 690 of lalr1.cc  */
-#line 4853 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4921 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -7767,28 +7865,28 @@
     }
     break;
 
-  case 507:
+  case 520:
 
 /* Line 690 of lalr1.cc  */
-#line 4864 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4932 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrContentList( LOC((yyloc)) );
     }
     break;
 
-  case 508:
+  case 521:
 
 /* Line 690 of lalr1.cc  */
-#line 4868 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
-  case 509:
+  case 522:
 
 /* Line 690 of lalr1.cc  */
-#line 4875 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( new AposAttrValueContent( LOC((yyloc)),"'") );
@@ -7796,10 +7894,10 @@
     }
     break;
 
-  case 510:
+  case 523:
 
 /* Line 690 of lalr1.cc  */
-#line 4881 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4949 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( dynamic_cast<AposAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7807,10 +7905,10 @@
     }
     break;
 
-  case 511:
+  case 524:
 
 /* Line 690 of lalr1.cc  */
-#line 4887 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4955 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if (aacl)
@@ -7819,10 +7917,10 @@
     }
     break;
 
-  case 512:
+  case 525:
 
 /* Line 690 of lalr1.cc  */
-#line 4894 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4962 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( aacl )
@@ -7831,906 +7929,781 @@
     }
     break;
 
-  case 513:
+  case 526:
 
 /* Line 690 of lalr1.cc  */
-#line 4905 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4973 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 514:
+  case 527:
 
 /* Line 690 of lalr1.cc  */
-#line 4909 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4977 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
     break;
 
-  case 515:
+  case 528:
 
 /* Line 690 of lalr1.cc  */
-#line 4917 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4985 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 516:
+  case 529:
 
 /* Line 690 of lalr1.cc  */
-#line 4921 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4989 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
     break;
 
-  case 517:
+  case 530:
 
 /* Line 690 of lalr1.cc  */
-#line 4929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 4997 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr) );
     }
     break;
 
-  case 518:
+  case 531:
 
 /* Line 690 of lalr1.cc  */
-#line 4933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5001 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 519:
+  case 532:
 
 /* Line 690 of lalr1.cc  */
-#line 4937 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5005 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       rchandle<CDataSection> cdata_h = dynamic_cast<CDataSection*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = new DirElemContent( LOC((yyloc)), cdata_h );
     }
     break;
 
-  case 520:
+  case 533:
 
 /* Line 690 of lalr1.cc  */
-#line 4942 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5010 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       rchandle<CommonContent> cont_h = dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = new DirElemContent( LOC((yyloc)), cont_h );
     }
     break;
 
-  case 521:
+  case 534:
 
 /* Line 690 of lalr1.cc  */
-#line 4951 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5019 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_charref, SYMTAB((yysemantic_stack_[(1) - (1)].sval)));
     }
     break;
 
-  case 522:
+  case 535:
 
 /* Line 690 of lalr1.cc  */
-#line 4955 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5023 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_lbrace);
     }
     break;
 
-  case 523:
+  case 536:
 
 /* Line 690 of lalr1.cc  */
-#line 4959 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5027 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_rbrace);
     }
     break;
 
-  case 524:
+  case 537:
 
 /* Line 690 of lalr1.cc  */
-#line 4963 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5031 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), new EnclosedExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr)));
     }
     break;
 
-  case 525:
+  case 538:
 
 /* Line 690 of lalr1.cc  */
-#line 4971 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5039 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 526:
+  case 539:
 
 /* Line 690 of lalr1.cc  */
-#line 4976 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5044 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), "" );
     }
     break;
 
-  case 527:
+  case 540:
 
 /* Line 690 of lalr1.cc  */
-#line 4984 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5052 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 528:
+  case 541:
 
 /* Line 690 of lalr1.cc  */
-#line 4989 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5057 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
     break;
 
-  case 529:
+  case 542:
 
 /* Line 690 of lalr1.cc  */
-#line 4997 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5065 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CDataSection( LOC((yyloc)),SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
-  case 530:
-
-/* Line 690 of lalr1.cc  */
-#line 5005 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 531:
-
-/* Line 690 of lalr1.cc  */
-#line 5010 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 532:
-
-/* Line 690 of lalr1.cc  */
-#line 5015 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 533:
-
-/* Line 690 of lalr1.cc  */
-#line 5020 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 534:
-
-/* Line 690 of lalr1.cc  */
-#line 5025 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 535:
-
-/* Line 690 of lalr1.cc  */
-#line 5030 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 537:
-
-/* Line 690 of lalr1.cc  */
-#line 5041 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
-    }
-    break;
-
-  case 538:
-
-/* Line 690 of lalr1.cc  */
-#line 5049 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompElemConstructor(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr));
-    }
-    break;
-
-  case 539:
-
-/* Line 690 of lalr1.cc  */
-#line 5053 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
-    }
-    break;
-
-  case 540:
-
-/* Line 690 of lalr1.cc  */
-#line 5070 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr) );
-    }
-    break;
-
-  case 541:
-
-/* Line 690 of lalr1.cc  */
-#line 5074 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
-    }
-    break;
-
-  case 542:
-
-/* Line 690 of lalr1.cc  */
-#line 5082 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
-    }
-    break;
-
   case 543:
 
 /* Line 690 of lalr1.cc  */
-#line 5090 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5073 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 544:
 
 /* Line 690 of lalr1.cc  */
-#line 5098 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5078 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 545:
 
 /* Line 690 of lalr1.cc  */
-#line 5102 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5083 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 546:
 
 /* Line 690 of lalr1.cc  */
-#line 5110 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5088 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 547:
 
 /* Line 690 of lalr1.cc  */
-#line 5114 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5093 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 548:
 
 /* Line 690 of lalr1.cc  */
-#line 5122 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5098 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
-  case 549:
-
-/* Line 690 of lalr1.cc  */
-#line 5130 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
-        }
-    break;
-
   case 550:
 
 /* Line 690 of lalr1.cc  */
-#line 5134 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5109 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SequenceType(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node)));
-        }
+      (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+    }
     break;
 
   case 551:
 
 /* Line 690 of lalr1.cc  */
-#line 5138 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5117 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
-        }
+      (yyval.expr) = new CompElemConstructor(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr));
+    }
     break;
 
   case 552:
 
 /* Line 690 of lalr1.cc  */
-#line 5173 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5121 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_optionally
-            );
-        }
+      (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+    }
     break;
 
   case 553:
 
 /* Line 690 of lalr1.cc  */
-#line 5179 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5138 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_zero_or_more
-            );
-        }
+      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr) );
+    }
     break;
 
   case 554:
 
 /* Line 690 of lalr1.cc  */
-#line 5185 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5142 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_one_or_more
-            );
-        }
+      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+    }
     break;
 
   case 555:
 
 /* Line 690 of lalr1.cc  */
-#line 5195 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5150 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
+      (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+    }
     break;
 
   case 556:
 
 /* Line 690 of lalr1.cc  */
-#line 5199 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5158 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
+      (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+    }
     break;
 
   case 557:
 
 /* Line 690 of lalr1.cc  */
-#line 5203 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5166 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ItemType( LOC((yyloc)), true );
-        }
+      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+    }
     break;
 
   case 558:
 
 /* Line 690 of lalr1.cc  */
-#line 5207 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5170 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new StructuredItemType(LOC((yyloc)));
-        }
+      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+    }
     break;
 
   case 559:
 
 /* Line 690 of lalr1.cc  */
-#line 5211 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5178 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
+      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+    }
     break;
 
   case 560:
 
 /* Line 690 of lalr1.cc  */
-#line 5215 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5182 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
+      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+    }
     break;
 
   case 561:
 
 /* Line 690 of lalr1.cc  */
-#line 5219 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5190 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
+      (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
+    }
     break;
 
   case 562:
 
 /* Line 690 of lalr1.cc  */
-#line 5226 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5198 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          TypeList* aTypeList = new TypeList(LOC ((yyloc)));
-          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
-          (yyval.node) = aTypeList;
+            (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
         }
     break;
 
   case 563:
 
 /* Line 690 of lalr1.cc  */
-#line 5232 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5202 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          TypeList* aTypeList = dynamic_cast<TypeList *>((yysemantic_stack_[(3) - (1)].node));
-          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(3) - (3)].node)));
-          (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
+            (yyval.node) = new SequenceType(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node)));
         }
     break;
 
   case 564:
 
 /* Line 690 of lalr1.cc  */
-#line 5242 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5206 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new GeneralizedAtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
-    }
+            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
+        }
     break;
 
   case 565:
 
 /* Line 690 of lalr1.cc  */
-#line 5250 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5241 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new SimpleType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
-    }
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_optionally
+            );
+        }
     break;
 
   case 566:
 
 /* Line 690 of lalr1.cc  */
-#line 5258 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5247 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_zero_or_more
+            );
+        }
     break;
 
   case 567:
 
 /* Line 690 of lalr1.cc  */
-#line 5262 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5253 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_one_or_more
+            );
+        }
     break;
 
   case 568:
 
 /* Line 690 of lalr1.cc  */
-#line 5266 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5263 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 569:
 
 /* Line 690 of lalr1.cc  */
-#line 5270 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5267 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 570:
 
 /* Line 690 of lalr1.cc  */
-#line 5274 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5271 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new ItemType( LOC((yyloc)), true );
+        }
     break;
 
   case 571:
 
 /* Line 690 of lalr1.cc  */
-#line 5278 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5275 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new StructuredItemType(LOC((yyloc)));
+        }
     break;
 
   case 572:
 
 /* Line 690 of lalr1.cc  */
-#line 5282 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5279 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 573:
 
 /* Line 690 of lalr1.cc  */
-#line 5286 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5283 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 574:
 
 /* Line 690 of lalr1.cc  */
-#line 5290 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5287 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 575:
 
 /* Line 690 of lalr1.cc  */
-#line 5294 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5294 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+          TypeList* aTypeList = new TypeList(LOC ((yyloc)));
+          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
+          (yyval.node) = aTypeList;
+        }
     break;
 
   case 576:
 
 /* Line 690 of lalr1.cc  */
-#line 5302 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5300 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new AnyKindTest( LOC((yyloc)) );
-    }
+          TypeList* aTypeList = dynamic_cast<TypeList *>((yysemantic_stack_[(3) - (1)].node));
+          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(3) - (3)].node)));
+          (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
+        }
     break;
 
   case 577:
 
 /* Line 690 of lalr1.cc  */
-#line 5310 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5310 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new DocumentTest(LOC((yyloc)));
+      (yyval.node) = new GeneralizedAtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
     }
     break;
 
   case 578:
 
 /* Line 690 of lalr1.cc  */
-#line 5314 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5318 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+      (yyval.node) = new SimpleType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
     }
     break;
 
   case 579:
 
 /* Line 690 of lalr1.cc  */
-#line 5318 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5326 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 580:
 
 /* Line 690 of lalr1.cc  */
-#line 5326 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5330 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new NamespaceTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 581:
 
 /* Line 690 of lalr1.cc  */
-#line 5333 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5334 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new TextTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 582:
 
 /* Line 690 of lalr1.cc  */
-#line 5341 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5338 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new CommentTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 583:
 
 /* Line 690 of lalr1.cc  */
-#line 5349 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5342 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new PITest( LOC((yyloc)), "" );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 584:
 
 /* Line 690 of lalr1.cc  */
-#line 5353 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5346 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 585:
 
 /* Line 690 of lalr1.cc  */
-#line 5357 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5350 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 586:
 
 /* Line 690 of lalr1.cc  */
-#line 5365 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5354 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 587:
 
 /* Line 690 of lalr1.cc  */
-#line 5369 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5358 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new AttributeTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
-            );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 588:
 
 /* Line 690 of lalr1.cc  */
-#line 5375 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5362 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 589:
 
 /* Line 690 of lalr1.cc  */
-#line 5381 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5370 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
-        }
+      (yyval.node) = new AnyKindTest( LOC((yyloc)) );
+    }
     break;
 
   case 590:
 
 /* Line 690 of lalr1.cc  */
-#line 5385 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5378 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new AttributeTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
-            );
-        }
+      (yyval.node) = new DocumentTest(LOC((yyloc)));
+    }
     break;
 
   case 591:
 
 /* Line 690 of lalr1.cc  */
-#line 5395 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5382 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
-        }
+      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+    }
     break;
 
   case 592:
 
 /* Line 690 of lalr1.cc  */
-#line 5403 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5386 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
-        }
+      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+    }
     break;
 
   case 593:
 
 /* Line 690 of lalr1.cc  */
-#line 5407 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5394 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
-            );
-        }
+      (yyval.node) = new NamespaceTest(LOC((yyloc)));
+    }
     break;
 
   case 594:
 
 /* Line 690 of lalr1.cc  */
-#line 5413 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5401 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 TextTest(LOC((yyloc)));
+    }
     break;
 
   case 595:
 
 /* Line 690 of lalr1.cc  */
-#line 5422 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5409 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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
-            );
-        }
+      (yyval.node) = new CommentTest(LOC((yyloc)));
+    }
     break;
 
   case 596:
 
 /* Line 690 of lalr1.cc  */
-#line 5431 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5417 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, NULL, true
-            );
+            (yyval.node) = new PITest( LOC((yyloc)), "" );
         }
     break;
 
   case 597:
 
 /* Line 690 of lalr1.cc  */
-#line 5437 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5421 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
-            );
+            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
   case 598:
 
 /* Line 690 of lalr1.cc  */
-#line 5443 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5425 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
-            );
+            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
   case 599:
 
 /* Line 690 of lalr1.cc  */
-#line 5453 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5433 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 600:
 
 /* Line 690 of lalr1.cc  */
-#line 5470 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5437 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
+            );
         }
     break;
 
   case 601:
 
 /* Line 690 of lalr1.cc  */
-#line 5477 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5443 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
+            );
         }
     break;
 
   case 602:
 
 /* Line 690 of lalr1.cc  */
-#line 5492 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5449 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 603:
 
 /* Line 690 of lalr1.cc  */
-#line 5519 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5453 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
+            );
+        }
     break;
 
   case 604:
 
 /* Line 690 of lalr1.cc  */
-#line 5523 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5463 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
+        }
     break;
 
   case 605:
 
 /* Line 690 of lalr1.cc  */
-#line 5531 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5471 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new AnyFunctionTest(LOC((yyloc)));
-    }
+            (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
+        }
     break;
 
   case 606:
 
 /* Line 690 of lalr1.cc  */
-#line 5539 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5475 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.node) = new TypedFunctionTest(LOC ((yyloc)), dynamic_cast<SequenceType *>((yysemantic_stack_[(5) - (5)].node)));
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
+            );
         }
     break;
 
   case 607:
 
 /* Line 690 of lalr1.cc  */
-#line 5543 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5481 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.node) = new TypedFunctionTest(LOC ((yyloc)),
-              dynamic_cast<TypeList *>((yysemantic_stack_[(6) - (3)].node)),
-              dynamic_cast<SequenceType *>((yysemantic_stack_[(6) - (6)].node)));
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)),
+                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
+                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
+                false
+            );
         }
     break;
 
   case 608:
 
 /* Line 690 of lalr1.cc  */
-#line 5554 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5490 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-           (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)),
+                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
+                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
+                true
+            );
         }
     break;
 
   case 609:
 
 /* Line 690 of lalr1.cc  */
-#line 5571 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5499 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new RevalidationDecl(
-                LOC((yyloc)), StaticContextConsts::strict_validation
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, NULL, true
             );
         }
     break;
@@ -8738,10 +8711,10 @@
   case 610:
 
 /* Line 690 of lalr1.cc  */
-#line 5577 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5505 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new RevalidationDecl(
-                LOC((yyloc)), StaticContextConsts::lax_validation
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
             );
         }
     break;
@@ -8749,10 +8722,10 @@
   case 611:
 
 /* Line 690 of lalr1.cc  */
-#line 5583 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5511 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new RevalidationDecl(
-                LOC((yyloc)), StaticContextConsts::skip_validation
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
             );
         }
     break;
@@ -8760,130 +8733,255 @@
   case 612:
 
 /* Line 690 of lalr1.cc  */
-#line 5593 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5521 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+            (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
   case 613:
 
 /* Line 690 of lalr1.cc  */
-#line 5597 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5538 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
+            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
     break;
 
   case 614:
 
 /* Line 690 of lalr1.cc  */
-#line 5603 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5545 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
+            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
         }
     break;
 
   case 615:
 
 /* Line 690 of lalr1.cc  */
-#line 5609 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5560 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+            (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
   case 616:
 
 /* Line 690 of lalr1.cc  */
-#line 5613 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5587 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
-            );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 617:
 
 /* Line 690 of lalr1.cc  */
-#line 5619 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5591 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 618:
 
 /* Line 690 of lalr1.cc  */
-#line 5623 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5599 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
-        }
+      (yyval.node) = new AnyFunctionTest(LOC((yyloc)));
+    }
     break;
 
   case 619:
 
 /* Line 690 of lalr1.cc  */
-#line 5629 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5607 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                  LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
+          (yyval.node) = new TypedFunctionTest(LOC ((yyloc)), dynamic_cast<SequenceType *>((yysemantic_stack_[(5) - (5)].node)));
         }
     break;
 
   case 620:
 
 /* Line 690 of lalr1.cc  */
-#line 5635 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5611 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)),
-                store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
-            );
+          (yyval.node) = new TypedFunctionTest(LOC ((yyloc)),
+              dynamic_cast<TypeList *>((yysemantic_stack_[(6) - (3)].node)),
+              dynamic_cast<SequenceType *>((yysemantic_stack_[(6) - (6)].node)));
         }
     break;
 
   case 621:
 
 /* Line 690 of lalr1.cc  */
-#line 5642 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5622 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
-            );
+           (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
   case 622:
 
 /* Line 690 of lalr1.cc  */
-#line 5652 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5639 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.node) = new RevalidationDecl(
+                LOC((yyloc)), StaticContextConsts::strict_validation
+            );
         }
     break;
 
   case 623:
 
 /* Line 690 of lalr1.cc  */
-#line 5657 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5645 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.node) = new RevalidationDecl(
+                LOC((yyloc)), StaticContextConsts::lax_validation
+            );
         }
     break;
 
   case 624:
 
 /* Line 690 of lalr1.cc  */
-#line 5665 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5651 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new RevalidationDecl(
+                LOC((yyloc)), StaticContextConsts::skip_validation
+            );
+        }
+    break;
+
+  case 625:
+
+/* Line 690 of lalr1.cc  */
+#line 5661 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+        }
+    break;
+
+  case 626:
+
+/* Line 690 of lalr1.cc  */
+#line 5665 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 627:
+
+/* Line 690 of lalr1.cc  */
+#line 5671 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
+        }
+    break;
+
+  case 628:
+
+/* Line 690 of lalr1.cc  */
+#line 5677 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+        }
+    break;
+
+  case 629:
+
+/* Line 690 of lalr1.cc  */
+#line 5681 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
+        }
+    break;
+
+  case 630:
+
+/* Line 690 of lalr1.cc  */
+#line 5687 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 690 of lalr1.cc  */
+#line 5691 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 690 of lalr1.cc  */
+#line 5697 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                  LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
+        }
+    break;
+
+  case 633:
+
+/* Line 690 of lalr1.cc  */
+#line 5703 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)),
+                store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
+        }
+    break;
+
+  case 634:
+
+/* Line 690 of lalr1.cc  */
+#line 5710 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
+        }
+    break;
+
+  case 635:
+
+/* Line 690 of lalr1.cc  */
+#line 5720 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 636:
+
+/* Line 690 of lalr1.cc  */
+#line 5725 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 637:
+
+/* Line 690 of lalr1.cc  */
+#line 5733 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ReplaceExpr(
                 LOC((yyloc)), store::UpdateConsts::NODE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
@@ -8891,10 +8989,10 @@
         }
     break;
 
-  case 625:
+  case 638:
 
 /* Line 690 of lalr1.cc  */
-#line 5671 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5739 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ReplaceExpr(
                 LOC((yyloc)), store::UpdateConsts::VALUE_OF_NODE, (yysemantic_stack_[(7) - (5)].expr), (yysemantic_stack_[(7) - (7)].expr)
@@ -8902,29 +9000,29 @@
         }
     break;
 
-  case 626:
+  case 639:
 
 /* Line 690 of lalr1.cc  */
-#line 5681 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5749 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new RenameExpr( LOC ((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 627:
+  case 640:
 
 /* Line 690 of lalr1.cc  */
-#line 5703 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5771 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 628:
+  case 641:
 
 /* Line 690 of lalr1.cc  */
-#line 5712 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5780 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CopyVarList* lList = new CopyVarList(LOC((yyloc)));
       lList->push_back (dynamic_cast<VarBinding*> ((yysemantic_stack_[(1) - (1)].expr)));
@@ -8932,10 +9030,10 @@
     }
     break;
 
-  case 629:
+  case 642:
 
 /* Line 690 of lalr1.cc  */
-#line 5718 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5786 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CopyVarList* lList = dynamic_cast<CopyVarList*>((yysemantic_stack_[(4) - (1)].expr));
       VarBinding* lBinding = dynamic_cast<VarBinding*>((yysemantic_stack_[(4) - (4)].expr));
@@ -8944,28 +9042,28 @@
     }
     break;
 
-  case 630:
+  case 643:
 
 /* Line 690 of lalr1.cc  */
-#line 5731 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5799 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new VarBinding(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
-  case 631:
+  case 644:
 
 /* Line 690 of lalr1.cc  */
-#line 5745 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5813 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new TryExpr( LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 632:
+  case 645:
 
 /* Line 690 of lalr1.cc  */
-#line 5752 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5820 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             CatchListExpr *cle = new CatchListExpr( LOC((yyloc)) );
             cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -8973,10 +9071,10 @@
         }
     break;
 
-  case 633:
+  case 646:
 
 /* Line 690 of lalr1.cc  */
-#line 5758 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5826 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
             if ( cle )
@@ -8985,29 +9083,29 @@
         }
     break;
 
-  case 634:
+  case 647:
 
 /* Line 690 of lalr1.cc  */
-#line 5768 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5836 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 635:
+  case 648:
 
 /* Line 690 of lalr1.cc  */
-#line 5777 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5845 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
     break;
 
-  case 636:
+  case 649:
 
 /* Line 690 of lalr1.cc  */
-#line 5785 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5853 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             CatchExpr::NameTestList *ntl = new CatchExpr::NameTestList;
             ntl->push_back( static_cast<NameTest*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -9015,10 +9113,10 @@
         }
     break;
 
-  case 637:
+  case 650:
 
 /* Line 690 of lalr1.cc  */
-#line 5791 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5859 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             CatchExpr::NameTestList *ntl =
                 static_cast<CatchExpr::NameTestList*>((yysemantic_stack_[(3) - (1)].name_test_list));
@@ -9027,121 +9125,121 @@
         }
     break;
 
-  case 638:
+  case 651:
 
 /* Line 690 of lalr1.cc  */
-#line 5809 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5877 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 639:
+  case 652:
 
 /* Line 690 of lalr1.cc  */
-#line 5817 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5885 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.pos_filter_list) = NULL;
         }
     break;
 
-  case 640:
+  case 653:
 
 /* Line 690 of lalr1.cc  */
-#line 5821 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5889 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.pos_filter_list) = (yysemantic_stack_[(1) - (1)].pos_filter_list);
         }
     break;
 
-  case 641:
+  case 654:
 
 /* Line 690 of lalr1.cc  */
-#line 5828 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5896 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 642:
+  case 655:
 
 /* Line 690 of lalr1.cc  */
-#line 5833 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5901 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 643:
+  case 656:
 
 /* Line 690 of lalr1.cc  */
-#line 5841 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5909 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 644:
+  case 657:
 
 /* Line 690 of lalr1.cc  */
-#line 5845 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTOr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
-  case 645:
+  case 658:
 
 /* Line 690 of lalr1.cc  */
-#line 5852 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5920 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 646:
+  case 659:
 
 /* Line 690 of lalr1.cc  */
-#line 5856 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5924 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnd( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
-  case 647:
+  case 660:
 
 /* Line 690 of lalr1.cc  */
-#line 5863 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 648:
+  case 661:
 
 /* Line 690 of lalr1.cc  */
-#line 5867 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTMildNot( LOC((yyloc)), (yysemantic_stack_[(4) - (1)].node), (yysemantic_stack_[(4) - (4)].node) );
         }
     break;
 
-  case 649:
+  case 662:
 
 /* Line 690 of lalr1.cc  */
-#line 5874 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 650:
+  case 663:
 
 /* Line 690 of lalr1.cc  */
-#line 5878 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5946 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnaryNot(
                 LOC((yyloc)), dynamic_cast<FTPrimaryWithOptions*>((yysemantic_stack_[(2) - (2)].node))
@@ -9149,10 +9247,10 @@
         }
     break;
 
-  case 651:
+  case 664:
 
 /* Line 690 of lalr1.cc  */
-#line 5887 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5955 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTPrimaryWithOptions(
                 LOC((yyloc)),
@@ -9163,55 +9261,55 @@
         }
     break;
 
-  case 652:
-
-/* Line 690 of lalr1.cc  */
-#line 5899 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 653:
-
-/* Line 690 of lalr1.cc  */
-#line 5903 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 654:
-
-/* Line 690 of lalr1.cc  */
-#line 5910 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 655:
-
-/* Line 690 of lalr1.cc  */
-#line 5914 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 656:
-
-/* Line 690 of lalr1.cc  */
-#line 5922 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 665:
+
+/* Line 690 of lalr1.cc  */
+#line 5967 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 666:
+
+/* Line 690 of lalr1.cc  */
+#line 5971 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 667:
+
+/* Line 690 of lalr1.cc  */
+#line 5978 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 668:
+
+/* Line 690 of lalr1.cc  */
+#line 5982 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 669:
+
+/* Line 690 of lalr1.cc  */
+#line 5990 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWeight( LOC((yyloc)), dynamic_cast<exprnode*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 657:
+  case 670:
 
 /* Line 690 of lalr1.cc  */
-#line 5930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 5998 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWordsTimes(
                 LOC((yyloc)),
@@ -9221,46 +9319,46 @@
         }
     break;
 
-  case 658:
+  case 671:
 
 /* Line 690 of lalr1.cc  */
-#line 5938 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6006 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
-  case 659:
+  case 672:
 
 /* Line 690 of lalr1.cc  */
-#line 5942 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6010 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 660:
+  case 673:
 
 /* Line 690 of lalr1.cc  */
-#line 5949 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6017 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
     break;
 
-  case 661:
+  case 674:
 
 /* Line 690 of lalr1.cc  */
-#line 5953 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6021 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 662:
+  case 675:
 
 /* Line 690 of lalr1.cc  */
-#line 5961 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6029 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTExtensionSelection(
                 LOC((yyloc)),
@@ -9270,28 +9368,28 @@
         }
     break;
 
-  case 663:
+  case 676:
 
 /* Line 690 of lalr1.cc  */
-#line 5972 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6040 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
     break;
 
-  case 664:
+  case 677:
 
 /* Line 690 of lalr1.cc  */
-#line 5976 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6044 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 665:
+  case 678:
 
 /* Line 690 of lalr1.cc  */
-#line 5984 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6052 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWords(
                 LOC((yyloc)),
@@ -9301,10 +9399,10 @@
         }
     break;
 
-  case 666:
+  case 679:
 
 /* Line 690 of lalr1.cc  */
-#line 5996 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6064 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), static_cast<StringLiteral*>((yysemantic_stack_[(1) - (1)].expr)), NULL
@@ -9312,10 +9410,10 @@
         }
     break;
 
-  case 667:
+  case 680:
 
 /* Line 690 of lalr1.cc  */
-#line 6002 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6070 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), NULL, dynamic_cast<exprnode*>((yysemantic_stack_[(3) - (2)].expr))
@@ -9323,145 +9421,145 @@
         }
     break;
 
-  case 668:
+  case 681:
 
 /* Line 690 of lalr1.cc  */
-#line 6011 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6079 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::any );
         }
     break;
 
-  case 669:
+  case 682:
 
 /* Line 690 of lalr1.cc  */
-#line 6015 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6083 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 670:
-
-/* Line 690 of lalr1.cc  */
-#line 6023 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
-        }
-    break;
-
-  case 671:
-
-/* Line 690 of lalr1.cc  */
-#line 6027 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
-        }
-    break;
-
-  case 672:
-
-/* Line 690 of lalr1.cc  */
-#line 6031 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 683:
+
+/* Line 690 of lalr1.cc  */
+#line 6091 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
+        }
+    break;
+
+  case 684:
+
+/* Line 690 of lalr1.cc  */
+#line 6095 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
+        }
+    break;
+
+  case 685:
+
+/* Line 690 of lalr1.cc  */
+#line 6099 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
         }
     break;
 
-  case 673:
+  case 686:
 
 /* Line 690 of lalr1.cc  */
-#line 6038 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6106 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::any;
         }
     break;
 
-  case 674:
+  case 687:
 
 /* Line 690 of lalr1.cc  */
-#line 6042 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6110 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
         }
     break;
 
-  case 675:
+  case 688:
 
 /* Line 690 of lalr1.cc  */
-#line 6049 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6117 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::all;
         }
     break;
 
-  case 676:
+  case 689:
 
 /* Line 690 of lalr1.cc  */
-#line 6053 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6121 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
         }
     break;
 
-  case 677:
-
-/* Line 690 of lalr1.cc  */
-#line 6061 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 678:
-
-/* Line 690 of lalr1.cc  */
-#line 6065 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 679:
-
-/* Line 690 of lalr1.cc  */
-#line 6069 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 680:
-
-/* Line 690 of lalr1.cc  */
-#line 6073 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 681:
-
-/* Line 690 of lalr1.cc  */
-#line 6077 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 682:
-
-/* Line 690 of lalr1.cc  */
-#line 6085 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 690:
+
+/* Line 690 of lalr1.cc  */
+#line 6129 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 691:
+
+/* Line 690 of lalr1.cc  */
+#line 6133 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 692:
+
+/* Line 690 of lalr1.cc  */
+#line 6137 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 693:
+
+/* Line 690 of lalr1.cc  */
+#line 6141 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 694:
+
+/* Line 690 of lalr1.cc  */
+#line 6145 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 695:
+
+/* Line 690 of lalr1.cc  */
+#line 6153 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTOrder( LOC((yyloc)) );
         }
     break;
 
-  case 683:
+  case 696:
 
 /* Line 690 of lalr1.cc  */
-#line 6093 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6161 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWindow(
                 LOC((yyloc)),
@@ -9471,10 +9569,10 @@
         }
     break;
 
-  case 684:
+  case 697:
 
 /* Line 690 of lalr1.cc  */
-#line 6105 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6173 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDistance(
                 LOC((yyloc)),
@@ -9484,37 +9582,37 @@
         }
     break;
 
-  case 685:
+  case 698:
 
 /* Line 690 of lalr1.cc  */
-#line 6117 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6185 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::words );
         }
     break;
 
-  case 686:
+  case 699:
 
 /* Line 690 of lalr1.cc  */
-#line 6121 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6189 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::sentences );
         }
     break;
 
-  case 687:
+  case 700:
 
 /* Line 690 of lalr1.cc  */
-#line 6125 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6193 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::paragraphs );
         }
     break;
 
-  case 688:
+  case 701:
 
 /* Line 690 of lalr1.cc  */
-#line 6133 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6201 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             FTMatchOptions *mo = new FTMatchOptions( LOC((yyloc)) );
             mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -9522,10 +9620,10 @@
         }
     break;
 
-  case 689:
+  case 702:
 
 /* Line 690 of lalr1.cc  */
-#line 6139 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6207 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             FTMatchOptions *mo = dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (1)].node));
             mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -9533,118 +9631,118 @@
         }
     break;
 
-  case 690:
-
-/* Line 690 of lalr1.cc  */
-#line 6149 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 691:
-
-/* Line 690 of lalr1.cc  */
-#line 6153 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 692:
-
-/* Line 690 of lalr1.cc  */
-#line 6157 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 693:
-
-/* Line 690 of lalr1.cc  */
-#line 6161 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 694:
-
-/* Line 690 of lalr1.cc  */
-#line 6165 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 695:
-
-/* Line 690 of lalr1.cc  */
-#line 6169 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 696:
-
-/* Line 690 of lalr1.cc  */
-#line 6173 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 697:
-
-/* Line 690 of lalr1.cc  */
-#line 6177 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 698:
-
-/* Line 690 of lalr1.cc  */
-#line 6185 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 703:
+
+/* Line 690 of lalr1.cc  */
+#line 6217 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 704:
+
+/* Line 690 of lalr1.cc  */
+#line 6221 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 705:
+
+/* Line 690 of lalr1.cc  */
+#line 6225 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 706:
+
+/* Line 690 of lalr1.cc  */
+#line 6229 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 707:
+
+/* Line 690 of lalr1.cc  */
+#line 6233 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 708:
+
+/* Line 690 of lalr1.cc  */
+#line 6237 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 709:
+
+/* Line 690 of lalr1.cc  */
+#line 6241 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 710:
+
+/* Line 690 of lalr1.cc  */
+#line 6245 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 711:
+
+/* Line 690 of lalr1.cc  */
+#line 6253 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::sensitive );
         }
     break;
 
-  case 699:
+  case 712:
 
 /* Line 690 of lalr1.cc  */
-#line 6189 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6257 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::insensitive );
         }
     break;
 
-  case 700:
+  case 713:
 
 /* Line 690 of lalr1.cc  */
-#line 6193 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6261 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::lower );
         }
     break;
 
-  case 701:
+  case 714:
 
 /* Line 690 of lalr1.cc  */
-#line 6197 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6265 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::upper );
         }
     break;
 
-  case 702:
+  case 715:
 
 /* Line 690 of lalr1.cc  */
-#line 6205 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6273 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::sensitive
@@ -9652,10 +9750,10 @@
         }
     break;
 
-  case 703:
+  case 716:
 
 /* Line 690 of lalr1.cc  */
-#line 6211 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6279 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::insensitive
@@ -9663,10 +9761,10 @@
         }
     break;
 
-  case 704:
+  case 717:
 
 /* Line 690 of lalr1.cc  */
-#line 6221 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6289 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTExtensionOption(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)), SYMTAB((yysemantic_stack_[(3) - (3)].sval))
@@ -9674,28 +9772,28 @@
         }
     break;
 
-  case 705:
+  case 718:
 
 /* Line 690 of lalr1.cc  */
-#line 6231 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6299 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::stemming );
         }
     break;
 
-  case 706:
+  case 719:
 
 /* Line 690 of lalr1.cc  */
-#line 6235 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6303 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::no_stemming );
         }
     break;
 
-  case 707:
+  case 720:
 
 /* Line 690 of lalr1.cc  */
-#line 6243 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6311 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = NULL;
             if ( (yysemantic_stack_[(2) - (2)].node) ) {
@@ -9707,10 +9805,10 @@
         }
     break;
 
-  case 708:
+  case 721:
 
 /* Line 690 of lalr1.cc  */
-#line 6253 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6321 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = (yysemantic_stack_[(5) - (4)].thesaurus_id_list);
             if ( (yysemantic_stack_[(5) - (3)].node) ) {
@@ -9723,75 +9821,75 @@
         }
     break;
 
-  case 709:
+  case 722:
 
 /* Line 690 of lalr1.cc  */
-#line 6264 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6332 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTThesaurusOption( LOC((yyloc)), NULL, false, true );
         }
     break;
 
-  case 710:
+  case 723:
 
 /* Line 690 of lalr1.cc  */
-#line 6271 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6339 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 711:
+  case 724:
 
 /* Line 690 of lalr1.cc  */
-#line 6275 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6343 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
     break;
 
-  case 712:
+  case 725:
 
 /* Line 690 of lalr1.cc  */
-#line 6282 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6350 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.thesaurus_id_list) = NULL;
         }
     break;
 
-  case 713:
+  case 726:
 
 /* Line 690 of lalr1.cc  */
-#line 6286 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6354 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(2) - (2)].thesaurus_id_list);
         }
     break;
 
-  case 714:
+  case 727:
 
 /* Line 690 of lalr1.cc  */
-#line 6293 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6361 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 715:
+  case 728:
 
 /* Line 690 of lalr1.cc  */
-#line 6298 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6366 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 716:
+  case 729:
 
 /* Line 690 of lalr1.cc  */
-#line 6307 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6375 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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))
@@ -9799,46 +9897,46 @@
         }
     break;
 
-  case 717:
+  case 730:
 
 /* Line 690 of lalr1.cc  */
-#line 6316 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6384 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.sval) = 0;
         }
     break;
 
-  case 718:
+  case 731:
 
 /* Line 690 of lalr1.cc  */
-#line 6320 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6388 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.sval) = (yysemantic_stack_[(2) - (2)].sval);
         }
     break;
 
-  case 719:
+  case 732:
 
 /* Line 690 of lalr1.cc  */
-#line 6327 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6395 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
     break;
 
-  case 720:
+  case 733:
 
 /* Line 690 of lalr1.cc  */
-#line 6331 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6399 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
     break;
 
-  case 721:
+  case 734:
 
 /* Line 690 of lalr1.cc  */
-#line 6339 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6407 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)),
@@ -9849,10 +9947,10 @@
         }
     break;
 
-  case 722:
+  case 735:
 
 /* Line 690 of lalr1.cc  */
-#line 6348 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6416 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, (yysemantic_stack_[(4) - (4)].incl_excl_list), ft_stop_words_mode::with_default
@@ -9861,10 +9959,10 @@
         }
     break;
 
-  case 723:
+  case 736:
 
 /* Line 690 of lalr1.cc  */
-#line 6355 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6423 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, NULL, ft_stop_words_mode::without
@@ -9872,28 +9970,28 @@
         }
     break;
 
-  case 724:
+  case 737:
 
 /* Line 690 of lalr1.cc  */
-#line 6365 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6433 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), NULL );
         }
     break;
 
-  case 725:
+  case 738:
 
 /* Line 690 of lalr1.cc  */
-#line 6369 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6437 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), "", (yysemantic_stack_[(3) - (2)].strlist) );
         }
     break;
 
-  case 726:
+  case 739:
 
 /* Line 690 of lalr1.cc  */
-#line 6376 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6444 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             string_list_t *sl = new string_list_t;
             sl->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -9901,10 +9999,10 @@
         }
     break;
 
-  case 727:
+  case 740:
 
 /* Line 690 of lalr1.cc  */
-#line 6382 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6450 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             if ( (yysemantic_stack_[(3) - (1)].strlist) )
                 (yysemantic_stack_[(3) - (1)].strlist)->push_back( SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
@@ -9912,38 +10010,38 @@
         }
     break;
 
-  case 728:
+  case 741:
 
 /* Line 690 of lalr1.cc  */
-#line 6391 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6459 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.incl_excl_list) = NULL;
         }
     break;
 
-  case 729:
+  case 742:
 
 /* Line 690 of lalr1.cc  */
-#line 6395 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6463 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.incl_excl_list) = (yysemantic_stack_[(1) - (1)].incl_excl_list);
         }
     break;
 
-  case 730:
+  case 743:
 
 /* Line 690 of lalr1.cc  */
-#line 6402 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6470 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 731:
+  case 744:
 
 /* Line 690 of lalr1.cc  */
-#line 6407 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6475 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             FTStopWordOption::incl_excl_list_t *iel = (yysemantic_stack_[(2) - (1)].incl_excl_list);
             if ( !iel )
@@ -9953,10 +10051,10 @@
         }
     break;
 
-  case 732:
+  case 745:
 
 /* Line 690 of lalr1.cc  */
-#line 6419 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6487 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -9966,10 +10064,10 @@
         }
     break;
 
-  case 733:
+  case 746:
 
 /* Line 690 of lalr1.cc  */
-#line 6427 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6495 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -9979,109 +10077,109 @@
         }
     break;
 
-  case 734:
+  case 747:
 
 /* Line 690 of lalr1.cc  */
-#line 6439 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6507 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTLanguageOption( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
-  case 735:
+  case 748:
 
 /* Line 690 of lalr1.cc  */
-#line 6447 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6515 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::with );
         }
     break;
 
-  case 736:
+  case 749:
 
 /* Line 690 of lalr1.cc  */
-#line 6451 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6519 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::without );
         }
     break;
 
-  case 737:
+  case 750:
 
 /* Line 690 of lalr1.cc  */
-#line 6459 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6527 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_start );
         }
     break;
 
-  case 738:
+  case 751:
 
 /* Line 690 of lalr1.cc  */
-#line 6463 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6531 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_end );
         }
     break;
 
-  case 739:
+  case 752:
 
 /* Line 690 of lalr1.cc  */
-#line 6467 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6535 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::entire );
         }
     break;
 
-  case 740:
+  case 753:
 
 /* Line 690 of lalr1.cc  */
-#line 6475 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6543 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTTimes( LOC((yyloc)), dynamic_cast<FTRange*>((yysemantic_stack_[(3) - (2)].node)) );
         }
     break;
 
-  case 741:
+  case 754:
 
 /* Line 690 of lalr1.cc  */
-#line 6483 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6551 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::exactly, (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
-  case 742:
+  case 755:
 
 /* Line 690 of lalr1.cc  */
-#line 6487 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6555 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_least, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 743:
+  case 756:
 
 /* Line 690 of lalr1.cc  */
-#line 6491 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6559 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_most, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 744:
+  case 757:
 
 /* Line 690 of lalr1.cc  */
-#line 6495 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6563 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 745:
+  case 758:
 
 /* Line 690 of lalr1.cc  */
-#line 6503 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6571 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10091,10 +10189,10 @@
         }
     break;
 
-  case 746:
+  case 759:
 
 /* Line 690 of lalr1.cc  */
-#line 6511 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6579 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10104,105 +10202,126 @@
         }
     break;
 
-  case 747:
+  case 760:
 
 /* Line 690 of lalr1.cc  */
-#line 6523 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6591 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::sentence );
         }
     break;
 
-  case 748:
+  case 761:
 
 /* Line 690 of lalr1.cc  */
-#line 6527 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6595 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::paragraph );
         }
     break;
 
-  case 749:
+  case 762:
 
 /* Line 690 of lalr1.cc  */
-#line 6535 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6603 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTIgnoreOption( LOC((yyloc)), static_cast<UnionExpr*>((yysemantic_stack_[(3) - (3)].expr)) );
         }
     break;
 
-  case 750:
+  case 763:
 
 /* Line 690 of lalr1.cc  */
-#line 6549 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6617 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), NULL );
         }
     break;
 
-  case 751:
+  case 764:
 
 /* Line 690 of lalr1.cc  */
-#line 6553 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6621 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 752:
+  case 765:
 
 /* Line 690 of lalr1.cc  */
-#line 6560 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6628 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, false);
         }
     break;
 
-  case 753:
+  case 766:
 
 /* Line 690 of lalr1.cc  */
-#line 6565 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6633 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), false);
         }
     break;
 
-  case 754:
+  case 767:
 
 /* Line 690 of lalr1.cc  */
-#line 6573 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6641 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, true);
         }
     break;
 
-  case 755:
+  case 768:
 
 /* Line 690 of lalr1.cc  */
-#line 6578 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6646 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), true);
         }
     break;
 
-  case 756:
-
-/* Line 690 of lalr1.cc  */
-#line 6587 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 769:
+
+/* Line 690 of lalr1.cc  */
+#line 6655 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = new JSONDirectObjectConstructor(LOC((yyloc)));
+        }
+    break;
+
+  case 770:
+
+/* Line 690 of lalr1.cc  */
+#line 6659 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONDirectObjectConstructor(LOC((yyloc)),
                                                dynamic_cast<JSONPairList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 757:
-
-/* Line 690 of lalr1.cc  */
-#line 6595 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 771:
+
+/* Line 690 of lalr1.cc  */
+#line 6667 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          StringLiteral* sl = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)) );
+          JSONPairList* jpl = new JSONPairList(LOC((yyloc)));
+          jpl->push_back(new JSONPairConstructor(LOC((yyloc)), sl, (yysemantic_stack_[(3) - (3)].expr)));
+          (yyval.node) = jpl;
+        }
+    break;
+
+  case 772:
+
+/* Line 690 of lalr1.cc  */
+#line 6674 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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)));
@@ -10210,10 +10329,10 @@
         }
     break;
 
-  case 758:
+  case 773:
 
 /* Line 690 of lalr1.cc  */
-#line 6601 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6680 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (1)].node));
           assert(jpl);
@@ -10222,10 +10341,23 @@
         }
     break;
 
-  case 759:
-
-/* Line 690 of lalr1.cc  */
-#line 6611 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 774:
+
+/* Line 690 of lalr1.cc  */
+#line 6687 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (1)].node));
+          assert(jpl);
+          StringLiteral* sl = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(5) - (3)].sval)) );
+          jpl->push_back(new JSONPairConstructor(LOC((yyloc)), sl, (yysemantic_stack_[(5) - (5)].expr)));
+          (yyval.node) = jpl;
+        }
+    break;
+
+  case 775:
+
+/* Line 690 of lalr1.cc  */
+#line 6698 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectInsertExpr(LOC((yyloc)),
                                         (yysemantic_stack_[(5) - (3)].expr),
@@ -10233,10 +10365,10 @@
         }
     break;
 
-  case 760:
+  case 776:
 
 /* Line 690 of lalr1.cc  */
-#line 6617 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6704 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (3)].node));
           (yyval.expr) = new JSONObjectInsertExpr(
@@ -10248,28 +10380,28 @@
         }
     break;
 
-  case 761:
+  case 777:
 
 /* Line 690 of lalr1.cc  */
-#line 6627 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6714 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_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 762:
+  case 778:
 
 /* Line 690 of lalr1.cc  */
-#line 6634 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6721 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayAppendExpr(LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr));
         }
     break;
 
-  case 763:
+  case 779:
 
 /* Line 690 of lalr1.cc  */
-#line 6641 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6728 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(3) - (3)].expr));
@@ -10293,10 +10425,10 @@
         }
     break;
 
-  case 764:
+  case 780:
 
 /* Line 690 of lalr1.cc  */
-#line 6666 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6753 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(5) - (3)].expr));
@@ -10323,10 +10455,10 @@
         }
     break;
 
-  case 765:
+  case 781:
 
 /* Line 690 of lalr1.cc  */
-#line 6694 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6781 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(7) - (5)].expr));
@@ -10353,64 +10485,64 @@
         }
     break;
 
-  case 766:
-
-/* Line 690 of lalr1.cc  */
-#line 6722 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 767:
-
-/* Line 690 of lalr1.cc  */
-#line 6726 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 768:
-
-/* Line 690 of lalr1.cc  */
-#line 6730 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 769:
-
-/* Line 690 of lalr1.cc  */
-#line 6737 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+  case 782:
+
+/* Line 690 of lalr1.cc  */
+#line 6809 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 783:
+
+/* Line 690 of lalr1.cc  */
+#line 6813 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 784:
+
+/* Line 690 of lalr1.cc  */
+#line 6817 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 785:
+
+/* Line 690 of lalr1.cc  */
+#line 6825 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonItem);
         }
     break;
 
-  case 770:
+  case 786:
 
 /* Line 690 of lalr1.cc  */
-#line 6744 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6832 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonObject);
         }
     break;
 
-  case 771:
+  case 787:
 
 /* Line 690 of lalr1.cc  */
-#line 6751 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6839 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonArray);
         }
     break;
 
-  case 774:
+  case 790:
 
 /* Line 690 of lalr1.cc  */
-#line 6768 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6856 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           auto_ptr<QName> lQName( static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
           zstring const &tmp = lQName->get_qname();
@@ -10422,1564 +10554,1557 @@
         }
     break;
 
-  case 776:
+  case 792:
 
 /* Line 690 of lalr1.cc  */
-#line 6781 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6869 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("attribute"))); }
     break;
 
-  case 777:
+  case 793:
 
 /* Line 690 of lalr1.cc  */
-#line 6782 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6870 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("comment"))); }
     break;
 
-  case 778:
+  case 794:
 
 /* Line 690 of lalr1.cc  */
-#line 6783 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6871 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document-node"))); }
     break;
 
-  case 779:
+  case 795:
 
 /* Line 690 of lalr1.cc  */
-#line 6784 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6872 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("namespace-node"))); }
     break;
 
-  case 780:
+  case 796:
 
 /* Line 690 of lalr1.cc  */
-#line 6785 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6873 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("element"))); }
     break;
 
-  case 781:
+  case 797:
 
 /* Line 690 of lalr1.cc  */
-#line 6786 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6874 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("item"))); }
     break;
 
-  case 782:
+  case 798:
 
 /* Line 690 of lalr1.cc  */
-#line 6787 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6875 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("if"))); }
     break;
 
-  case 783:
+  case 799:
 
 /* Line 690 of lalr1.cc  */
-#line 6788 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6876 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("node"))); }
     break;
 
-  case 784:
+  case 800:
 
 /* Line 690 of lalr1.cc  */
-#line 6789 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6877 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("processing-instruction"))); }
     break;
 
-  case 785:
+  case 801:
 
 /* Line 690 of lalr1.cc  */
-#line 6790 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6878 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-attribute"))); }
     break;
 
-  case 786:
+  case 802:
 
 /* Line 690 of lalr1.cc  */
-#line 6791 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6879 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-element"))); }
     break;
 
-  case 787:
+  case 803:
 
 /* Line 690 of lalr1.cc  */
-#line 6792 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6880 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("text"))); }
     break;
 
-  case 788:
+  case 804:
 
 /* Line 690 of lalr1.cc  */
-#line 6793 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6881 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("typeswitch"))); }
     break;
 
-  case 789:
+  case 805:
 
 /* Line 690 of lalr1.cc  */
-#line 6794 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6882 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("switch"))); }
     break;
 
-  case 790:
+  case 806:
 
 /* Line 690 of lalr1.cc  */
-#line 6795 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6883 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty-sequence"))); }
     break;
 
-  case 791:
+  case 807:
 
 /* Line 690 of lalr1.cc  */
-#line 6796 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6884 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("while"))); }
     break;
 
-  case 793:
+  case 809:
 
 /* Line 690 of lalr1.cc  */
-#line 6801 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6889 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
     break;
 
-  case 794:
+  case 810:
 
 /* Line 690 of lalr1.cc  */
-#line 6802 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6890 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("xquery"))); }
     break;
 
-  case 795:
+  case 811:
 
 /* Line 690 of lalr1.cc  */
-#line 6803 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6891 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty"))); }
     break;
 
-  case 796:
+  case 812:
 
 /* Line 690 of lalr1.cc  */
-#line 6804 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6892 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("boundary-space"))); }
     break;
 
-  case 797:
+  case 813:
 
 /* Line 690 of lalr1.cc  */
-#line 6805 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6893 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ft-option"))); }
     break;
 
-  case 798:
+  case 814:
 
 /* Line 690 of lalr1.cc  */
-#line 6806 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6894 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("base-uri"))); }
     break;
 
-  case 799:
+  case 815:
 
 /* Line 690 of lalr1.cc  */
-#line 6807 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lax"))); }
     break;
 
-  case 800:
+  case 816:
 
 /* Line 690 of lalr1.cc  */
-#line 6808 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6896 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strict"))); }
     break;
 
-  case 801:
+  case 817:
 
 /* Line 690 of lalr1.cc  */
-#line 6809 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6897 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("idiv"))); }
     break;
 
-  case 802:
+  case 818:
 
 /* Line 690 of lalr1.cc  */
-#line 6810 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6898 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document"))); }
     break;
 
-  case 803:
+  case 819:
 
 /* Line 690 of lalr1.cc  */
-#line 6811 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6899 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ftnot"))); }
     break;
 
-  case 804:
+  case 820:
 
 /* Line 690 of lalr1.cc  */
-#line 6812 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6900 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("not"))); }
     break;
 
-  case 805:
+  case 821:
 
 /* Line 690 of lalr1.cc  */
-#line 6813 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6901 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sensitive"))); }
     break;
 
-  case 806:
+  case 822:
 
 /* Line 690 of lalr1.cc  */
-#line 6814 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6902 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("insensitive"))); }
     break;
 
-  case 807:
+  case 823:
 
 /* Line 690 of lalr1.cc  */
-#line 6815 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6903 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("diacritics"))); }
     break;
 
-  case 808:
+  case 824:
 
 /* Line 690 of lalr1.cc  */
-#line 6816 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6904 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("without"))); }
     break;
 
-  case 809:
+  case 825:
 
 /* Line 690 of lalr1.cc  */
-#line 6817 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6905 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stemming"))); }
     break;
 
-  case 810:
+  case 826:
 
 /* Line 690 of lalr1.cc  */
-#line 6818 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6906 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("thesaurus"))); }
     break;
 
-  case 811:
+  case 827:
 
 /* Line 690 of lalr1.cc  */
-#line 6819 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6907 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stop"))); }
     break;
 
-  case 812:
+  case 828:
 
 /* Line 690 of lalr1.cc  */
-#line 6820 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6908 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("wildcards"))); }
     break;
 
-  case 813:
+  case 829:
 
 /* Line 690 of lalr1.cc  */
-#line 6821 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6909 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("entire"))); }
     break;
 
-  case 814:
+  case 830:
 
 /* Line 690 of lalr1.cc  */
-#line 6822 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6910 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("content"))); }
     break;
 
-  case 815:
+  case 831:
 
 /* Line 690 of lalr1.cc  */
-#line 6823 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6911 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("word"))); }
     break;
 
-  case 816:
+  case 832:
 
 /* Line 690 of lalr1.cc  */
-#line 6824 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6912 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("start"))); }
     break;
 
-  case 817:
+  case 833:
 
 /* Line 690 of lalr1.cc  */
-#line 6825 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("end"))); }
     break;
 
-  case 818:
+  case 834:
 
 /* Line 690 of lalr1.cc  */
-#line 6826 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6914 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("most"))); }
     break;
 
-  case 819:
+  case 835:
 
 /* Line 690 of lalr1.cc  */
-#line 6827 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6915 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("skip"))); }
     break;
 
-  case 820:
+  case 836:
 
 /* Line 690 of lalr1.cc  */
-#line 6828 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6916 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("copy"))); }
     break;
 
-  case 821:
+  case 837:
 
 /* Line 690 of lalr1.cc  */
-#line 6829 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6917 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("general"))); }
     break;
 
-  case 822:
+  case 838:
 
 /* Line 690 of lalr1.cc  */
-#line 6830 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6918 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("value"))); }
     break;
 
-  case 823:
+  case 839:
 
 /* Line 690 of lalr1.cc  */
-#line 6831 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6919 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("eq"))); }
     break;
 
-  case 824:
+  case 840:
 
 /* Line 690 of lalr1.cc  */
-#line 6832 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6920 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ne"))); }
     break;
 
-  case 825:
+  case 841:
 
 /* Line 690 of lalr1.cc  */
-#line 6833 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6921 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lt"))); }
     break;
 
-  case 826:
+  case 842:
 
 /* Line 690 of lalr1.cc  */
-#line 6834 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6922 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("le"))); }
     break;
 
-  case 827:
+  case 843:
 
 /* Line 690 of lalr1.cc  */
-#line 6835 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("gt"))); }
     break;
 
-  case 828:
+  case 844:
 
 /* Line 690 of lalr1.cc  */
-#line 6836 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6924 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ge"))); }
     break;
 
-  case 829:
+  case 845:
 
 /* Line 690 of lalr1.cc  */
-#line 6837 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6925 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("at"))); }
     break;
 
-  case 830:
+  case 846:
 
 /* Line 690 of lalr1.cc  */
-#line 6838 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("context"))); }
     break;
 
-  case 831:
+  case 847:
 
 /* Line 690 of lalr1.cc  */
-#line 6839 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6927 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("variable"))); }
     break;
 
-  case 832:
+  case 848:
 
 /* Line 690 of lalr1.cc  */
-#line 6840 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("return"))); }
     break;
 
-  case 833:
+  case 849:
 
 /* Line 690 of lalr1.cc  */
-#line 6841 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("for"))); }
     break;
 
-  case 834:
+  case 850:
 
 /* Line 690 of lalr1.cc  */
-#line 6842 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("allowing"))); }
     break;
 
-  case 835:
+  case 851:
 
 /* Line 690 of lalr1.cc  */
-#line 6843 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sliding"))); }
     break;
 
-  case 836:
+  case 852:
 
 /* Line 690 of lalr1.cc  */
-#line 6844 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6932 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("tumbling"))); }
     break;
 
-  case 837:
+  case 853:
 
 /* Line 690 of lalr1.cc  */
-#line 6845 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("previous"))); }
     break;
 
-  case 838:
+  case 854:
 
 /* Line 690 of lalr1.cc  */
-#line 6846 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("next"))); }
     break;
 
-  case 839:
+  case 855:
 
 /* Line 690 of lalr1.cc  */
-#line 6847 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("only"))); }
     break;
 
-  case 840:
+  case 856:
 
 /* Line 690 of lalr1.cc  */
-#line 6848 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("when"))); }
     break;
 
-  case 841:
+  case 857:
 
 /* Line 690 of lalr1.cc  */
-#line 6849 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6937 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("count"))); }
     break;
 
-  case 842:
+  case 858:
 
 /* Line 690 of lalr1.cc  */
-#line 6850 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6938 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("in"))); }
     break;
 
-  case 843:
+  case 859:
 
 /* Line 690 of lalr1.cc  */
-#line 6851 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6939 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("let"))); }
     break;
 
-  case 844:
+  case 860:
 
 /* Line 690 of lalr1.cc  */
-#line 6852 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("where"))); }
     break;
 
-  case 845:
+  case 861:
 
 /* Line 690 of lalr1.cc  */
-#line 6853 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6941 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("by"))); }
     break;
 
-  case 846:
+  case 862:
 
 /* Line 690 of lalr1.cc  */
-#line 6854 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("group"))); }
     break;
 
-  case 847:
+  case 863:
 
 /* Line 690 of lalr1.cc  */
-#line 6855 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("order"))); }
     break;
 
-  case 848:
+  case 864:
 
 /* Line 690 of lalr1.cc  */
-#line 6856 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6944 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stable"))); }
     break;
 
-  case 849:
+  case 865:
 
 /* Line 690 of lalr1.cc  */
-#line 6857 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ascending"))); }
     break;
 
-  case 850:
+  case 866:
 
 /* Line 690 of lalr1.cc  */
-#line 6858 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6946 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("descending"))); }
     break;
 
-  case 851:
+  case 867:
 
 /* Line 690 of lalr1.cc  */
-#line 6859 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6947 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("greatest"))); }
     break;
 
-  case 852:
+  case 868:
 
 /* Line 690 of lalr1.cc  */
-#line 6860 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6948 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("least"))); }
     break;
 
-  case 853:
+  case 869:
 
 /* Line 690 of lalr1.cc  */
-#line 6861 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6949 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("collation"))); }
     break;
 
-  case 854:
+  case 870:
 
 /* Line 690 of lalr1.cc  */
-#line 6862 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6950 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("some"))); }
     break;
 
-  case 855:
+  case 871:
 
 /* Line 690 of lalr1.cc  */
-#line 6863 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6951 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("every"))); }
     break;
 
-  case 856:
+  case 872:
 
 /* Line 690 of lalr1.cc  */
-#line 6864 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6952 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("satisfies"))); }
     break;
 
-  case 857:
+  case 873:
 
 /* Line 690 of lalr1.cc  */
-#line 6865 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6953 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("case"))); }
     break;
 
-  case 858:
+  case 874:
 
 /* Line 690 of lalr1.cc  */
-#line 6866 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6954 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("as"))); }
     break;
 
-  case 859:
+  case 875:
 
 /* Line 690 of lalr1.cc  */
-#line 6867 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6955 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("then"))); }
     break;
 
-  case 860:
+  case 876:
 
 /* Line 690 of lalr1.cc  */
-#line 6868 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6956 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("else"))); }
     break;
 
-  case 861:
+  case 877:
 
 /* Line 690 of lalr1.cc  */
-#line 6869 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6957 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("or"))); }
     break;
 
-  case 862:
+  case 878:
 
 /* Line 690 of lalr1.cc  */
-#line 6870 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6958 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("and"))); }
     break;
 
-  case 863:
+  case 879:
 
 /* Line 690 of lalr1.cc  */
-#line 6871 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6959 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("instance"))); }
     break;
 
-  case 864:
+  case 880:
 
 /* Line 690 of lalr1.cc  */
-#line 6872 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6960 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("of"))); }
     break;
 
-  case 865:
+  case 881:
 
 /* Line 690 of lalr1.cc  */
-#line 6873 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6961 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("castable"))); }
     break;
 
-  case 866:
+  case 882:
 
 /* Line 690 of lalr1.cc  */
-#line 6874 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6962 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("to"))); }
     break;
 
-  case 867:
+  case 883:
 
 /* Line 690 of lalr1.cc  */
-#line 6875 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6963 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("div"))); }
     break;
 
-  case 868:
+  case 884:
 
 /* Line 690 of lalr1.cc  */
-#line 6876 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6964 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("mod"))); }
     break;
 
-  case 869:
+  case 885:
 
 /* Line 690 of lalr1.cc  */
-#line 6877 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6965 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("union"))); }
     break;
 
-  case 870:
+  case 886:
 
 /* Line 690 of lalr1.cc  */
-#line 6878 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6966 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("intersect"))); }
     break;
 
-  case 871:
+  case 887:
 
 /* Line 690 of lalr1.cc  */
-#line 6879 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6967 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("except"))); }
     break;
 
-  case 872:
+  case 888:
 
 /* Line 690 of lalr1.cc  */
-#line 6880 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6968 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("validate"))); }
     break;
 
-  case 873:
+  case 889:
 
 /* Line 690 of lalr1.cc  */
-#line 6881 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6969 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("type"))); }
     break;
 
-  case 874:
+  case 890:
 
 /* Line 690 of lalr1.cc  */
-#line 6882 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/jsoniq_parser.y"
+#line 6970 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)

Follow ups