← Back to team overview

zorba-coders team mailing list archive

[Merge] lp:~zorba-coders/zorba/new-jsoniq into lp:zorba

 

Nicolae Brinza has proposed merging lp:~zorba-coders/zorba/new-jsoniq into lp:zorba.

Commit message:
The grouping variable in a group by clause is now optional

Requested reviews:
  Nicolae Brinza (nbrinza)

For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq/+merge/167824

The grouping variable in a group by clause is now optional
-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq/+merge/167824
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'ChangeLog'
--- ChangeLog	2013-06-03 23:05:34 +0000
+++ ChangeLog	2013-06-06 18:10:33 +0000
@@ -4,7 +4,8 @@
 version 3.0
 
 New Features:
-
+  * The grouping variable in a group by clause is now optional
+  
 Optimizations:
   * Implemented hoisting optimization for general FLWOR.
   * Implemented flwor-merge optimization for general FLWOR.

=== modified file 'src/compiler/parser/jsoniq_parser.cpp'
--- src/compiler/parser/jsoniq_parser.cpp	2013-05-15 15:42:24 +0000
+++ src/compiler/parser/jsoniq_parser.cpp	2013-06-06 18:10:33 +0000
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
+/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
 
 /* Skeleton implementation for Bison LALR(1) parsers in C++
    
-      Copyright (C) 2002-2011 Free Software Foundation, Inc.
+      Copyright (C) 2002-2013 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -34,14 +34,12 @@
 #define yylex   zorbalex
 
 /* First part of user declarations.  */
-
-/* Line 293 of lalr1.cc  */
-#line 1 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 283 of lalr1.cc  */
+#line 1 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
 
 #define JSONIQ_PARSER
-
-/* Line 293 of lalr1.cc  */
-#line 58 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 283 of lalr1.cc  */
+#line 58 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
 
 
 #include "common/common.h"
@@ -77,9 +75,8 @@
 using namespace std;
 using namespace zorba;
 
-
-/* Line 293 of lalr1.cc  */
-#line 101 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 283 of lalr1.cc  */
+#line 101 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
 
 
 #ifdef XQUERY_PARSER
@@ -96,17 +93,15 @@
 #endif
 
 
-
-/* Line 293 of lalr1.cc  */
-#line 102 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+/* Line 283 of lalr1.cc  */
+#line 98 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
 
 
 #include "jsoniq_parser.hpp"
 
 /* User implementation prologue.  */
-
-/* Line 299 of lalr1.cc  */
-#line 793 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 289 of lalr1.cc  */
+#line 792 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
 
 template<typename T> inline void release_hack( T *ref ) {
     if ( ref ) {
@@ -115,9 +110,17 @@
     }
 }
 
-
-/* Line 299 of lalr1.cc  */
-#line 121 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+/* Line 289 of lalr1.cc  */
+#line 115 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+
+
+# ifndef YY_NULL
+#  if defined __cplusplus && 201103L <= __cplusplus
+#   define YY_NULL nullptr
+#  else
+#   define YY_NULL 0
+#  endif
+# endif
 
 #ifndef YY_
 # if defined YYENABLE_NLS && YYENABLE_NLS
@@ -131,25 +134,26 @@
 # endif
 #endif
 
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    If N is 0, then set CURRENT to the empty location which ends
    the previous symbol: RHS[0] (always defined).  */
 
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)                               \
- do                                                                    \
-   if (N)                                                              \
-     {                                                                 \
-       (Current).begin = YYRHSLOC (Rhs, 1).begin;                      \
-       (Current).end   = YYRHSLOC (Rhs, N).end;                        \
-     }                                                                 \
-   else                                                                \
-     {                                                                 \
-       (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end;        \
-     }                                                                 \
- while (false)
-#endif
+# ifndef YYLLOC_DEFAULT
+#  define YYLLOC_DEFAULT(Current, Rhs, N)                               \
+    do                                                                  \
+      if (N)                                                            \
+        {                                                               \
+          (Current).begin  = YYRHSLOC (Rhs, 1).begin;                   \
+          (Current).end    = YYRHSLOC (Rhs, N).end;                     \
+        }                                                               \
+      else                                                              \
+        {                                                               \
+          (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end;      \
+        }                                                               \
+    while (/*CONSTCOND*/ false)
+# endif
+
 
 /* Suppress unused-variable warnings by "using" E.  */
 #define YYUSE(e) ((void) (e))
@@ -185,9 +189,9 @@
 #else /* !YYDEBUG */
 
 # define YYCDEBUG if (false) std::cerr
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_REDUCE_PRINT(Rule)
-# define YY_STACK_PRINT()
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) YYUSE(Type)
+# define YY_REDUCE_PRINT(Rule)        static_cast<void>(0)
+# define YY_STACK_PRINT()             static_cast<void>(0)
 
 #endif /* !YYDEBUG */
 
@@ -201,9 +205,8 @@
 
 
 namespace zorba {
-
-/* Line 382 of lalr1.cc  */
-#line 207 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+/* Line 357 of lalr1.cc  */
+#line 210 "/home/colea/work/new-jsoniq/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
@@ -269,11 +272,10 @@
   {
     YYUSE (yylocationp);
     YYUSE (yyvaluep);
-    switch (yytype)
-      {
-         default:
-	  break;
-      }
+    std::ostream& yyo = debug_stream ();
+    std::ostream& yyoutput = yyo;
+    YYUSE (yyoutput);
+    YYUSE (yytype);
   }
 
 
@@ -297,2579 +299,2010 @@
     YYUSE (yymsg);
     YYUSE (yyvaluep);
 
-    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+    if (yymsg)
+      YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
     switch (yytype)
-      {
-        case 111: /* "\"'DECIMAL'\"" */
-
-/* Line 480 of lalr1.cc  */
-#line 792 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ delete (yyvaluep->decval); };
-
-/* Line 480 of lalr1.cc  */
-#line 312 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 126: /* "\"'DOUBLE'\"" */
-
-/* Line 480 of lalr1.cc  */
-#line 791 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ delete (yyvaluep->dval); };
-
-/* Line 480 of lalr1.cc  */
-#line 321 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 151: /* "\"'INTEGER'\"" */
-
-/* Line 480 of lalr1.cc  */
-#line 790 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ delete (yyvaluep->ival); };
-
-/* Line 480 of lalr1.cc  */
-#line 330 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 345: /* "VersionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 339 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 346: /* "MainModule" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 348 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 347: /* "LibraryModule" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 357 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 348: /* "ModuleDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 366 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 349: /* "SIND_DeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 809 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 375 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 350: /* "SIND_Decl" */
-
-/* Line 480 of lalr1.cc  */
-#line 809 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 384 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 351: /* "Setter" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 393 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 352: /* "BoundarySpaceDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 402 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 353: /* "DefaultCollationDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 804 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 411 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 354: /* "BaseURIDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 420 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 355: /* "ConstructionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 429 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 356: /* "OrderingModeDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 438 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 357: /* "EmptyOrderDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 447 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 358: /* "CopyNamespacesDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 804 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 456 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 359: /* "Import" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 465 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 360: /* "SchemaImport" */
-
-/* Line 480 of lalr1.cc  */
-#line 809 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 474 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 361: /* "URILiteralList" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 483 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 362: /* "SchemaPrefix" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 492 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 363: /* "ModuleImport" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 501 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 364: /* "NamespaceDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 510 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 365: /* "DefaultNamespaceDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 804 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 519 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 366: /* "VFO_DeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 528 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 367: /* "VFO_Decl" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 537 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 368: /* "DecimalFormatDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 546 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 369: /* "DecimalFormatParamList" */
-
-/* Line 480 of lalr1.cc  */
-#line 820 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ delete (yyvaluep->vstrpair); };
-
-/* Line 480 of lalr1.cc  */
-#line 555 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 370: /* "DecimalFormatParam" */
-
-/* Line 480 of lalr1.cc  */
-#line 820 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ delete (yyvaluep->strpair); };
-
-/* Line 480 of lalr1.cc  */
-#line 564 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 372: /* "OptionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 573 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 373: /* "FTOptionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 582 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 374: /* "CtxItemDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 591 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 375: /* "CtxItemDecl2" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 600 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 376: /* "CtxItemDecl3" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 609 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 377: /* "CtxItemDecl4" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 618 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 378: /* "VarDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 627 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 379: /* "VarNameAndType" */
-
-/* Line 480 of lalr1.cc  */
-#line 820 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ delete (yyvaluep->varnametype); };
-
-/* Line 480 of lalr1.cc  */
-#line 636 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 380: /* "AnnotationList" */
-
-/* Line 480 of lalr1.cc  */
-#line 802 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 645 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 381: /* "Annotation" */
-
-/* Line 480 of lalr1.cc  */
-#line 802 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 654 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 382: /* "AnnotationLiteralList" */
-
-/* Line 480 of lalr1.cc  */
-#line 802 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 663 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 383: /* "FunctionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 672 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 384: /* "FunctionDecl2" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 681 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 385: /* "FunctionDeclSimple" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 690 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 386: /* "FunctionDeclUpdating" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 699 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 387: /* "FunctionSig" */
-
-/* Line 480 of lalr1.cc  */
-#line 820 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ delete (yyvaluep->fnsig); };
-
-/* Line 480 of lalr1.cc  */
-#line 708 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 388: /* "ParamList" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 717 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 389: /* "Param" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 726 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 390: /* "CollectionDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 735 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 392: /* "IndexDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 744 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 393: /* "IndexKeyList" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 753 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 394: /* "IndexKeySpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 762 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 395: /* "IntegrityConstraintDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 771 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 396: /* "QueryBody" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 780 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 397: /* "StatementsAndOptionalExprTop" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 789 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 398: /* "StatementsAndOptionalExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 798 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 399: /* "StatementsAndExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 400: /* "Statements" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 401: /* "Statement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 825 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 402: /* "BlockStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 834 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 403: /* "BlockExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 843 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 404: /* "EnclosedStatementsAndOptionalExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 852 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 405: /* "VarDeclStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 861 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 408: /* "AssignStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 870 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 409: /* "ApplyStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 879 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 410: /* "ExitStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 888 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 411: /* "WhileStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 897 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 412: /* "FlowCtlStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 906 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 413: /* "FLWORStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 915 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 414: /* "ReturnStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 924 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 415: /* "IfStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 933 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 416: /* "TryStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 942 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 417: /* "CatchListStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 951 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 418: /* "CatchStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 960 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 419: /* "VoidStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 815 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 969 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 420: /* "Expr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 978 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 421: /* "ExprSingle" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 987 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 422: /* "ExprSimple" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 996 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 423: /* "FLWORExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1005 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 424: /* "ReturnExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1014 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 427: /* "FLWORWinCond" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1023 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 428: /* "WindowClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1032 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 429: /* "CountClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1041 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 430: /* "ForLetWinClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1050 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 432: /* "FLWORClauseList" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1059 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 433: /* "ForClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1068 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 435: /* "VarInDeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1077 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 436: /* "VarInDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1086 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 437: /* "PositionalVar" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1095 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 438: /* "FTScoreVar" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1104 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 439: /* "LetClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1113 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 440: /* "VarGetsDeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1122 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 441: /* "VarGetsDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1131 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 442: /* "WindowVarDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1140 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 443: /* "WindowVars" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1149 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 444: /* "WindowVars3" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1158 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 445: /* "WindowVars2" */
-
-/* Line 480 of lalr1.cc  */
-#line 812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1167 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 446: /* "WhereClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1176 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 447: /* "GroupByClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1185 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 448: /* "GroupSpecList" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1194 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 449: /* "GroupSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1203 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 450: /* "GroupCollationSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1212 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 451: /* "OrderByClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1221 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 452: /* "OrderSpecList" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1230 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 453: /* "OrderSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1239 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 454: /* "OrderModifier" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1248 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 455: /* "OrderDirSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1257 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 456: /* "OrderEmptySpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1266 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 457: /* "OrderCollationSpec" */
-
-/* Line 480 of lalr1.cc  */
-#line 807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1275 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 458: /* "QuantifiedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1284 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 459: /* "QVarInDeclList" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1293 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 460: /* "QVarInDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1302 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 461: /* "SwitchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1311 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 462: /* "SwitchCaseClauseList" */
-
-/* Line 480 of lalr1.cc  */
-#line 814 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1320 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 463: /* "SwitchCaseClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 814 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1329 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 464: /* "SwitchCaseOperandList" */
-
-/* Line 480 of lalr1.cc  */
-#line 814 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1338 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 465: /* "SwitchStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1347 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 468: /* "TypeswitchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1356 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 469: /* "TypeswitchStatement" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1365 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 470: /* "CaseClauseList" */
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1374 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 471: /* "CaseClause" */
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1383 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 474: /* "SequenceTypeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1392 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 475: /* "IfExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1401 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 476: /* "OrExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1410 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 477: /* "AndExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1419 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 478: /* "NotExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 815 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1428 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 479: /* "ComparisonExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1437 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 480: /* "FTContainsExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1446 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 481: /* "StringConcatExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1455 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 482: /* "opt_FTIgnoreOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1464 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 483: /* "RangeExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1473 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 484: /* "AdditiveExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1482 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 485: /* "MultiplicativeExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1491 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 486: /* "UnionExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1500 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 487: /* "IntersectExceptExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1509 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 488: /* "InstanceofExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1518 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 489: /* "TreatExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1527 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 490: /* "CastableExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1536 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 491: /* "CastExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1545 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 492: /* "SingleType" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1554 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 493: /* "UnaryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1563 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 494: /* "SignList" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1572 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 495: /* "ValueExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1581 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 496: /* "SimpleMapExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1590 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 497: /* "ValueComp" */
-
-/* Line 480 of lalr1.cc  */
-#line 811 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1599 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 498: /* "ValidateExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1608 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 499: /* "ExtensionExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1617 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 500: /* "Pragma_list" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1626 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 501: /* "Pragma" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1635 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 502: /* "PathExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1644 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 504: /* "RelativePathExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1653 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 505: /* "StepExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1662 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 506: /* "AxisStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 818 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1671 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 507: /* "ForwardStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 801 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1680 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 508: /* "ForwardAxis" */
-
-/* Line 480 of lalr1.cc  */
-#line 801 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1689 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 509: /* "AbbrevForwardStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 801 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1698 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 510: /* "ReverseStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 801 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1707 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 511: /* "ReverseAxis" */
-
-/* Line 480 of lalr1.cc  */
-#line 801 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1716 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 512: /* "NodeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 801 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1725 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 513: /* "NameTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1734 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 514: /* "Wildcard" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1743 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 515: /* "FilterExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1752 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 516: /* "PredicateList" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1761 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 517: /* "Predicate" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1770 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 518: /* "PrimaryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1779 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 519: /* "Literal" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1788 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 520: /* "NumericLiteral" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1797 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 522: /* "VarRef" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 523: /* "ParenthesizedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1815 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 524: /* "ContextItemExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1824 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 525: /* "OrderedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1833 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 526: /* "UnorderedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1842 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 527: /* "FunctionCall" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1851 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 528: /* "ArgList" */
-
-/* Line 480 of lalr1.cc  */
-#line 802 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1860 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 532: /* "Constructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1869 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 533: /* "DirectConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1878 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 534: /* "DirElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1887 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 535: /* "DirElemContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 804 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1896 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 536: /* "DirAttributeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 804 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1905 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 537: /* "DirAttr" */
-
-/* Line 480 of lalr1.cc  */
-#line 804 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1914 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 539: /* "DirAttributeValue" */
-
-/* Line 480 of lalr1.cc  */
-#line 804 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1923 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 540: /* "opt_QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 809 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1932 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 541: /* "QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 809 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1941 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 542: /* "opt_AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 802 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1950 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 543: /* "AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 802 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1959 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 544: /* "QuoteAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 809 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1968 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 545: /* "AposAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 802 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1977 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 546: /* "DirElemContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1986 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 547: /* "CommonContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1995 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 548: /* "DirCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2004 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 549: /* "DirPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2013 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 550: /* "CDataSection" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2022 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 551: /* "ComputedConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2031 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 552: /* "CompDocConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2040 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 553: /* "CompElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2049 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 554: /* "CompAttrConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2058 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 555: /* "CompTextConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2067 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 556: /* "CompCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2076 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 557: /* "CompPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2085 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 558: /* "CompNamespaceConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2094 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 559: /* "TypeDeclaration" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2103 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 560: /* "SequenceType" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2112 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 561: /* "OccurrenceIndicator" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2121 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 562: /* "ItemType" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2130 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 563: /* "TypeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2139 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 564: /* "GeneralizedAtomicType" */
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2148 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 565: /* "SimpleType" */
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2157 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 566: /* "KindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2166 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 567: /* "AnyKindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 802 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2175 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 569: /* "DocumentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 804 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2184 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 570: /* "NamespaceTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2193 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 571: /* "TextTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2202 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 572: /* "CommentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2211 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 573: /* "PITest" */
-
-/* Line 480 of lalr1.cc  */
-#line 808 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2220 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 574: /* "AttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2229 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 575: /* "SchemaAttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 809 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2238 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 576: /* "ElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 804 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2247 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 577: /* "SchemaElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 809 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2256 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 578: /* "TypeName" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2265 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 579: /* "TypeName_WITH_HOOK" */
-
-/* Line 480 of lalr1.cc  */
-#line 810 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2274 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 580: /* "StringLiteral" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2283 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 582: /* "AnyFunctionTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2292 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 583: /* "TypedFunctionTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 813 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2301 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 586: /* "InsertExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2310 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 587: /* "DeleteExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2319 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 588: /* "ReplaceExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2328 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 589: /* "RenameExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2337 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 590: /* "TransformExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2346 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 591: /* "VarNameList" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2355 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 592: /* "VarNameDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2364 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 593: /* "TryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2373 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 594: /* "CatchListExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2382 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 595: /* "CatchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2391 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 596: /* "BracedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2400 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 597: /* "NameTestList" */
-
-/* Line 480 of lalr1.cc  */
-#line 820 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ delete (yyvaluep->name_test_list); };
-
-/* Line 480 of lalr1.cc  */
-#line 2409 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 598: /* "FTSelection" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2418 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 601: /* "FTOr" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2427 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 602: /* "FTAnd" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2436 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 603: /* "FTMildNot" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2445 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 604: /* "FTUnaryNot" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2454 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 605: /* "FTPrimaryWithOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2463 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 606: /* "opt_FTMatchOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2472 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 608: /* "FTWeight" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2481 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 609: /* "FTPrimary" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2490 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 610: /* "opt_FTTimes" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2499 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 611: /* "FTExtensionSelection" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2508 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 613: /* "FTWords" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2517 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 614: /* "FTWordsValue" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2526 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 616: /* "FTAnyallOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2535 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 619: /* "FTPosFilter" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2544 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 620: /* "FTOrder" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2553 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 621: /* "FTWindow" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2562 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 622: /* "FTDistance" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2571 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 623: /* "FTUnit" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2580 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 624: /* "FTMatchOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2589 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 625: /* "FTMatchOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2598 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 626: /* "FTCaseOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2607 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 627: /* "FTDiacriticsOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2616 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 628: /* "FTExtensionOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2625 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 629: /* "FTStemOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2634 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 630: /* "FTThesaurusOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2643 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 634: /* "FTThesaurusID" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2652 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 637: /* "FTStopWordOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2661 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 638: /* "FTStopWords" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2670 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 642: /* "FTStopWordsInclExcl" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2679 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 643: /* "FTLanguageOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2688 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 644: /* "FTWildCardOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2697 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 645: /* "FTContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2706 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 646: /* "FTTimes" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2715 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 647: /* "FTRange" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2724 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 648: /* "FTScope" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2733 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 649: /* "FTBigUnit" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2742 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 650: /* "FTIgnoreOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 816 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2751 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 651: /* "JSONArrayConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2760 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 652: /* "JSONSimpleObjectUnion" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2769 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 653: /* "JSONAccumulatorObjectUnion" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2778 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 654: /* "JSONObjectConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2787 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 655: /* "JSONPairList" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2796 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 656: /* "JSONInsertExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2805 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 657: /* "JSONAppendExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2814 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 658: /* "JSONDeleteExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2823 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 659: /* "JSONRenameExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2832 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 660: /* "JSONReplaceExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 817 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2841 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 666: /* "QNAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2850 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 667: /* "FUNCTION_NAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2859 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-      case 668: /* "EQNAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 819 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2868 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
-	break;
-
-	default:
-	  break;
-      }
+    {
+      case 111: /* "'DECIMAL'" */
+/* Line 452 of lalr1.cc  */
+#line 791 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { delete ((*yyvaluep).decval); };
+/* Line 452 of lalr1.cc  */
+#line 313 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 126: /* "'DOUBLE'" */
+/* Line 452 of lalr1.cc  */
+#line 790 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { delete ((*yyvaluep).dval); };
+/* Line 452 of lalr1.cc  */
+#line 320 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 151: /* "'INTEGER'" */
+/* Line 452 of lalr1.cc  */
+#line 789 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { delete ((*yyvaluep).ival); };
+/* Line 452 of lalr1.cc  */
+#line 327 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 347: /* VersionDecl */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 334 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 348: /* MainModule */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 341 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 349: /* LibraryModule */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 348 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 350: /* ModuleDecl */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 355 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 351: /* SIND_DeclList */
+/* Line 452 of lalr1.cc  */
+#line 808 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 362 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 352: /* SIND_Decl */
+/* Line 452 of lalr1.cc  */
+#line 808 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 369 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 353: /* Setter */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 376 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 354: /* BoundarySpaceDecl */
+/* Line 452 of lalr1.cc  */
+#line 802 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 383 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 355: /* DefaultCollationDecl */
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 390 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 356: /* BaseURIDecl */
+/* Line 452 of lalr1.cc  */
+#line 802 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 397 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 357: /* ConstructionDecl */
+/* Line 452 of lalr1.cc  */
+#line 802 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 404 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 358: /* OrderingModeDecl */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 411 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 359: /* EmptyOrderDecl */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 418 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 360: /* CopyNamespacesDecl */
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 425 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 361: /* Import */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 432 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 362: /* SchemaImport */
+/* Line 452 of lalr1.cc  */
+#line 808 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 439 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 363: /* URILiteralList */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 446 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 364: /* SchemaPrefix */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 453 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 365: /* ModuleImport */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 460 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 366: /* NamespaceDecl */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 467 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 367: /* DefaultNamespaceDecl */
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 474 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 368: /* VFO_DeclList */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 481 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 369: /* VFO_Decl */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 488 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 370: /* DecimalFormatDecl */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 495 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 371: /* DecimalFormatParamList */
+/* Line 452 of lalr1.cc  */
+#line 819 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { delete ((*yyvaluep).vstrpair); };
+/* Line 452 of lalr1.cc  */
+#line 502 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 372: /* DecimalFormatParam */
+/* Line 452 of lalr1.cc  */
+#line 819 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { delete ((*yyvaluep).strpair); };
+/* Line 452 of lalr1.cc  */
+#line 509 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 374: /* OptionDecl */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 516 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 375: /* FTOptionDecl */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 523 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 376: /* CtxItemDecl */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 530 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 377: /* CtxItemDecl2 */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 537 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 378: /* CtxItemDecl3 */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 544 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 379: /* CtxItemDecl4 */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 551 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 380: /* VarDecl */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 558 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 381: /* VarNameAndType */
+/* Line 452 of lalr1.cc  */
+#line 819 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { delete ((*yyvaluep).varnametype); };
+/* Line 452 of lalr1.cc  */
+#line 565 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 382: /* AnnotationList */
+/* Line 452 of lalr1.cc  */
+#line 801 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 572 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 383: /* Annotation */
+/* Line 452 of lalr1.cc  */
+#line 801 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 579 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 384: /* AnnotationLiteralList */
+/* Line 452 of lalr1.cc  */
+#line 801 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 586 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 385: /* FunctionDecl */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 593 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 386: /* FunctionDecl2 */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 600 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 387: /* FunctionDeclSimple */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 607 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 388: /* FunctionDeclUpdating */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 614 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 389: /* FunctionSig */
+/* Line 452 of lalr1.cc  */
+#line 819 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { delete ((*yyvaluep).fnsig); };
+/* Line 452 of lalr1.cc  */
+#line 621 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 390: /* ParamList */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 628 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 391: /* Param */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 635 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 392: /* CollectionDecl */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 642 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 394: /* IndexDecl */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 649 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 395: /* IndexKeyList */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 656 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 396: /* IndexKeySpec */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 663 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 397: /* IntegrityConstraintDecl */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 670 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 398: /* QueryBody */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 677 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 399: /* StatementsAndOptionalExprTop */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 684 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 400: /* StatementsAndOptionalExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 691 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 401: /* StatementsAndExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 698 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 402: /* Statements */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 705 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 403: /* Statement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 712 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 404: /* BlockStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 719 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 405: /* BlockExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 726 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 406: /* EnclosedStatementsAndOptionalExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 733 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 407: /* VarDeclStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 740 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 410: /* AssignStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 747 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 411: /* ApplyStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 754 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 412: /* ExitStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 761 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 413: /* WhileStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 768 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 414: /* FlowCtlStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 775 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 415: /* FLWORStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 782 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 416: /* ReturnStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 789 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 417: /* IfStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 796 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 418: /* TryStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 419: /* CatchListStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 420: /* CatchStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 817 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 421: /* VoidStatement */
+/* Line 452 of lalr1.cc  */
+#line 814 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 824 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 422: /* Expr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 831 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 423: /* ExprSingle */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 838 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 424: /* ExprSimple */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 845 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 425: /* FLWORExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 852 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 426: /* ReturnExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 859 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 429: /* FLWORWinCond */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 866 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 430: /* WindowClause */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 873 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 431: /* CountClause */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 880 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 432: /* ForLetWinClause */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 887 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 434: /* FLWORClauseList */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 894 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 435: /* ForClause */
+/* Line 452 of lalr1.cc  */
+#line 804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 901 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 437: /* VarInDeclList */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 908 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 438: /* VarInDecl */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 915 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 439: /* PositionalVar */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 922 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 440: /* FTScoreVar */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 929 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 441: /* LetClause */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 936 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 442: /* VarGetsDeclList */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 943 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 443: /* VarGetsDecl */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 950 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 444: /* WindowVarDecl */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 957 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 445: /* WindowVars */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 964 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 446: /* WindowVars3 */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 971 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 447: /* WindowVars2 */
+/* Line 452 of lalr1.cc  */
+#line 811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 978 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 448: /* WhereClause */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 985 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 449: /* GroupByClause */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 992 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 450: /* GroupSpecList */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 999 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 451: /* GroupSpec */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1006 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 452: /* GroupCollationSpec */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1013 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 453: /* OrderByClause */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1020 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 454: /* OrderSpecList */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1027 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 455: /* OrderSpec */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1034 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 456: /* OrderModifier */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1041 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 457: /* OrderDirSpec */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1048 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 458: /* OrderEmptySpec */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1055 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 459: /* OrderCollationSpec */
+/* Line 452 of lalr1.cc  */
+#line 806 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1062 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 460: /* QuantifiedExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1069 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 461: /* QVarInDeclList */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1076 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 462: /* QVarInDecl */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1083 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 463: /* SwitchExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1090 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 464: /* SwitchCaseClauseList */
+/* Line 452 of lalr1.cc  */
+#line 813 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1097 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 465: /* SwitchCaseClause */
+/* Line 452 of lalr1.cc  */
+#line 813 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1104 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 466: /* SwitchCaseOperandList */
+/* Line 452 of lalr1.cc  */
+#line 813 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1111 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 467: /* SwitchStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1118 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 470: /* TypeswitchExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1125 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 471: /* TypeswitchStatement */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1132 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 472: /* CaseClauseList */
+/* Line 452 of lalr1.cc  */
+#line 802 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1139 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 473: /* CaseClause */
+/* Line 452 of lalr1.cc  */
+#line 802 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1146 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 476: /* SequenceTypeList */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1153 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 477: /* IfExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1160 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 478: /* OrExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1167 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 479: /* AndExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1174 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 480: /* NotExpr */
+/* Line 452 of lalr1.cc  */
+#line 814 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1181 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 481: /* ComparisonExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1188 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 482: /* FTContainsExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1195 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 483: /* StringConcatExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1202 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 484: /* opt_FTIgnoreOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1209 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 485: /* RangeExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1216 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 486: /* AdditiveExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1223 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 487: /* MultiplicativeExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1230 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 488: /* UnionExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1237 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 489: /* IntersectExceptExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1244 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 490: /* InstanceofExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1251 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 491: /* TreatExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1258 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 492: /* CastableExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1265 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 493: /* CastExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1272 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 494: /* SingleType */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1279 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 495: /* UnaryExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1286 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 496: /* SignList */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1293 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 497: /* ValueExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1300 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 498: /* SimpleMapExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1307 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 499: /* ValueComp */
+/* Line 452 of lalr1.cc  */
+#line 810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1314 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 500: /* ValidateExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1321 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 501: /* ExtensionExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1328 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 502: /* Pragma_list */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1335 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 503: /* Pragma */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1342 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 504: /* PathExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1349 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 506: /* RelativePathExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1356 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 507: /* StepExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1363 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 508: /* AxisStep */
+/* Line 452 of lalr1.cc  */
+#line 817 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1370 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 509: /* ForwardStep */
+/* Line 452 of lalr1.cc  */
+#line 800 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1377 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 510: /* ForwardAxis */
+/* Line 452 of lalr1.cc  */
+#line 800 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1384 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 511: /* AbbrevForwardStep */
+/* Line 452 of lalr1.cc  */
+#line 800 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1391 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 512: /* ReverseStep */
+/* Line 452 of lalr1.cc  */
+#line 800 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1398 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 513: /* ReverseAxis */
+/* Line 452 of lalr1.cc  */
+#line 800 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1405 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 514: /* NodeTest */
+/* Line 452 of lalr1.cc  */
+#line 800 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1412 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 515: /* NameTest */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1419 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 516: /* Wildcard */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1426 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 517: /* FilterExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1433 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 518: /* PredicateList */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1440 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 519: /* Predicate */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1447 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 520: /* PrimaryExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1454 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 521: /* Literal */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1461 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 522: /* NumericLiteral */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1468 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 524: /* VarRef */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1475 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 525: /* ParenthesizedExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1482 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 526: /* ContextItemExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1489 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 527: /* OrderedExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1496 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 528: /* UnorderedExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1503 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 529: /* FunctionCall */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1510 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 530: /* ArgList */
+/* Line 452 of lalr1.cc  */
+#line 801 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1517 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 534: /* Constructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1524 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 535: /* DirectConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1531 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 536: /* DirElemConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1538 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 537: /* DirElemContentList */
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1545 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 538: /* DirAttributeList */
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1552 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 539: /* DirAttr */
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1559 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 541: /* DirAttributeValue */
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1566 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 542: /* opt_QuoteAttrContentList */
+/* Line 452 of lalr1.cc  */
+#line 808 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1573 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 543: /* QuoteAttrContentList */
+/* Line 452 of lalr1.cc  */
+#line 808 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1580 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 544: /* opt_AposAttrContentList */
+/* Line 452 of lalr1.cc  */
+#line 801 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1587 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 545: /* AposAttrContentList */
+/* Line 452 of lalr1.cc  */
+#line 801 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1594 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 546: /* QuoteAttrValueContent */
+/* Line 452 of lalr1.cc  */
+#line 808 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1601 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 547: /* AposAttrValueContent */
+/* Line 452 of lalr1.cc  */
+#line 801 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1608 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 548: /* DirElemContent */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1615 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 549: /* CommonContent */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1622 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 550: /* DirCommentConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1629 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 551: /* DirPIConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1636 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 552: /* CDataSection */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1643 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 553: /* ComputedConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1650 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 554: /* CompDocConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1657 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 555: /* CompElemConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1664 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 556: /* CompAttrConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1671 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 557: /* CompTextConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1678 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 558: /* CompCommentConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1685 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 559: /* CompPIConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1692 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 560: /* CompNamespaceConstructor */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1699 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 561: /* TypeDeclaration */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1706 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 562: /* SequenceType */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1713 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 563: /* OccurrenceIndicator */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1720 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 564: /* ItemType */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1727 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 565: /* TypeList */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1734 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 566: /* GeneralizedAtomicType */
+/* Line 452 of lalr1.cc  */
+#line 802 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1741 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 567: /* SimpleType */
+/* Line 452 of lalr1.cc  */
+#line 802 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1748 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 568: /* KindTest */
+/* Line 452 of lalr1.cc  */
+#line 805 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1755 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 569: /* AnyKindTest */
+/* Line 452 of lalr1.cc  */
+#line 801 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1762 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 571: /* DocumentTest */
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1769 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 572: /* NamespaceTest */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1776 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 573: /* TextTest */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1783 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 574: /* CommentTest */
+/* Line 452 of lalr1.cc  */
+#line 802 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1790 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 575: /* PITest */
+/* Line 452 of lalr1.cc  */
+#line 807 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1797 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 576: /* AttributeTest */
+/* Line 452 of lalr1.cc  */
+#line 802 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 577: /* SchemaAttributeTest */
+/* Line 452 of lalr1.cc  */
+#line 808 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1811 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 578: /* ElementTest */
+/* Line 452 of lalr1.cc  */
+#line 803 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 579: /* SchemaElementTest */
+/* Line 452 of lalr1.cc  */
+#line 808 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1825 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 580: /* TypeName */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1832 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 581: /* TypeName_WITH_HOOK */
+/* Line 452 of lalr1.cc  */
+#line 809 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1839 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 582: /* StringLiteral */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1846 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 584: /* AnyFunctionTest */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1853 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 585: /* TypedFunctionTest */
+/* Line 452 of lalr1.cc  */
+#line 812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1860 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 588: /* InsertExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1867 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 589: /* DeleteExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1874 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 590: /* ReplaceExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1881 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 591: /* RenameExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1888 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 592: /* TransformExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1895 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 593: /* VarNameList */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1902 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 594: /* VarNameDecl */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1909 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 595: /* TryExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1916 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 596: /* CatchListExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1923 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 597: /* CatchExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1930 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 598: /* BracedExpr */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 1937 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 599: /* NameTestList */
+/* Line 452 of lalr1.cc  */
+#line 819 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { delete ((*yyvaluep).name_test_list); };
+/* Line 452 of lalr1.cc  */
+#line 1944 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 600: /* FTSelection */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1951 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 603: /* FTOr */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1958 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 604: /* FTAnd */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1965 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 605: /* FTMildNot */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1972 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 606: /* FTUnaryNot */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1979 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 607: /* FTPrimaryWithOptions */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1986 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 608: /* opt_FTMatchOptions */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 1993 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 610: /* FTWeight */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2000 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 611: /* FTPrimary */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2007 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 612: /* opt_FTTimes */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2014 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 613: /* FTExtensionSelection */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2021 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 615: /* FTWords */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2028 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 616: /* FTWordsValue */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2035 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 618: /* FTAnyallOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2042 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 621: /* FTPosFilter */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2049 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 622: /* FTOrder */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2056 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 623: /* FTWindow */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2063 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 624: /* FTDistance */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2070 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 625: /* FTUnit */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2077 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 626: /* FTMatchOptions */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2084 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 627: /* FTMatchOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2091 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 628: /* FTCaseOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2098 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 629: /* FTDiacriticsOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2105 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 630: /* FTExtensionOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2112 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 631: /* FTStemOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2119 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 632: /* FTThesaurusOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2126 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 636: /* FTThesaurusID */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2133 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 639: /* FTStopWordOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2140 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 640: /* FTStopWords */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2147 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 644: /* FTStopWordsInclExcl */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2154 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 645: /* FTLanguageOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2161 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 646: /* FTWildCardOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2168 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 647: /* FTContent */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2175 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 648: /* FTTimes */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2182 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 649: /* FTRange */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2189 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 650: /* FTScope */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2196 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 651: /* FTBigUnit */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2203 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 652: /* FTIgnoreOption */
+/* Line 452 of lalr1.cc  */
+#line 815 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2210 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 653: /* JSONArrayConstructor */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2217 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 654: /* JSONSimpleObjectUnion */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2224 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 655: /* JSONAccumulatorObjectUnion */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2231 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 656: /* JSONObjectConstructor */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2238 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 657: /* JSONPairList */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).node) ); };
+/* Line 452 of lalr1.cc  */
+#line 2245 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 658: /* JSONInsertExpr */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2252 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 659: /* JSONAppendExpr */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2259 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 660: /* JSONDeleteExpr */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2266 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 661: /* JSONRenameExpr */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2273 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 662: /* JSONReplaceExpr */
+/* Line 452 of lalr1.cc  */
+#line 816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2280 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 668: /* QNAME */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2287 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 669: /* FUNCTION_NAME */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2294 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+      case 670: /* EQNAME */
+/* Line 452 of lalr1.cc  */
+#line 818 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+        { release_hack( ((*yyvaluep).expr) ); };
+/* Line 452 of lalr1.cc  */
+#line 2301 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+        break;
+
+      default:
+        break;
+    }
   }
 
   void
@@ -2926,17 +2359,18 @@
     int yychar = yyempty_;
     int yytoken = 0;
 
-    /* State.  */
+    // State.
     int yyn;
     int yylen = 0;
     int yystate = 0;
 
-    /* Error handling.  */
+    // Error handling.
     int yynerrs_ = 0;
     int yyerrstatus_ = 0;
 
     /// Semantic value of the lookahead.
-    semantic_type yylval;
+    static semantic_type yyval_default;
+    semantic_type yylval = yyval_default;
     /// Location of the lookahead.
     location_type yylloc;
     /// The locations where the error started and ended.
@@ -2949,27 +2383,29 @@
 
     int yyresult;
 
+    // FIXME: This shoud be completely indented.  It is not yet to
+    // avoid gratuitous conflicts when merging into the master branch.
+    try
+      {
     YYCDEBUG << "Starting parse" << std::endl;
 
 
-    /* User initialization code.  */
-    
-/* Line 565 of lalr1.cc  */
-#line 128 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* User initialization code.  */
+/* Line 539 of lalr1.cc  */
+#line 127 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
 {
     yylloc.begin.filename = yylloc.end.filename = &(driver.theFilename2);
 }
-
-/* Line 565 of lalr1.cc  */
-#line 2965 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.cpp"
+/* Line 539 of lalr1.cc  */
+#line 2401 "/home/colea/work/new-jsoniq/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
        location values to have been already stored, initialize these
        stacks with a primary value.  */
-    yystate_stack_ = state_stack_type (0);
-    yysemantic_stack_ = semantic_stack_type (0);
-    yylocation_stack_ = location_stack_type (0);
+    yystate_stack_.clear ();
+    yysemantic_stack_.clear ();
+    yylocation_stack_.clear ();
     yysemantic_stack_.push (yylval);
     yylocation_stack_.push (yylloc);
 
@@ -2995,11 +2431,10 @@
     /* Read a lookahead token.  */
     if (yychar == yyempty_)
       {
-	YYCDEBUG << "Reading a token: ";
-	yychar = yylex (&yylval, &yylloc);
+        YYCDEBUG << "Reading a token: ";
+        yychar = yylex (&yylval, &yylloc);
       }
 
-
     /* Convert token to internal form.  */
     if (yychar <= yyeof_)
       {
@@ -3070,71 +2505,67 @@
     else
       yyval = yysemantic_stack_[0];
 
+    // Compute the default @$.
     {
       slice<location_type, location_stack_type> slice (yylocation_stack_, yylen);
       YYLLOC_DEFAULT (yyloc, slice, yylen);
     }
+
+    // Perform the reduction.
     YY_REDUCE_PRINT (yyn);
     switch (yyn)
       {
-	  case 3:
-
-/* Line 690 of lalr1.cc  */
-#line 856 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+          case 3:
+/* Line 664 of lalr1.cc  */
+#line 858 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
     break;
 
   case 4:
-
-/* Line 690 of lalr1.cc  */
-#line 860 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 862 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
     break;
 
   case 5:
-
-/* Line 690 of lalr1.cc  */
-#line 864 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 866 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       }
     break;
 
   case 6:
-
-/* Line 690 of lalr1.cc  */
-#line 870 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 872 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL;
       }
     break;
 
   case 7:
-
-/* Line 690 of lalr1.cc  */
-#line 874 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 876 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
     break;
 
   case 8:
-
-/* Line 690 of lalr1.cc  */
-#line 878 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 880 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
     break;
 
   case 9:
-
-/* Line 690 of lalr1.cc  */
-#line 884 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 886 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3142,9 +2573,8 @@
     break;
 
   case 10:
-
-/* Line 690 of lalr1.cc  */
-#line 890 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 892 "/home/colea/work/new-jsoniq/build/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)) );
@@ -3154,9 +2584,8 @@
     break;
 
   case 11:
-
-/* Line 690 of lalr1.cc  */
-#line 898 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 900 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3164,9 +2593,8 @@
     break;
 
   case 12:
-
-/* Line 690 of lalr1.cc  */
-#line 904 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 906 "/home/colea/work/new-jsoniq/build/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)) );
@@ -3176,45 +2604,40 @@
     break;
 
   case 13:
-
-/* Line 690 of lalr1.cc  */
-#line 913 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 915 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), "utf-8" );
     }
     break;
 
   case 14:
-
-/* Line 690 of lalr1.cc  */
-#line 918 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 920 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
     }
     break;
 
   case 15:
-
-/* Line 690 of lalr1.cc  */
-#line 923 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 925 "/home/colea/work/new-jsoniq/build/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 928 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 930 "/home/colea/work/new-jsoniq/build/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 934 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 936 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (1)].node)), NULL);
       (yyval.node) = new MainModule(LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(3) - (3)].expr)), prolog);
@@ -3222,9 +2645,8 @@
     break;
 
   case 18:
-
-/* Line 690 of lalr1.cc  */
-#line 940 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 942 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (1)].node)));
       (yyval.node) = new MainModule(LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(3) - (3)].expr)), prolog);
@@ -3232,9 +2654,8 @@
     break;
 
   case 19:
-
-/* Line 690 of lalr1.cc  */
-#line 946 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 948 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (1)].node)),
@@ -3244,18 +2665,16 @@
     break;
 
   case 20:
-
-/* Line 690 of lalr1.cc  */
-#line 954 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 956 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new MainModule( LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(1) - (1)].expr)), NULL );
     }
     break;
 
   case 21:
-
-/* Line 690 of lalr1.cc  */
-#line 959 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 961 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr);
       (yylocation_stack_[(3) - (1)]).step();
@@ -3265,9 +2684,8 @@
     break;
 
   case 22:
-
-/* Line 690 of lalr1.cc  */
-#line 967 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 969 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr);
       (yylocation_stack_[(3) - (1)]).step();
@@ -3277,9 +2695,8 @@
     break;
 
   case 23:
-
-/* Line 690 of lalr1.cc  */
-#line 975 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 977 "/home/colea/work/new-jsoniq/build/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);
       (yylocation_stack_[(5) - (3)]).step();
@@ -3289,9 +2706,8 @@
     break;
 
   case 24:
-
-/* Line 690 of lalr1.cc  */
-#line 983 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 985 "/home/colea/work/new-jsoniq/build/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);
       (yylocation_stack_[(5) - (1)]).step();
@@ -3301,18 +2717,16 @@
     break;
 
   case 25:
-
-/* Line 690 of lalr1.cc  */
-#line 992 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 994 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(1) - (1)].node)), NULL);
     }
     break;
 
   case 26:
-
-/* Line 690 of lalr1.cc  */
-#line 997 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 999 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (2)].node)), NULL);
       (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(3) - (1)].node)), prolog);
@@ -3320,9 +2734,8 @@
     break;
 
   case 27:
-
-/* Line 690 of lalr1.cc  */
-#line 1003 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1005 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (2)].node)));
       (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(3) - (1)].node)), prolog);
@@ -3330,9 +2743,8 @@
     break;
 
   case 28:
-
-/* Line 690 of lalr1.cc  */
-#line 1009 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1011 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (2)].node)),
@@ -3342,9 +2754,8 @@
     break;
 
   case 29:
-
-/* Line 690 of lalr1.cc  */
-#line 1018 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1020 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(6) - (3)].expr), (yylocation_stack_[(6) - (3)]));
       (yyval.node) = new ModuleDecl( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
@@ -3353,9 +2764,8 @@
     break;
 
   case 30:
-
-/* Line 690 of lalr1.cc  */
-#line 1026 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1028 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       SIND_DeclList *sdl = new SIND_DeclList( LOC((yyloc)) );
       sdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3364,9 +2774,8 @@
     break;
 
   case 31:
-
-/* Line 690 of lalr1.cc  */
-#line 1033 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1035 "/home/colea/work/new-jsoniq/build/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);
@@ -3374,9 +2783,8 @@
     break;
 
   case 32:
-
-/* Line 690 of lalr1.cc  */
-#line 1039 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1041 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       (yylocation_stack_[(3) - (1)]).step();
@@ -3386,135 +2794,120 @@
     break;
 
   case 46:
-
-/* Line 690 of lalr1.cc  */
-#line 1065 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1067 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::preserve_space);
     }
     break;
 
   case 47:
-
-/* Line 690 of lalr1.cc  */
-#line 1070 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1072 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::strip_space);
     }
     break;
 
   case 48:
-
-/* Line 690 of lalr1.cc  */
-#line 1076 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1078 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultCollationDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)) );
     }
     break;
 
   case 49:
-
-/* Line 690 of lalr1.cc  */
-#line 1082 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1084 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BaseURIDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
     break;
 
   case 50:
-
-/* Line 690 of lalr1.cc  */
-#line 1088 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1090 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_preserve);
     }
     break;
 
   case 51:
-
-/* Line 690 of lalr1.cc  */
-#line 1093 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1095 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_strip);
     }
     break;
 
   case 52:
-
-/* Line 690 of lalr1.cc  */
-#line 1099 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1101 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::ordered);
     }
     break;
 
   case 53:
-
-/* Line 690 of lalr1.cc  */
-#line 1104 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1106 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::unordered);
     }
     break;
 
   case 54:
-
-/* Line 690 of lalr1.cc  */
-#line 1110 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1112 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_greatest);
     }
     break;
 
   case 55:
-
-/* Line 690 of lalr1.cc  */
-#line 1115 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1117 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_least);
     }
     break;
 
   case 56:
-
-/* Line 690 of lalr1.cc  */
-#line 1121 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1123 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, true);
     }
     break;
 
   case 57:
-
-/* Line 690 of lalr1.cc  */
-#line 1126 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1128 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, false);
     }
     break;
 
   case 58:
-
-/* Line 690 of lalr1.cc  */
-#line 1131 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1133 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, true);
     }
     break;
 
   case 59:
-
-/* Line 690 of lalr1.cc  */
-#line 1136 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1138 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, false);
     }
     break;
 
   case 62:
-
-/* Line 690 of lalr1.cc  */
-#line 1146 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1148 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yyval.node);
       error((yylocation_stack_[(3) - (2)]), "syntax error, \"import\" should be followed by either \"schema\" or \"module\".");
@@ -3523,18 +2916,16 @@
     break;
 
   case 63:
-
-/* Line 690 of lalr1.cc  */
-#line 1154 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1156 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport( LOC((yyloc)), NULL, SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL );
     }
     break;
 
   case 64:
-
-/* Line 690 of lalr1.cc  */
-#line 1159 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1161 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(4) - (3)].node)),
@@ -3544,9 +2935,8 @@
     break;
 
   case 65:
-
-/* Line 690 of lalr1.cc  */
-#line 1167 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1169 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             NULL,
@@ -3556,9 +2946,8 @@
     break;
 
   case 66:
-
-/* Line 690 of lalr1.cc  */
-#line 1175 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1177 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(6) - (3)].node)),
@@ -3568,9 +2957,8 @@
     break;
 
   case 67:
-
-/* Line 690 of lalr1.cc  */
-#line 1184 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1186 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       URILiteralList *ull = new URILiteralList( LOC((yyloc)));
       ull->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -3579,9 +2967,8 @@
     break;
 
   case 68:
-
-/* Line 690 of lalr1.cc  */
-#line 1191 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1193 "/home/colea/work/new-jsoniq/build/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)) );
@@ -3590,9 +2977,8 @@
     break;
 
   case 69:
-
-/* Line 690 of lalr1.cc  */
-#line 1199 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1201 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(3) - (2)].expr), (yylocation_stack_[(3) - (2)]));
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)));
@@ -3600,18 +2986,16 @@
     break;
 
   case 70:
-
-/* Line 690 of lalr1.cc  */
-#line 1205 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1207 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), true );
     }
     break;
 
   case 71:
-
-/* Line 690 of lalr1.cc  */
-#line 1211 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1213 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL);
       dynamic_cast<ModuleImport *>((yyval.node))->setComment(SYMTAB((yysemantic_stack_[(3) - (2)].sval)));
@@ -3619,9 +3003,8 @@
     break;
 
   case 72:
-
-/* Line 690 of lalr1.cc  */
-#line 1217 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1219 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(6) - (4)].expr), (yylocation_stack_[(6) - (4)]));
       (yyval.node) = new ModuleImport(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)), SYMTAB((yysemantic_stack_[(6) - (6)].sval)), NULL);
@@ -3630,9 +3013,8 @@
     break;
 
   case 73:
-
-/* Line 690 of lalr1.cc  */
-#line 1224 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1226 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(5) - (3)].sval)),
@@ -3642,9 +3024,8 @@
     break;
 
   case 74:
-
-/* Line 690 of lalr1.cc  */
-#line 1232 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1234 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(8) - (4)].expr), (yylocation_stack_[(8) - (4)]));
       (yyval.node) = new ModuleImport(LOC((yyloc)),
@@ -3656,9 +3037,8 @@
     break;
 
   case 75:
-
-/* Line 690 of lalr1.cc  */
-#line 1243 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1245 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(5) - (3)].expr), (yylocation_stack_[(5) - (3)]));
       (yyval.node) = new NamespaceDecl( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)), SYMTAB((yysemantic_stack_[(5) - (5)].sval)) );
@@ -3666,9 +3046,8 @@
     break;
 
   case 76:
-
-/* Line 690 of lalr1.cc  */
-#line 1250 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1252 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_element_default,
@@ -3677,9 +3056,8 @@
     break;
 
   case 77:
-
-/* Line 690 of lalr1.cc  */
-#line 1257 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1259 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_function_default,
@@ -3688,9 +3066,8 @@
     break;
 
   case 78:
-
-/* Line 690 of lalr1.cc  */
-#line 1265 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1267 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       VFO_DeclList *vdl = new VFO_DeclList( LOC((yyloc)));
       vdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3699,9 +3076,8 @@
     break;
 
   case 79:
-
-/* Line 690 of lalr1.cc  */
-#line 1272 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1274 "/home/colea/work/new-jsoniq/build/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);
@@ -3709,9 +3085,8 @@
     break;
 
   case 80:
-
-/* Line 690 of lalr1.cc  */
-#line 1278 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1280 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       (yylocation_stack_[(3) - (1)]).step();
@@ -3721,9 +3096,8 @@
     break;
 
   case 89:
-
-/* Line 690 of lalr1.cc  */
-#line 1297 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1299 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
@@ -3731,9 +3105,8 @@
     break;
 
   case 90:
-
-/* Line 690 of lalr1.cc  */
-#line 1303 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1305 "/home/colea/work/new-jsoniq/build/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);
@@ -3741,9 +3114,8 @@
     break;
 
   case 91:
-
-/* Line 690 of lalr1.cc  */
-#line 1310 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1312 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.vstrpair) = new vector<string_pair_t>();
       (yyval.vstrpair)->push_back( *(yysemantic_stack_[(1) - (1)].strpair) );
@@ -3752,9 +3124,8 @@
     break;
 
   case 92:
-
-/* Line 690 of lalr1.cc  */
-#line 1317 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1319 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yysemantic_stack_[(2) - (1)].vstrpair)->push_back( *(yysemantic_stack_[(2) - (2)].strpair) );
       delete (yysemantic_stack_[(2) - (2)].strpair);
@@ -3763,9 +3134,8 @@
     break;
 
   case 93:
-
-/* Line 690 of lalr1.cc  */
-#line 1325 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1327 "/home/colea/work/new-jsoniq/build/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() );
@@ -3774,79 +3144,68 @@
     break;
 
   case 94:
-
-/* Line 690 of lalr1.cc  */
-#line 1332 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1334 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "decimal-separator"; }
     break;
 
   case 95:
-
-/* Line 690 of lalr1.cc  */
-#line 1333 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1335 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "digit"; }
     break;
 
   case 96:
-
-/* Line 690 of lalr1.cc  */
-#line 1334 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1336 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "grouping-separator"; }
     break;
 
   case 97:
-
-/* Line 690 of lalr1.cc  */
-#line 1335 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1337 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "infinity"; }
     break;
 
   case 98:
-
-/* Line 690 of lalr1.cc  */
-#line 1336 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1338 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "minus-sign"; }
     break;
 
   case 99:
-
-/* Line 690 of lalr1.cc  */
-#line 1337 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1339 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "NaN"; }
     break;
 
   case 100:
-
-/* Line 690 of lalr1.cc  */
-#line 1338 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1340 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "pattern-separator"; }
     break;
 
   case 101:
-
-/* Line 690 of lalr1.cc  */
-#line 1339 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1341 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "percent"; }
     break;
 
   case 102:
-
-/* Line 690 of lalr1.cc  */
-#line 1340 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1342 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "per-mille"; }
     break;
 
   case 103:
-
-/* Line 690 of lalr1.cc  */
-#line 1341 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1343 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "zero-digit"; }
     break;
 
   case 104:
-
-/* Line 690 of lalr1.cc  */
-#line 1345 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1347 "/home/colea/work/new-jsoniq/build/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)));
       if (static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr))->get_localname() == "enable")
@@ -3861,27 +3220,24 @@
     break;
 
   case 105:
-
-/* Line 690 of lalr1.cc  */
-#line 1359 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1361 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FTOptionDecl( LOC((yyloc)), dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (3)].node)) );
     }
     break;
 
   case 106:
-
-/* Line 690 of lalr1.cc  */
-#line 1365 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1367 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(4) - (4)].node);
     }
     break;
 
   case 107:
-
-/* Line 690 of lalr1.cc  */
-#line 1371 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1373 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(3) - (3)].node));
       d->theType = (yysemantic_stack_[(3) - (2)].node);
@@ -3890,18 +3246,16 @@
     break;
 
   case 108:
-
-/* Line 690 of lalr1.cc  */
-#line 1378 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1380 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 109:
-
-/* Line 690 of lalr1.cc  */
-#line 1384 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1386 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(1) - (1)].node));
       d->theIsExternal = false;
@@ -3910,36 +3264,32 @@
     break;
 
   case 110:
-
-/* Line 690 of lalr1.cc  */
-#line 1391 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1393 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), NULL);
     }
     break;
 
   case 111:
-
-/* Line 690 of lalr1.cc  */
-#line 1396 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1398 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
     }
     break;
 
   case 112:
-
-/* Line 690 of lalr1.cc  */
-#line 1402 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1404 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
     break;
 
   case 113:
-
-/* Line 690 of lalr1.cc  */
-#line 1408 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1410 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(4) - (2)].varnametype)));
       (yyval.node) = new GlobalVarDecl(LOC((yyloc)),
@@ -3953,9 +3303,8 @@
     break;
 
   case 114:
-
-/* Line 690 of lalr1.cc  */
-#line 1420 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1422 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(3) - (2)].varnametype)));
       (yyval.node) = new GlobalVarDecl(LOC((yyloc)),
@@ -3969,9 +3318,8 @@
     break;
 
   case 115:
-
-/* Line 690 of lalr1.cc  */
-#line 1432 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1434 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(5) - (2)].varnametype)));
       (yyval.node) = new GlobalVarDecl(LOC((yyloc)),
@@ -3985,18 +3333,16 @@
     break;
 
   case 116:
-
-/* Line 690 of lalr1.cc  */
-#line 1445 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1447 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL, NULL);
     }
     break;
 
   case 117:
-
-/* Line 690 of lalr1.cc  */
-#line 1450 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1452 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)),
@@ -4006,9 +3352,8 @@
     break;
 
   case 118:
-
-/* Line 690 of lalr1.cc  */
-#line 1458 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1460 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -4018,9 +3363,8 @@
     break;
 
   case 119:
-
-/* Line 690 of lalr1.cc  */
-#line 1466 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1468 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (4)].expr)),
@@ -4030,18 +3374,16 @@
     break;
 
   case 120:
-
-/* Line 690 of lalr1.cc  */
-#line 1475 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1477 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationListParsenode(LOC((yyloc)), static_cast<AnnotationParsenode*>((yysemantic_stack_[(1) - (1)].node)));
     }
     break;
 
   case 121:
-
-/* Line 690 of lalr1.cc  */
-#line 1480 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1482 "/home/colea/work/new-jsoniq/build/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);
@@ -4049,18 +3391,16 @@
     break;
 
   case 122:
-
-/* Line 690 of lalr1.cc  */
-#line 1487 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1489 "/home/colea/work/new-jsoniq/build/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 123:
-
-/* Line 690 of lalr1.cc  */
-#line 1492 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1494 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval))),
@@ -4069,18 +3409,16 @@
     break;
 
   case 124:
-
-/* Line 690 of lalr1.cc  */
-#line 1499 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1501 "/home/colea/work/new-jsoniq/build/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 125:
-
-/* Line 690 of lalr1.cc  */
-#line 1504 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1506 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval)), true),
@@ -4089,18 +3427,16 @@
     break;
 
   case 126:
-
-/* Line 690 of lalr1.cc  */
-#line 1512 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1514 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationLiteralListParsenode(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr));
     }
     break;
 
   case 127:
-
-/* Line 690 of lalr1.cc  */
-#line 1517 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1519 "/home/colea/work/new-jsoniq/build/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);
@@ -4108,9 +3444,8 @@
     break;
 
   case 128:
-
-/* Line 690 of lalr1.cc  */
-#line 1524 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1526 "/home/colea/work/new-jsoniq/build/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);
@@ -4118,9 +3453,8 @@
     break;
 
   case 129:
-
-/* Line 690 of lalr1.cc  */
-#line 1530 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1532 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       FunctionDecl* fdecl = static_cast<FunctionDecl*>((yysemantic_stack_[(3) - (3)].node));
       fdecl->setComment( SYMTAB((yysemantic_stack_[(3) - (1)].sval)) );
@@ -4129,28 +3463,9 @@
     }
     break;
 
-  case 130:
-
-/* Line 690 of lalr1.cc  */
-#line 1539 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
-  case 131:
-
-/* Line 690 of lalr1.cc  */
-#line 1544 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
   case 132:
-
-/* Line 690 of lalr1.cc  */
-#line 1550 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1545 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4164,9 +3479,8 @@
     break;
 
   case 133:
-
-/* Line 690 of lalr1.cc  */
-#line 1561 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1556 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4180,9 +3494,8 @@
     break;
 
   case 134:
-
-/* Line 690 of lalr1.cc  */
-#line 1574 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1569 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4196,9 +3509,8 @@
     break;
 
   case 135:
-
-/* Line 690 of lalr1.cc  */
-#line 1586 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1581 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4212,45 +3524,40 @@
     break;
 
   case 136:
-
-/* Line 690 of lalr1.cc  */
-#line 1599 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1594 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL);
     }
     break;
 
   case 137:
-
-/* Line 690 of lalr1.cc  */
-#line 1604 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1599 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
   case 138:
-
-/* Line 690 of lalr1.cc  */
-#line 1609 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1604 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL, dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node)));
     }
     break;
 
   case 139:
-
-/* Line 690 of lalr1.cc  */
-#line 1614 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1609 "/home/colea/work/new-jsoniq/build/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 140:
-
-/* Line 690 of lalr1.cc  */
-#line 1620 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1615 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ParamList *pl = new ParamList( LOC((yyloc)) );
       pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -4259,9 +3566,8 @@
     break;
 
   case 141:
-
-/* Line 690 of lalr1.cc  */
-#line 1627 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1622 "/home/colea/work/new-jsoniq/build/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)) );
@@ -4270,18 +3576,16 @@
     break;
 
   case 142:
-
-/* Line 690 of lalr1.cc  */
-#line 1635 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1630 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL);
     }
     break;
 
   case 143:
-
-/* Line 690 of lalr1.cc  */
-#line 1640 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1635 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)),
                      static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4290,9 +3594,8 @@
     break;
 
   case 144:
-
-/* Line 690 of lalr1.cc  */
-#line 1648 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1643 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)),
@@ -4303,9 +3606,8 @@
     break;
 
   case 145:
-
-/* Line 690 of lalr1.cc  */
-#line 1656 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1651 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4316,9 +3618,8 @@
     break;
 
   case 146:
-
-/* Line 690 of lalr1.cc  */
-#line 1664 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1659 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -4329,9 +3630,8 @@
     break;
 
   case 147:
-
-/* Line 690 of lalr1.cc  */
-#line 1672 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1667 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)),
@@ -4342,18 +3642,16 @@
     break;
 
   case 148:
-
-/* Line 690 of lalr1.cc  */
-#line 1682 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1677 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
     break;
 
   case 149:
-
-/* Line 690 of lalr1.cc  */
-#line 1686 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1681 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4362,18 +3660,16 @@
     break;
 
   case 150:
-
-/* Line 690 of lalr1.cc  */
-#line 1692 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1687 "/home/colea/work/new-jsoniq/build/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 1696 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1691 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4382,9 +3678,8 @@
     break;
 
   case 152:
-
-/* Line 690 of lalr1.cc  */
-#line 1703 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1698 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(8) - (3)].expr)),
@@ -4396,9 +3691,8 @@
     break;
 
   case 153:
-
-/* Line 690 of lalr1.cc  */
-#line 1712 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1707 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(9) - (4)].expr)),
@@ -4410,9 +3704,8 @@
     break;
 
   case 154:
-
-/* Line 690 of lalr1.cc  */
-#line 1723 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1718 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       IndexKeyList* keyList = new IndexKeyList(LOC((yyloc)));
       keyList->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -4421,9 +3714,8 @@
     break;
 
   case 155:
-
-/* Line 690 of lalr1.cc  */
-#line 1729 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1724 "/home/colea/work/new-jsoniq/build/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);
@@ -4431,18 +3723,16 @@
     break;
 
   case 156:
-
-/* Line 690 of lalr1.cc  */
-#line 1736 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1731 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL, NULL);
     }
     break;
 
   case 157:
-
-/* Line 690 of lalr1.cc  */
-#line 1741 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1736 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4452,9 +3742,8 @@
     break;
 
   case 158:
-
-/* Line 690 of lalr1.cc  */
-#line 1748 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1743 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4464,9 +3753,8 @@
     break;
 
   case 159:
-
-/* Line 690 of lalr1.cc  */
-#line 1755 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1750 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(3) - (1)].expr),
@@ -4476,9 +3764,8 @@
     break;
 
   case 160:
-
-/* Line 690 of lalr1.cc  */
-#line 1765 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1760 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollSimpleCheck(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(11) - (4)].expr)),
@@ -4489,9 +3776,8 @@
     break;
 
   case 161:
-
-/* Line 690 of lalr1.cc  */
-#line 1775 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1770 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollUniqueKeyCheck(LOC((yyloc)),
                                     static_cast<QName*>((yysemantic_stack_[(14) - (4)].expr)),
@@ -4502,9 +3788,8 @@
     break;
 
   case 162:
-
-/* Line 690 of lalr1.cc  */
-#line 1785 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1780 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollForeachNode(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(13) - (4)].expr)),
@@ -4515,9 +3800,8 @@
     break;
 
   case 163:
-
-/* Line 690 of lalr1.cc  */
-#line 1796 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1791 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICForeignKey( LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(22) - (4)].expr)),
@@ -4531,9 +3815,8 @@
     break;
 
   case 164:
-
-/* Line 690 of lalr1.cc  */
-#line 1809 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       if ((yysemantic_stack_[(1) - (1)].expr) == NULL)
       {
@@ -4550,72 +3833,64 @@
     break;
 
   case 165:
-
-/* Line 690 of lalr1.cc  */
-#line 1825 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1820 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 166:
-
-/* Line 690 of lalr1.cc  */
-#line 1829 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1824 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 167:
-
-/* Line 690 of lalr1.cc  */
-#line 1833 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1828 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = NULL;
     }
     break;
 
   case 168:
-
-/* Line 690 of lalr1.cc  */
-#line 1839 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1834 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 169:
-
-/* Line 690 of lalr1.cc  */
-#line 1843 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1838 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 170:
-
-/* Line 690 of lalr1.cc  */
-#line 1847 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1842 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new BlockBody(LOC((yyloc)));
     }
     break;
 
   case 171:
-
-/* Line 690 of lalr1.cc  */
-#line 1853 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1848 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 172:
-
-/* Line 690 of lalr1.cc  */
-#line 1858 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1853 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
       blk->add((yysemantic_stack_[(2) - (2)].expr));
@@ -4624,9 +3899,8 @@
     break;
 
   case 173:
-
-/* Line 690 of lalr1.cc  */
-#line 1866 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1861 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = new BlockBody(LOC((yyloc)));
       blk->add((yysemantic_stack_[(1) - (1)].expr));
@@ -4635,9 +3909,8 @@
     break;
 
   case 174:
-
-/* Line 690 of lalr1.cc  */
-#line 1873 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1868 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
       blk->add((yysemantic_stack_[(2) - (2)].expr));
@@ -4646,9 +3919,8 @@
     break;
 
   case 175:
-
-/* Line 690 of lalr1.cc  */
-#line 1880 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1875 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(4) - (1)].expr);
       (yyval.expr) = (yysemantic_stack_[(4) - (2)].expr);
@@ -4662,18 +3934,16 @@
     break;
 
   case 189:
-
-/* Line 690 of lalr1.cc  */
-#line 1908 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1903 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
     break;
 
   case 190:
-
-/* Line 690 of lalr1.cc  */
-#line 1914 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1909 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* block = dynamic_cast<BlockBody*>((yysemantic_stack_[(3) - (2)].expr));
       if ((yysemantic_stack_[(3) - (2)].expr) == NULL || (block != NULL && block->isEmpty()))
@@ -4696,27 +3966,24 @@
     break;
 
   case 191:
-
-/* Line 690 of lalr1.cc  */
-#line 1936 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1931 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
     break;
 
   case 192:
-
-/* Line 690 of lalr1.cc  */
-#line 1942 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1937 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(2) - (1)].expr);
     }
     break;
 
   case 193:
-
-/* Line 690 of lalr1.cc  */
-#line 1948 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1943 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = static_cast<VarDeclStmt*>((yysemantic_stack_[(3) - (1)].expr));
       vdecl->add((yysemantic_stack_[(3) - (3)].node));
@@ -4725,9 +3992,8 @@
     break;
 
   case 194:
-
-/* Line 690 of lalr1.cc  */
-#line 1955 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1950 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)), NULL);
       vdecl->add((yysemantic_stack_[(2) - (2)].node));
@@ -4736,9 +4002,8 @@
     break;
 
   case 195:
-
-/* Line 690 of lalr1.cc  */
-#line 1962 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1957 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)),
                                            static_cast<AnnotationListParsenode*>((yysemantic_stack_[(3) - (1)].node)));
@@ -4748,9 +4013,8 @@
     break;
 
   case 196:
-
-/* Line 690 of lalr1.cc  */
-#line 1971 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1966 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)),
@@ -4762,9 +4026,8 @@
     break;
 
   case 197:
-
-/* Line 690 of lalr1.cc  */
-#line 1980 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1975 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4776,9 +4039,8 @@
     break;
 
   case 198:
-
-/* Line 690 of lalr1.cc  */
-#line 1989 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1984 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4790,9 +4052,8 @@
     break;
 
   case 199:
-
-/* Line 690 of lalr1.cc  */
-#line 1998 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 1993 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4804,36 +4065,32 @@
     break;
 
   case 200:
-
-/* Line 690 of lalr1.cc  */
-#line 2009 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2004 "/home/colea/work/new-jsoniq/build/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 201:
-
-/* Line 690 of lalr1.cc  */
-#line 2015 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2010 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ApplyExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr));
     }
     break;
 
   case 202:
-
-/* Line 690 of lalr1.cc  */
-#line 2021 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2016 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ExitExpr(LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr));
     }
     break;
 
   case 203:
-
-/* Line 690 of lalr1.cc  */
-#line 2027 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2022 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* bb = dynamic_cast<BlockBody *>((yysemantic_stack_[(5) - (5)].expr));
       if (bb == NULL)
@@ -4846,27 +4103,24 @@
     break;
 
   case 204:
-
-/* Line 690 of lalr1.cc  */
-#line 2039 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2034 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement(LOC((yyloc)), FlowCtlStatement::BREAK);
     }
     break;
 
   case 205:
-
-/* Line 690 of lalr1.cc  */
-#line 2044 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2039 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement( LOC((yyloc)), FlowCtlStatement::CONTINUE );
     }
     break;
 
   case 206:
-
-/* Line 690 of lalr1.cc  */
-#line 2050 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2045 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ReturnExpr* re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4879,9 +4133,8 @@
     break;
 
   case 207:
-
-/* Line 690 of lalr1.cc  */
-#line 2062 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2057 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* retExpr = (yysemantic_stack_[(2) - (2)].expr);
       if (dynamic_cast<VarDeclStmt*>(retExpr) != NULL)
@@ -4895,9 +4148,8 @@
     break;
 
   case 208:
-
-/* Line 690 of lalr1.cc  */
-#line 2075 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2070 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* thenExpr = (yysemantic_stack_[(8) - (6)].expr);
       exprnode* elseExpr = (yysemantic_stack_[(8) - (8)].expr);
@@ -4918,18 +4170,16 @@
     break;
 
   case 209:
-
-/* Line 690 of lalr1.cc  */
-#line 2095 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2090 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new TryExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
   case 210:
-
-/* Line 690 of lalr1.cc  */
-#line 2101 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2096 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       CatchListExpr* cle = new CatchListExpr( LOC((yyloc)) );
       cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -4938,9 +4188,8 @@
     break;
 
   case 211:
-
-/* Line 690 of lalr1.cc  */
-#line 2108 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2103 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
       if ( cle )
@@ -4950,9 +4199,8 @@
     break;
 
   case 212:
-
-/* Line 690 of lalr1.cc  */
-#line 2117 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2112 "/home/colea/work/new-jsoniq/build/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);
@@ -4960,27 +4208,24 @@
     break;
 
   case 213:
-
-/* Line 690 of lalr1.cc  */
-#line 2124 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2119 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new BlockBody(LOC((yyloc)));
     }
     break;
 
   case 214:
-
-/* Line 690 of lalr1.cc  */
-#line 2130 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2125 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 215:
-
-/* Line 690 of lalr1.cc  */
-#line 2135 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2130 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       Expr* expr = dynamic_cast<Expr*>((yysemantic_stack_[(3) - (1)].expr));
       if ( !expr )
@@ -4994,9 +4239,8 @@
     break;
 
   case 216:
-
-/* Line 690 of lalr1.cc  */
-#line 2147 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2142 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (1)].expr);
       (yyval.expr) = (yysemantic_stack_[(3) - (3)].expr);
@@ -5009,9 +4253,8 @@
     break;
 
   case 235:
-
-/* Line 690 of lalr1.cc  */
-#line 2181 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2176 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ReturnExpr *re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -5024,63 +4267,56 @@
     break;
 
   case 236:
-
-/* Line 690 of lalr1.cc  */
-#line 2193 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2188 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ReturnExpr( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr) );
     }
     break;
 
   case 237:
-
-/* Line 690 of lalr1.cc  */
-#line 2199 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2194 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_sliding;
     }
     break;
 
   case 238:
-
-/* Line 690 of lalr1.cc  */
-#line 2204 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2199 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_tumbling;
     }
     break;
 
   case 239:
-
-/* Line 690 of lalr1.cc  */
-#line 2210 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2205 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_start;
     }
     break;
 
   case 240:
-
-/* Line 690 of lalr1.cc  */
-#line 2215 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2210 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_end;
     }
     break;
 
   case 241:
-
-/* Line 690 of lalr1.cc  */
-#line 2220 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2215 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
     (yyval.strval) = parser::the_only_end;
   }
     break;
 
   case 242:
-
-/* Line 690 of lalr1.cc  */
-#line 2226 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2221 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             dynamic_cast<WindowVars*>((yysemantic_stack_[(4) - (2)].node)),
@@ -5091,9 +4327,8 @@
     break;
 
   case 243:
-
-/* Line 690 of lalr1.cc  */
-#line 2235 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2230 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             NULL,
@@ -5104,9 +4339,8 @@
     break;
 
   case 244:
-
-/* Line 690 of lalr1.cc  */
-#line 2246 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2241 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(5) - (2)].strval) == parser::the_tumbling ?
@@ -5119,9 +4353,8 @@
     break;
 
   case 245:
-
-/* Line 690 of lalr1.cc  */
-#line 2258 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2253 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(4) - (2)].strval) == parser::the_tumbling ?
@@ -5133,18 +4366,16 @@
     break;
 
   case 246:
-
-/* Line 690 of lalr1.cc  */
-#line 2269 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2264 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CountClause(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
   case 255:
-
-/* Line 690 of lalr1.cc  */
-#line 2287 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2282 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       FLWORClauseList *fcl = new FLWORClauseList( LOC((yyloc)) );
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5153,9 +4384,8 @@
     break;
 
   case 256:
-
-/* Line 690 of lalr1.cc  */
-#line 2294 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2289 "/home/colea/work/new-jsoniq/build/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)) );
@@ -5164,18 +4394,16 @@
     break;
 
   case 257:
-
-/* Line 690 of lalr1.cc  */
-#line 2303 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2298 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ForClause(LOC((yyloc)), dynamic_cast<VarInDeclList*>((yysemantic_stack_[(3) - (3)].node)));
     }
     break;
 
   case 258:
-
-/* Line 690 of lalr1.cc  */
-#line 2307 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2302 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected qualified name \""
@@ -5186,9 +4414,8 @@
     break;
 
   case 259:
-
-/* Line 690 of lalr1.cc  */
-#line 2315 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2310 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected qualified name \""
@@ -5199,9 +4426,8 @@
     break;
 
   case 260:
-
-/* Line 690 of lalr1.cc  */
-#line 2325 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2320 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = NULL;
       error((yylocation_stack_[(2) - (2)]), "");
@@ -5210,17 +4436,15 @@
     break;
 
   case 262:
-
-/* Line 690 of lalr1.cc  */
-#line 2334 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2329 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
     }
     break;
 
   case 263:
-
-/* Line 690 of lalr1.cc  */
-#line 2339 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2334 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       VarInDeclList* vdl = new VarInDeclList( LOC((yyloc)) );
       vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5229,9 +4453,8 @@
     break;
 
   case 264:
-
-/* Line 690 of lalr1.cc  */
-#line 2346 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2341 "/home/colea/work/new-jsoniq/build/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)) );
@@ -5240,9 +4463,8 @@
     break;
 
   case 265:
-
-/* Line 690 of lalr1.cc  */
-#line 2353 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2348 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
       error((yylocation_stack_[(3) - (3)]), "syntax error, unexpected QName \""
@@ -5253,9 +4475,8 @@
     break;
 
   case 266:
-
-/* Line 690 of lalr1.cc  */
-#line 2363 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2358 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)),
@@ -5268,9 +4489,8 @@
     break;
 
   case 267:
-
-/* Line 690 of lalr1.cc  */
-#line 2373 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2368 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5283,9 +4503,8 @@
     break;
 
   case 268:
-
-/* Line 690 of lalr1.cc  */
-#line 2383 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2378 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5298,9 +4517,8 @@
     break;
 
   case 269:
-
-/* Line 690 of lalr1.cc  */
-#line 2393 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2388 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5313,9 +4531,8 @@
     break;
 
   case 270:
-
-/* Line 690 of lalr1.cc  */
-#line 2403 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2398 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5328,9 +4545,8 @@
     break;
 
   case 271:
-
-/* Line 690 of lalr1.cc  */
-#line 2413 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2408 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5343,9 +4559,8 @@
     break;
 
   case 272:
-
-/* Line 690 of lalr1.cc  */
-#line 2423 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2418 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5358,9 +4573,8 @@
     break;
 
   case 273:
-
-/* Line 690 of lalr1.cc  */
-#line 2433 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2428 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(7) - (1)].expr)),
@@ -5373,9 +4587,8 @@
     break;
 
   case 274:
-
-/* Line 690 of lalr1.cc  */
-#line 2443 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2438 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5387,9 +4600,8 @@
     break;
 
   case 275:
-
-/* Line 690 of lalr1.cc  */
-#line 2452 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2447 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5402,9 +4614,8 @@
     break;
 
   case 276:
-
-/* Line 690 of lalr1.cc  */
-#line 2462 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2457 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5417,9 +4628,8 @@
     break;
 
   case 277:
-
-/* Line 690 of lalr1.cc  */
-#line 2472 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2467 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5432,36 +4642,32 @@
     break;
 
   case 278:
-
-/* Line 690 of lalr1.cc  */
-#line 2484 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2479 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new PositionalVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
   case 279:
-
-/* Line 690 of lalr1.cc  */
-#line 2490 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2485 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FTScoreVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
   case 280:
-
-/* Line 690 of lalr1.cc  */
-#line 2496 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2491 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new LetClause( LOC((yyloc)), dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(2) - (2)].node)) );
         }
     break;
 
   case 281:
-
-/* Line 690 of lalr1.cc  */
-#line 2502 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2497 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             VarGetsDeclList *vgdl = new VarGetsDeclList( LOC((yyloc)) );
             vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5470,9 +4676,8 @@
     break;
 
   case 282:
-
-/* Line 690 of lalr1.cc  */
-#line 2508 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2503 "/home/colea/work/new-jsoniq/build/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)) );
@@ -5481,9 +4686,8 @@
     break;
 
   case 283:
-
-/* Line 690 of lalr1.cc  */
-#line 2516 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2511 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5494,9 +4698,8 @@
     break;
 
   case 284:
-
-/* Line 690 of lalr1.cc  */
-#line 2524 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2519 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5507,9 +4710,8 @@
     break;
 
   case 285:
-
-/* Line 690 of lalr1.cc  */
-#line 2532 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2527 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            dynamic_cast<FTScoreVar*>((yysemantic_stack_[(3) - (1)].node))->get_var_name(),
@@ -5520,9 +4722,8 @@
     break;
 
   case 286:
-
-/* Line 690 of lalr1.cc  */
-#line 2540 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2535 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5533,9 +4734,8 @@
     break;
 
   case 287:
-
-/* Line 690 of lalr1.cc  */
-#line 2550 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2545 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5544,9 +4744,8 @@
     break;
 
   case 288:
-
-/* Line 690 of lalr1.cc  */
-#line 2556 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2551 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5556,18 +4755,16 @@
     break;
 
   case 290:
-
-/* Line 690 of lalr1.cc  */
-#line 2566 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2561 "/home/colea/work/new-jsoniq/build/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 291:
-
-/* Line 690 of lalr1.cc  */
-#line 2570 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2565 "/home/colea/work/new-jsoniq/build/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)));
@@ -5575,18 +4772,16 @@
     break;
 
   case 292:
-
-/* Line 690 of lalr1.cc  */
-#line 2577 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2572 "/home/colea/work/new-jsoniq/build/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 293:
-
-/* Line 690 of lalr1.cc  */
-#line 2581 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2576 "/home/colea/work/new-jsoniq/build/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)));
@@ -5594,54 +4789,48 @@
     break;
 
   case 295:
-
-/* Line 690 of lalr1.cc  */
-#line 2589 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2584 "/home/colea/work/new-jsoniq/build/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 296:
-
-/* Line 690 of lalr1.cc  */
-#line 2593 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2588 "/home/colea/work/new-jsoniq/build/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 297:
-
-/* Line 690 of lalr1.cc  */
-#line 2597 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2592 "/home/colea/work/new-jsoniq/build/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 298:
-
-/* Line 690 of lalr1.cc  */
-#line 2603 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2598 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WhereClause(LOC ((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
     break;
 
   case 299:
-
-/* Line 690 of lalr1.cc  */
-#line 2609 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2604 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupByClause(LOC((yyloc)), dynamic_cast<GroupSpecList*>((yysemantic_stack_[(3) - (3)].node)));
     }
     break;
 
   case 300:
-
-/* Line 690 of lalr1.cc  */
-#line 2615 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2610 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       GroupSpecList* gsl = new GroupSpecList(LOC((yyloc)));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5650,9 +4839,8 @@
     break;
 
   case 301:
-
-/* Line 690 of lalr1.cc  */
-#line 2621 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2616 "/home/colea/work/new-jsoniq/build/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)));
@@ -5661,27 +4849,16 @@
     break;
 
   case 302:
-
-/* Line 690 of lalr1.cc  */
-#line 2629 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2624 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL, NULL);
+      (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)), NULL, (yysemantic_stack_[(4) - (4)].expr), NULL);
     }
     break;
 
   case 303:
-
-/* Line 690 of lalr1.cc  */
-#line 2633 "/home/colea/xquery/new-jsoniq/build/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 304:
-
-/* Line 690 of lalr1.cc  */
-#line 2637 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2628 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5691,10 +4868,9 @@
     }
     break;
 
-  case 305:
-
-/* Line 690 of lalr1.cc  */
-#line 2645 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 304:
+/* Line 664 of lalr1.cc  */
+#line 2636 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5704,10 +4880,9 @@
     }
     break;
 
-  case 306:
-
-/* Line 690 of lalr1.cc  */
-#line 2653 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 305:
+/* Line 664 of lalr1.cc  */
+#line 2644 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5717,32 +4892,53 @@
     }
     break;
 
+  case 306:
+/* Line 664 of lalr1.cc  */
+#line 2652 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new GroupSpec(LOC((yyloc)),
+                         static_cast<VarRef*>((yysemantic_stack_[(3) - (2)].expr))->get_qname(),
+                         NULL,
+                         NULL,
+                         static_cast<GroupCollationSpec*>((yysemantic_stack_[(3) - (3)].node)));
+    }
+    break;
+
   case 307:
-
-/* Line 690 of lalr1.cc  */
-#line 2661 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2660 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new GroupSpec(LOC((yyloc)),
-                         static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
-                         NULL,
-                         NULL,
-                         static_cast<GroupCollationSpec*>((yysemantic_stack_[(3) - (3)].node)));
+      VarRef* varRef = dynamic_cast<VarRef*>((yysemantic_stack_[(1) - (1)].expr));
+      if (varRef != NULL)
+        (yyval.node) = new GroupSpec(LOC((yyloc)), varRef, NULL, NULL, NULL);
+      else
+        (yyval.node) = new GroupSpec(LOC((yyloc)), NULL, NULL, (yysemantic_stack_[(1) - (1)].expr), NULL);
     }
     break;
 
   case 308:
+/* Line 664 of lalr1.cc  */
+#line 2668 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      VarRef* varRef = dynamic_cast<VarRef*>((yysemantic_stack_[(2) - (1)].expr));
+      if (varRef != NULL)
+        (yyval.node) = new GroupSpec(LOC((yyloc)), varRef, NULL, NULL, static_cast<GroupCollationSpec*>((yysemantic_stack_[(2) - (2)].node)));
+      else
+        (yyval.node) = new GroupSpec(LOC((yyloc)), NULL, NULL, (yysemantic_stack_[(2) - (1)].expr), static_cast<GroupCollationSpec*>((yysemantic_stack_[(2) - (2)].node)));
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 2671 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 309:
+/* Line 664 of lalr1.cc  */
+#line 2678 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
-  case 309:
-
-/* Line 690 of lalr1.cc  */
-#line 2677 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 310:
+/* Line 664 of lalr1.cc  */
+#line 2684 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (3)].node))
@@ -5750,10 +4946,9 @@
         }
     break;
 
-  case 310:
-
-/* Line 690 of lalr1.cc  */
-#line 2683 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 311:
+/* Line 664 of lalr1.cc  */
+#line 2690 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(4) - (4)].node)), true
@@ -5761,10 +4956,9 @@
         }
     break;
 
-  case 311:
-
-/* Line 690 of lalr1.cc  */
-#line 2691 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 312:
+/* Line 664 of lalr1.cc  */
+#line 2698 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             OrderSpecList *osl = new OrderSpecList( LOC((yyloc)) );
             osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5772,10 +4966,9 @@
         }
     break;
 
-  case 312:
-
-/* Line 690 of lalr1.cc  */
-#line 2697 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 313:
+/* Line 664 of lalr1.cc  */
+#line 2704 "/home/colea/work/new-jsoniq/build/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)) );
@@ -5783,19 +4976,17 @@
         }
     break;
 
-  case 313:
-
-/* Line 690 of lalr1.cc  */
-#line 2705 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 314:
+/* Line 664 of lalr1.cc  */
+#line 2712 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderSpec( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL );
         }
     break;
 
-  case 314:
-
-/* Line 690 of lalr1.cc  */
-#line 2709 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 315:
+/* Line 664 of lalr1.cc  */
+#line 2716 "/home/colea/work/new-jsoniq/build/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))
@@ -5803,10 +4994,9 @@
         }
     break;
 
-  case 315:
-
-/* Line 690 of lalr1.cc  */
-#line 2717 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 316:
+/* Line 664 of lalr1.cc  */
+#line 2724 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL
@@ -5814,10 +5004,9 @@
         }
     break;
 
-  case 316:
-
-/* Line 690 of lalr1.cc  */
-#line 2723 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 317:
+/* Line 664 of lalr1.cc  */
+#line 2730 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -5825,10 +5014,9 @@
         }
     break;
 
-  case 317:
-
-/* Line 690 of lalr1.cc  */
-#line 2729 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 318:
+/* Line 664 of lalr1.cc  */
+#line 2736 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, NULL, dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(1) - (1)].node))
@@ -5836,10 +5024,9 @@
         }
     break;
 
-  case 318:
-
-/* Line 690 of lalr1.cc  */
-#line 2735 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 319:
+/* Line 664 of lalr1.cc  */
+#line 2742 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5850,24 +5037,22 @@
         }
     break;
 
-  case 319:
-
-/* Line 690 of lalr1.cc  */
-#line 2744 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new OrderModifierPN(
-                LOC((yyloc)),
-                dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(2) - (1)].node)),
-                NULL,
-                dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(2) - (2)].node))
-            );
-        }
-    break;
-
   case 320:
+/* Line 664 of lalr1.cc  */
+#line 2751 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new OrderModifierPN(
+                LOC((yyloc)),
+                dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(2) - (1)].node)),
+                NULL,
+                dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(2) - (2)].node))
+            );
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 2753 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 321:
+/* Line 664 of lalr1.cc  */
+#line 2760 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5878,10 +5063,9 @@
         }
     break;
 
-  case 321:
-
-/* Line 690 of lalr1.cc  */
-#line 2762 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 322:
+/* Line 664 of lalr1.cc  */
+#line 2769 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5892,28 +5076,25 @@
         }
     break;
 
-  case 322:
-
-/* Line 690 of lalr1.cc  */
-#line 2773 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 323:
+/* Line 664 of lalr1.cc  */
+#line 2780 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_ascending );
         }
     break;
 
-  case 323:
-
-/* Line 690 of lalr1.cc  */
-#line 2777 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 324:
+/* Line 664 of lalr1.cc  */
+#line 2784 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_descending );
         }
     break;
 
-  case 324:
-
-/* Line 690 of lalr1.cc  */
-#line 2783 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 325:
+/* Line 664 of lalr1.cc  */
+#line 2790 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_greatest
@@ -5921,10 +5102,9 @@
         }
     break;
 
-  case 325:
-
-/* Line 690 of lalr1.cc  */
-#line 2789 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 326:
+/* Line 664 of lalr1.cc  */
+#line 2796 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_least
@@ -5932,19 +5112,17 @@
         }
     break;
 
-  case 326:
-
-/* Line 690 of lalr1.cc  */
-#line 2797 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 327:
+/* Line 664 of lalr1.cc  */
+#line 2804 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
-  case 327:
-
-/* Line 690 of lalr1.cc  */
-#line 2803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 328:
+/* Line 664 of lalr1.cc  */
+#line 2810 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5955,10 +5133,9 @@
         }
     break;
 
-  case 328:
-
-/* Line 690 of lalr1.cc  */
-#line 2812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 329:
+/* Line 664 of lalr1.cc  */
+#line 2819 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5969,10 +5146,9 @@
         }
     break;
 
-  case 329:
-
-/* Line 690 of lalr1.cc  */
-#line 2823 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 330:
+/* Line 664 of lalr1.cc  */
+#line 2830 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       QVarInDeclList *qvidl = new QVarInDeclList( LOC((yyloc)) );
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5980,10 +5156,9 @@
     }
     break;
 
-  case 330:
-
-/* Line 690 of lalr1.cc  */
-#line 2829 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 331:
+/* Line 664 of lalr1.cc  */
+#line 2836 "/home/colea/work/new-jsoniq/build/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)) );
@@ -5991,19 +5166,17 @@
     }
     break;
 
-  case 331:
-
-/* Line 690 of lalr1.cc  */
-#line 2837 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 332:
+/* Line 664 of lalr1.cc  */
+#line 2844 "/home/colea/work/new-jsoniq/build/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 332:
-
-/* Line 690 of lalr1.cc  */
-#line 2841 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 333:
+/* Line 664 of lalr1.cc  */
+#line 2848 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -6012,50 +5185,45 @@
     }
     break;
 
-  case 333:
-
-/* Line 690 of lalr1.cc  */
-#line 2850 "/home/colea/xquery/new-jsoniq/build/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 334:
-
-/* Line 690 of lalr1.cc  */
-#line 2856 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2857 "/home/colea/work/new-jsoniq/build/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;
+      (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 335:
-
-/* Line 690 of lalr1.cc  */
-#line 2862 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2863 "/home/colea/work/new-jsoniq/build/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);
+      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 336:
-
-/* Line 690 of lalr1.cc  */
-#line 2870 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2869 "/home/colea/work/new-jsoniq/build/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));
+      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 337:
+/* Line 664 of lalr1.cc  */
+#line 2877 "/home/colea/work/new-jsoniq/build/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;
 
-/* Line 690 of lalr1.cc  */
-#line 2876 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 338:
+/* Line 664 of lalr1.cc  */
+#line 2883 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       SwitchCaseOperandList* sco_list_p = new SwitchCaseOperandList(LOC((yyloc)));
       sco_list_p->push_back((yysemantic_stack_[(2) - (2)].expr));
@@ -6063,10 +5231,9 @@
     }
     break;
 
-  case 338:
-
-/* Line 690 of lalr1.cc  */
-#line 2882 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 339:
+/* Line 664 of lalr1.cc  */
+#line 2889 "/home/colea/work/new-jsoniq/build/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));
@@ -6074,111 +5241,101 @@
     }
     break;
 
-  case 339:
-
-/* Line 690 of lalr1.cc  */
-#line 2890 "/home/colea/xquery/new-jsoniq/build/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 340:
-
-/* Line 690 of lalr1.cc  */
-#line 2896 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2897 "/home/colea/work/new-jsoniq/build/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;
+      (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 341:
-
-/* Line 690 of lalr1.cc  */
-#line 2902 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2903 "/home/colea/work/new-jsoniq/build/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);
+      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 342:
-
-/* Line 690 of lalr1.cc  */
-#line 2910 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2909 "/home/colea/work/new-jsoniq/build/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));
+      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 343:
-
-/* Line 690 of lalr1.cc  */
-#line 2916 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2917 "/home/colea/work/new-jsoniq/build/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));
+      (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
   case 344:
-
-/* Line 690 of lalr1.cc  */
-#line 2923 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2923 "/home/colea/work/new-jsoniq/build/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 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 2933 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2930 "/home/colea/work/new-jsoniq/build/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));
+      (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 2940 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2940 "/home/colea/work/new-jsoniq/build/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 TypeswitchExpr(LOC((yyloc)),
+                              (yysemantic_stack_[(8) - (3)].expr),
+                              static_cast<CaseClauseList*>((yysemantic_stack_[(8) - (5)].node)),
+                              (yysemantic_stack_[(8) - (8)].expr));
     }
     break;
 
   case 347:
-
-/* Line 690 of lalr1.cc  */
-#line 2950 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2947 "/home/colea/work/new-jsoniq/build/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 348:
+/* Line 664 of lalr1.cc  */
+#line 2957 "/home/colea/work/new-jsoniq/build/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;
 
-/* Line 690 of lalr1.cc  */
-#line 2956 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 349:
+/* Line 664 of lalr1.cc  */
+#line 2963 "/home/colea/work/new-jsoniq/build/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)));
@@ -6186,44 +5343,40 @@
     }
     break;
 
-  case 349:
-
-/* Line 690 of lalr1.cc  */
-#line 2964 "/home/colea/xquery/new-jsoniq/build/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 350:
-
-/* Line 690 of lalr1.cc  */
-#line 2970 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2971 "/home/colea/work/new-jsoniq/build/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 351:
-
-/* Line 690 of lalr1.cc  */
-#line 2979 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 2977 "/home/colea/work/new-jsoniq/build/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 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 352:
+/* Line 664 of lalr1.cc  */
+#line 2986 "/home/colea/work/new-jsoniq/build/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;
 
-/* Line 690 of lalr1.cc  */
-#line 2985 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 353:
+/* Line 664 of lalr1.cc  */
+#line 2992 "/home/colea/work/new-jsoniq/build/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)));
@@ -6231,33 +5384,30 @@
     }
     break;
 
-  case 353:
-
-/* Line 690 of lalr1.cc  */
-#line 2993 "/home/colea/xquery/new-jsoniq/build/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 354:
-
-/* Line 690 of lalr1.cc  */
-#line 2999 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 3000 "/home/colea/work/new-jsoniq/build/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 355:
+/* Line 664 of lalr1.cc  */
+#line 3006 "/home/colea/work/new-jsoniq/build/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;
 
-/* Line 690 of lalr1.cc  */
-#line 3008 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 356:
+/* Line 664 of lalr1.cc  */
+#line 3015 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       SequenceTypeList* seqList = new SequenceTypeList(LOC((yyloc)));
       seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6265,10 +5415,9 @@
     }
     break;
 
-  case 356:
-
-/* Line 690 of lalr1.cc  */
-#line 3014 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 357:
+/* Line 664 of lalr1.cc  */
+#line 3021 "/home/colea/work/new-jsoniq/build/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)));
@@ -6276,64 +5425,57 @@
     }
     break;
 
-  case 357:
-
-/* Line 690 of lalr1.cc  */
-#line 3022 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 358:
+/* Line 664 of lalr1.cc  */
+#line 3029 "/home/colea/work/new-jsoniq/build/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 358:
-
-/* Line 690 of lalr1.cc  */
-#line 3028 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
   case 359:
+/* Line 664 of lalr1.cc  */
+#line 3035 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3032 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 360:
+/* Line 664 of lalr1.cc  */
+#line 3039 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new OrExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
     }
     break;
 
-  case 360:
-
-/* Line 690 of lalr1.cc  */
-#line 3038 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 361:
+/* Line 664 of lalr1.cc  */
+#line 3045 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3043 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 362:
+/* Line 664 of lalr1.cc  */
+#line 3050 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AndExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 362:
-
-/* Line 690 of lalr1.cc  */
-#line 3049 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 363:
+/* Line 664 of lalr1.cc  */
+#line 3056 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3053 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 364:
+/* Line 664 of lalr1.cc  */
+#line 3060 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new ComparisonExpr(
               LOC((yyloc)),
@@ -6344,19 +5486,17 @@
         }
     break;
 
-  case 364:
-
-/* Line 690 of lalr1.cc  */
-#line 3064 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 365:
+/* Line 664 of lalr1.cc  */
+#line 3071 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3068 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 366:
+/* Line 664 of lalr1.cc  */
+#line 3075 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6367,19 +5507,17 @@
         }
     break;
 
-  case 366:
-
-/* Line 690 of lalr1.cc  */
-#line 3079 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 367:
+/* Line 664 of lalr1.cc  */
+#line 3086 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3083 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 368:
+/* Line 664 of lalr1.cc  */
+#line 3090 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new FTContainsExpr(
                 LOC((yyloc)),
@@ -6390,100 +5528,89 @@
         }
     break;
 
-  case 368:
-
-/* Line 690 of lalr1.cc  */
-#line 3094 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 369:
+/* Line 664 of lalr1.cc  */
+#line 3101 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3098 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 370:
+/* Line 664 of lalr1.cc  */
+#line 3105 "/home/colea/work/new-jsoniq/build/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 3103 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 371:
-
-/* Line 690 of lalr1.cc  */
-#line 3107 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 3110 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 372:
-
-/* Line 690 of lalr1.cc  */
-#line 3113 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 3114 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 373:
+/* Line 664 of lalr1.cc  */
+#line 3120 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3117 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 374:
+/* Line 664 of lalr1.cc  */
+#line 3124 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new RangeExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 374:
-
-/* Line 690 of lalr1.cc  */
-#line 3123 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 375:
+/* Line 664 of lalr1.cc  */
+#line 3130 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3127 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 376:
+/* Line 664 of lalr1.cc  */
+#line 3134 "/home/colea/work/new-jsoniq/build/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) );
         }
     break;
 
-  case 376:
-
-/* Line 690 of lalr1.cc  */
-#line 3131 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 377:
+/* Line 664 of lalr1.cc  */
+#line 3138 "/home/colea/work/new-jsoniq/build/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) );
         }
     break;
 
-  case 377:
-
-/* Line 690 of lalr1.cc  */
-#line 3137 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 378:
+/* Line 664 of lalr1.cc  */
+#line 3144 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3141 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 379:
+/* Line 664 of lalr1.cc  */
+#line 3148 "/home/colea/work/new-jsoniq/build/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)
@@ -6491,10 +5618,9 @@
         }
     break;
 
-  case 379:
-
-/* Line 690 of lalr1.cc  */
-#line 3147 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 380:
+/* Line 664 of lalr1.cc  */
+#line 3154 "/home/colea/work/new-jsoniq/build/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)
@@ -6502,10 +5628,9 @@
         }
     break;
 
-  case 380:
-
-/* Line 690 of lalr1.cc  */
-#line 3153 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 381:
+/* Line 664 of lalr1.cc  */
+#line 3160 "/home/colea/work/new-jsoniq/build/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)
@@ -6513,10 +5638,9 @@
         }
     break;
 
-  case 381:
-
-/* Line 690 of lalr1.cc  */
-#line 3159 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 382:
+/* Line 664 of lalr1.cc  */
+#line 3166 "/home/colea/work/new-jsoniq/build/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)
@@ -6524,46 +5648,41 @@
         }
     break;
 
-  case 382:
-
-/* Line 690 of lalr1.cc  */
-#line 3167 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 383:
-
-/* Line 690 of lalr1.cc  */
-#line 3171 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 3174 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 384:
-
-/* Line 690 of lalr1.cc  */
-#line 3175 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 3178 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 385:
-
-/* Line 690 of lalr1.cc  */
-#line 3181 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 3182 "/home/colea/work/new-jsoniq/build/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 386:
+/* Line 664 of lalr1.cc  */
+#line 3188 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3185 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 387:
+/* Line 664 of lalr1.cc  */
+#line 3192 "/home/colea/work/new-jsoniq/build/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)
@@ -6571,10 +5690,9 @@
         }
     break;
 
-  case 387:
-
-/* Line 690 of lalr1.cc  */
-#line 3191 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 388:
+/* Line 664 of lalr1.cc  */
+#line 3198 "/home/colea/work/new-jsoniq/build/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)
@@ -6582,19 +5700,17 @@
         }
     break;
 
-  case 388:
-
-/* Line 690 of lalr1.cc  */
-#line 3199 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 389:
+/* Line 664 of lalr1.cc  */
+#line 3206 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3203 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 390:
+/* Line 664 of lalr1.cc  */
+#line 3210 "/home/colea/work/new-jsoniq/build/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))
@@ -6602,19 +5718,17 @@
         }
     break;
 
-  case 390:
-
-/* Line 690 of lalr1.cc  */
-#line 3211 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 391:
+/* Line 664 of lalr1.cc  */
+#line 3218 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3215 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 392:
+/* Line 664 of lalr1.cc  */
+#line 3222 "/home/colea/work/new-jsoniq/build/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))
@@ -6622,19 +5736,17 @@
         }
     break;
 
-  case 392:
-
-/* Line 690 of lalr1.cc  */
-#line 3223 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 393:
+/* Line 664 of lalr1.cc  */
+#line 3230 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3227 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 394:
+/* Line 664 of lalr1.cc  */
+#line 3234 "/home/colea/work/new-jsoniq/build/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))
@@ -6642,19 +5754,17 @@
         }
     break;
 
-  case 394:
-
-/* Line 690 of lalr1.cc  */
-#line 3235 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 395:
+/* Line 664 of lalr1.cc  */
+#line 3242 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3239 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 396:
+/* Line 664 of lalr1.cc  */
+#line 3246 "/home/colea/work/new-jsoniq/build/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))
@@ -6662,73 +5772,65 @@
         }
     break;
 
-  case 396:
-
-/* Line 690 of lalr1.cc  */
-#line 3247 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 397:
+/* Line 664 of lalr1.cc  */
+#line 3254 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(1) - (1)].node)), false);
     }
     break;
 
-  case 397:
-
-/* Line 690 of lalr1.cc  */
-#line 3251 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 398:
+/* Line 664 of lalr1.cc  */
+#line 3258 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(2) - (1)].node)), true);
     }
     break;
 
-  case 398:
-
-/* Line 690 of lalr1.cc  */
-#line 3257 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 399:
+/* Line 664 of lalr1.cc  */
+#line 3264 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3261 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 400:
+/* Line 664 of lalr1.cc  */
+#line 3268 "/home/colea/work/new-jsoniq/build/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) );
         }
     break;
 
-  case 400:
-
-/* Line 690 of lalr1.cc  */
-#line 3267 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 401:
+/* Line 664 of lalr1.cc  */
+#line 3274 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SignList( LOC((yyloc)), true );
         }
     break;
 
-  case 401:
-
-/* Line 690 of lalr1.cc  */
-#line 3271 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 402:
+/* Line 664 of lalr1.cc  */
+#line 3278 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SignList( LOC((yyloc)), false );
         }
     break;
 
-  case 402:
-
-/* Line 690 of lalr1.cc  */
-#line 3275 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
-        }
-    break;
-
   case 403:
+/* Line 664 of lalr1.cc  */
+#line 3282 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3279 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 404:
+/* Line 664 of lalr1.cc  */
+#line 3286 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             if ( SignList *sl = dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)) )
                 sl->negate();
@@ -6736,136 +5838,97 @@
         }
     break;
 
-  case 404:
-
-/* Line 690 of lalr1.cc  */
-#line 3287 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 405:
-
-/* Line 690 of lalr1.cc  */
-#line 3291 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 406:
-
-/* Line 690 of lalr1.cc  */
-#line 3295 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 407:
-
-/* Line 690 of lalr1.cc  */
-#line 3301 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 408:
+/* Line 664 of lalr1.cc  */
+#line 3299 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
       }
     break;
 
-  case 408:
-
-/* Line 690 of lalr1.cc  */
-#line 3306 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 409:
+/* Line 664 of lalr1.cc  */
+#line 3304 "/home/colea/work/new-jsoniq/build/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:
-
-/* Line 690 of lalr1.cc  */
-#line 3312 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 410:
+/* Line 664 of lalr1.cc  */
+#line 3310 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_eq );
         }
     break;
 
-  case 410:
-
-/* Line 690 of lalr1.cc  */
-#line 3316 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 411:
+/* Line 664 of lalr1.cc  */
+#line 3314 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ne );
         }
     break;
 
-  case 411:
-
-/* Line 690 of lalr1.cc  */
-#line 3320 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 412:
+/* Line 664 of lalr1.cc  */
+#line 3318 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_lt );
         }
     break;
 
-  case 412:
-
-/* Line 690 of lalr1.cc  */
-#line 3324 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 413:
+/* Line 664 of lalr1.cc  */
+#line 3322 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_le );
         }
     break;
 
-  case 413:
-
-/* Line 690 of lalr1.cc  */
-#line 3328 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 414:
+/* Line 664 of lalr1.cc  */
+#line 3326 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_gt );
         }
     break;
 
-  case 414:
-
-/* Line 690 of lalr1.cc  */
-#line 3332 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 415:
+/* Line 664 of lalr1.cc  */
+#line 3330 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ge );
         }
     break;
 
-  case 415:
-
-/* Line 690 of lalr1.cc  */
-#line 3338 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 416:
+/* Line 664 of lalr1.cc  */
+#line 3336 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 416:
-
-/* Line 690 of lalr1.cc  */
-#line 3342 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 417:
+/* Line 664 of lalr1.cc  */
+#line 3340 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "lax", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
-  case 417:
-
-/* Line 690 of lalr1.cc  */
-#line 3346 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 418:
+/* Line 664 of lalr1.cc  */
+#line 3344 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
-  case 418:
-
-/* Line 690 of lalr1.cc  */
-#line 3350 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 419:
+/* Line 664 of lalr1.cc  */
+#line 3348 "/home/colea/work/new-jsoniq/build/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)
@@ -6874,10 +5937,9 @@
         }
     break;
 
-  case 419:
-
-/* Line 690 of lalr1.cc  */
-#line 3359 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 420:
+/* Line 664 of lalr1.cc  */
+#line 3357 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(3) - (1)].node)), NULL
@@ -6885,10 +5947,9 @@
         }
     break;
 
-  case 420:
-
-/* Line 690 of lalr1.cc  */
-#line 3365 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 421:
+/* Line 664 of lalr1.cc  */
+#line 3363 "/home/colea/work/new-jsoniq/build/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)
@@ -6896,10 +5957,9 @@
         }
     break;
 
-  case 421:
-
-/* Line 690 of lalr1.cc  */
-#line 3373 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 422:
+/* Line 664 of lalr1.cc  */
+#line 3371 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             PragmaList *pl = new PragmaList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -6907,10 +5967,9 @@
         }
     break;
 
-  case 422:
-
-/* Line 690 of lalr1.cc  */
-#line 3379 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 423:
+/* Line 664 of lalr1.cc  */
+#line 3377 "/home/colea/work/new-jsoniq/build/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)) );
@@ -6918,46 +5977,41 @@
         }
     break;
 
-  case 423:
-
-/* Line 690 of lalr1.cc  */
-#line 3387 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 424:
+/* Line 664 of lalr1.cc  */
+#line 3385 "/home/colea/work/new-jsoniq/build/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 424:
-
-/* Line 690 of lalr1.cc  */
-#line 3391 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 425:
+/* Line 664 of lalr1.cc  */
+#line 3389 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) ), "" );
         }
     break;
 
-  case 425:
-
-/* Line 690 of lalr1.cc  */
-#line 3395 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 426:
+/* Line 664 of lalr1.cc  */
+#line 3393 "/home/colea/work/new-jsoniq/build/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 426:
-
-/* Line 690 of lalr1.cc  */
-#line 3401 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 427:
+/* Line 664 of lalr1.cc  */
+#line 3399 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new PathExpr(LOC((yyloc)), ParseConstants::path_leading_lone_slash, NULL);
     }
     break;
 
-  case 427:
-
-/* Line 690 of lalr1.cc  */
-#line 3405 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 428:
+/* Line 664 of lalr1.cc  */
+#line 3403 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       RelativePathExpr* rpe;
       rpe = new RelativePathExpr(LOC((yyloc)), ParseConstants::st_slash, NULL, (yysemantic_stack_[(2) - (2)].expr), false);
@@ -6967,10 +6021,9 @@
     }
     break;
 
-  case 428:
-
-/* Line 690 of lalr1.cc  */
-#line 3413 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 429:
+/* Line 664 of lalr1.cc  */
+#line 3411 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       RelativePathExpr* rpe;
       rpe = new RelativePathExpr(LOC((yyloc)), ParseConstants::st_slashslash, NULL, (yysemantic_stack_[(2) - (2)].expr), false);
@@ -6980,10 +6033,9 @@
     }
     break;
 
-  case 429:
-
-/* Line 690 of lalr1.cc  */
-#line 3421 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 430:
+/* Line 664 of lalr1.cc  */
+#line 3419 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       RelativePathExpr* rpe = dynamic_cast<RelativePathExpr*>((yysemantic_stack_[(1) - (1)].expr));
       if (rpe != NULL &&
@@ -7002,19 +6054,17 @@
     }
     break;
 
-  case 430:
-
-/* Line 690 of lalr1.cc  */
-#line 3440 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = NULL;
-    }
-    break;
-
   case 431:
+/* Line 664 of lalr1.cc  */
+#line 3438 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = NULL;
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3446 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 432:
+/* Line 664 of lalr1.cc  */
+#line 3444 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       AxisStep* as = dynamic_cast<AxisStep*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (as ?
@@ -7026,46 +6076,25 @@
     }
     break;
 
-  case 432:
-
-/* Line 690 of lalr1.cc  */
-#line 3456 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 433:
+/* Line 664 of lalr1.cc  */
+#line 3454 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new RelativePathExpr(LOC((yyloc)), ParseConstants::st_slash, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr), false);
     }
     break;
 
-  case 433:
-
-/* Line 690 of lalr1.cc  */
-#line 3460 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 434:
+/* Line 664 of lalr1.cc  */
+#line 3458 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new RelativePathExpr(LOC((yyloc)), ParseConstants::st_slashslash, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr), false);
     }
     break;
 
-  case 434:
-
-/* Line 690 of lalr1.cc  */
-#line 3466 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 435:
-
-/* Line 690 of lalr1.cc  */
-#line 3470 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 436:
-
-/* Line 690 of lalr1.cc  */
-#line 3476 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 437:
+/* Line 664 of lalr1.cc  */
+#line 3468 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ForwardStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -7073,10 +6102,9 @@
         }
     break;
 
-  case 437:
-
-/* Line 690 of lalr1.cc  */
-#line 3482 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 438:
+/* Line 664 of lalr1.cc  */
+#line 3474 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -7086,10 +6114,9 @@
         }
     break;
 
-  case 438:
-
-/* Line 690 of lalr1.cc  */
-#line 3490 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 439:
+/* Line 664 of lalr1.cc  */
+#line 3482 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ReverseStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -7097,10 +6124,9 @@
         }
     break;
 
-  case 439:
-
-/* Line 690 of lalr1.cc  */
-#line 3496 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 440:
+/* Line 664 of lalr1.cc  */
+#line 3488 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -7110,10 +6136,9 @@
         }
     break;
 
-  case 440:
-
-/* Line 690 of lalr1.cc  */
-#line 3506 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 441:
+/* Line 664 of lalr1.cc  */
+#line 3498 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardStep(
                 LOC((yyloc)), dynamic_cast<ForwardAxis*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].node)
@@ -7121,10 +6146,9 @@
         }
     break;
 
-  case 441:
-
-/* Line 690 of lalr1.cc  */
-#line 3512 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 442:
+/* Line 664 of lalr1.cc  */
+#line 3504 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardStep(
                 LOC((yyloc)), dynamic_cast<AbbrevForwardStep*>((yysemantic_stack_[(1) - (1)].node))
@@ -7132,46 +6156,41 @@
         }
     break;
 
-  case 442:
-
-/* Line 690 of lalr1.cc  */
-#line 3520 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 443:
+/* Line 664 of lalr1.cc  */
+#line 3512 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_child );
         }
     break;
 
-  case 443:
-
-/* Line 690 of lalr1.cc  */
-#line 3524 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 444:
+/* Line 664 of lalr1.cc  */
+#line 3516 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_descendant);
         }
     break;
 
-  case 444:
-
-/* Line 690 of lalr1.cc  */
-#line 3528 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 445:
+/* Line 664 of lalr1.cc  */
+#line 3520 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_attribute );
         }
     break;
 
-  case 445:
-
-/* Line 690 of lalr1.cc  */
-#line 3532 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 446:
+/* Line 664 of lalr1.cc  */
+#line 3524 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_self );
         }
     break;
 
-  case 446:
-
-/* Line 690 of lalr1.cc  */
-#line 3536 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 447:
+/* Line 664 of lalr1.cc  */
+#line 3528 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_descendant_or_self
@@ -7179,10 +6198,9 @@
         }
     break;
 
-  case 447:
-
-/* Line 690 of lalr1.cc  */
-#line 3542 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 448:
+/* Line 664 of lalr1.cc  */
+#line 3534 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_following_sibling
@@ -7190,46 +6208,41 @@
         }
     break;
 
-  case 448:
-
-/* Line 690 of lalr1.cc  */
-#line 3548 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 449:
+/* Line 664 of lalr1.cc  */
+#line 3540 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_following );
         }
     break;
 
-  case 449:
-
-/* Line 690 of lalr1.cc  */
-#line 3554 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 450:
+/* Line 664 of lalr1.cc  */
+#line 3546 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), false );
         }
     break;
 
-  case 450:
-
-/* Line 690 of lalr1.cc  */
-#line 3558 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 451:
+/* Line 664 of lalr1.cc  */
+#line 3550 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].node), true );
         }
     break;
 
-  case 451:
-
-/* Line 690 of lalr1.cc  */
-#line 3564 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 452:
+/* Line 664 of lalr1.cc  */
+#line 3556 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseStep( LOC((yyloc)), dynamic_cast<ReverseAxis*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].node) );
         }
     break;
 
-  case 452:
-
-/* Line 690 of lalr1.cc  */
-#line 3568 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 453:
+/* Line 664 of lalr1.cc  */
+#line 3560 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             ReverseAxis *ra = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_parent
@@ -7238,28 +6251,25 @@
         }
     break;
 
-  case 453:
-
-/* Line 690 of lalr1.cc  */
-#line 3577 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 454:
+/* Line 664 of lalr1.cc  */
+#line 3569 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_parent );
         }
     break;
 
-  case 454:
-
-/* Line 690 of lalr1.cc  */
-#line 3581 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 455:
+/* Line 664 of lalr1.cc  */
+#line 3573 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_ancestor );
         }
     break;
 
-  case 455:
-
-/* Line 690 of lalr1.cc  */
-#line 3585 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 456:
+/* Line 664 of lalr1.cc  */
+#line 3577 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_preceding_sibling
@@ -7267,19 +6277,17 @@
         }
     break;
 
-  case 456:
-
-/* Line 690 of lalr1.cc  */
-#line 3591 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 457:
+/* Line 664 of lalr1.cc  */
+#line 3583 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_preceding );
         }
     break;
 
-  case 457:
-
-/* Line 690 of lalr1.cc  */
-#line 3595 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 458:
+/* Line 664 of lalr1.cc  */
+#line 3587 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_ancestor_or_self
@@ -7287,118 +6295,89 @@
         }
     break;
 
-  case 458:
-
-/* Line 690 of lalr1.cc  */
-#line 3603 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 459:
-
-/* Line 690 of lalr1.cc  */
-#line 3607 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 460:
-
-/* Line 690 of lalr1.cc  */
-#line 3613 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 461:
+/* Line 664 of lalr1.cc  */
+#line 3599 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
     break;
 
-  case 461:
-
-/* Line 690 of lalr1.cc  */
-#line 3617 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 462:
+/* Line 664 of lalr1.cc  */
+#line 3603 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), dynamic_cast<Wildcard*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 462:
-
-/* Line 690 of lalr1.cc  */
-#line 3623 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 463:
+/* Line 664 of lalr1.cc  */
+#line 3609 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", "", ParseConstants::wild_all, false);
     }
     break;
 
-  case 463:
-
-/* Line 690 of lalr1.cc  */
-#line 3627 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 464:
+/* Line 664 of lalr1.cc  */
+#line 3613 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, false);
     }
     break;
 
-  case 464:
-
-/* Line 690 of lalr1.cc  */
-#line 3631 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 465:
+/* Line 664 of lalr1.cc  */
+#line 3617 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, true);
     }
     break;
 
-  case 465:
-
-/* Line 690 of lalr1.cc  */
-#line 3635 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 466:
+/* Line 664 of lalr1.cc  */
+#line 3621 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", SYMTAB((yysemantic_stack_[(1) - (1)].sval)), ParseConstants::wild_prefix, false);
     }
     break;
 
-  case 466:
-
-/* Line 690 of lalr1.cc  */
-#line 3641 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 467:
+/* Line 664 of lalr1.cc  */
+#line 3627 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
      }
     break;
 
-  case 467:
-
-/* Line 690 of lalr1.cc  */
-#line 3645 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 468:
+/* Line 664 of lalr1.cc  */
+#line 3631 "/home/colea/work/new-jsoniq/build/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)));
      }
     break;
 
-  case 468:
-
-/* Line 690 of lalr1.cc  */
-#line 3649 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 469:
+/* Line 664 of lalr1.cc  */
+#line 3635 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), false);
      }
     break;
 
-  case 469:
-
-/* Line 690 of lalr1.cc  */
-#line 3653 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 470:
+/* Line 664 of lalr1.cc  */
+#line 3639 "/home/colea/work/new-jsoniq/build/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);
      }
     break;
 
-  case 470:
-
-/* Line 690 of lalr1.cc  */
-#line 3657 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 471:
+/* Line 664 of lalr1.cc  */
+#line 3643 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
        ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(3) - (3)].expr), (yylocation_stack_[(3) - (3)]));
        StringLiteral* sl = new StringLiteral( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)) );
@@ -7406,46 +6385,41 @@
      }
     break;
 
-  case 471:
-
-/* Line 690 of lalr1.cc  */
-#line 3663 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 472:
+/* Line 664 of lalr1.cc  */
+#line 3649 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), LOC((yylocation_stack_[(4) - (2)])), (yysemantic_stack_[(4) - (1)].expr), new ParenthesizedExpr( LOC((yyloc)), NULL));
      }
     break;
 
-  case 472:
-
-/* Line 690 of lalr1.cc  */
-#line 3667 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 473:
+/* Line 664 of lalr1.cc  */
+#line 3653 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), LOC((yylocation_stack_[(5) - (2)])), (yysemantic_stack_[(5) - (1)].expr), new ParenthesizedExpr( LOC((yyloc)), (yysemantic_stack_[(5) - (4)].expr) ));
      }
     break;
 
-  case 473:
-
-/* Line 690 of lalr1.cc  */
-#line 3671 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 474:
+/* Line 664 of lalr1.cc  */
+#line 3657 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), LOC((yylocation_stack_[(3) - (2)])), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
      }
     break;
 
-  case 474:
-
-/* Line 690 of lalr1.cc  */
-#line 3675 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 475:
+/* Line 664 of lalr1.cc  */
+#line 3661 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), LOC((yylocation_stack_[(3) - (2)])), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
      }
     break;
 
-  case 475:
-
-/* Line 690 of lalr1.cc  */
-#line 3681 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 476:
+/* Line 664 of lalr1.cc  */
+#line 3667 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             PredicateList *pl = new PredicateList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -7453,10 +6427,9 @@
         }
     break;
 
-  case 476:
-
-/* Line 690 of lalr1.cc  */
-#line 3687 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 477:
+/* Line 664 of lalr1.cc  */
+#line 3673 "/home/colea/work/new-jsoniq/build/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)) );
@@ -7464,183 +6437,51 @@
         }
     break;
 
-  case 477:
-
-/* Line 690 of lalr1.cc  */
-#line 3695 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 478:
+/* Line 664 of lalr1.cc  */
+#line 3681 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
         }
     break;
 
-  case 478:
-
-/* Line 690 of lalr1.cc  */
-#line 3701 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 479:
-
-/* Line 690 of lalr1.cc  */
-#line 3705 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 480:
-
-/* Line 690 of lalr1.cc  */
-#line 3709 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 481:
-
-/* Line 690 of lalr1.cc  */
-#line 3713 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 482:
-
-/* Line 690 of lalr1.cc  */
-#line 3717 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 483:
-
-/* Line 690 of lalr1.cc  */
-#line 3721 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 484:
-
-/* Line 690 of lalr1.cc  */
-#line 3725 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 485:
-
-/* Line 690 of lalr1.cc  */
-#line 3729 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 486:
-
-/* Line 690 of lalr1.cc  */
-#line 3733 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 487:
-
-/* Line 690 of lalr1.cc  */
-#line 3737 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 488:
-
-/* Line 690 of lalr1.cc  */
-#line 3741 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 489:
-
-/* Line 690 of lalr1.cc  */
-#line 3745 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 490:
-
-/* Line 690 of lalr1.cc  */
-#line 3749 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 491:
-
-/* Line 690 of lalr1.cc  */
-#line 3753 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 492:
-
-/* Line 690 of lalr1.cc  */
-#line 3759 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 493:
-
-/* Line 690 of lalr1.cc  */
-#line 3763 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 3703 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 494:
-
-/* Line 690 of lalr1.cc  */
-#line 3767 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 3707 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_TRUE_FALSE_NULL_KEYWORDS));
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 495:
+/* Line 664 of lalr1.cc  */
+#line 3711 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_TRUE_FALSE_NULL_KEYWORDS));
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3772 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 496:
+/* Line 664 of lalr1.cc  */
+#line 3716 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_TRUE_FALSE_NULL_KEYWORDS));
             (yyval.expr) = new NullLiteral(LOC((yyloc)));
         }
     break;
 
-  case 496:
-
-/* Line 690 of lalr1.cc  */
-#line 3779 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 497:
+/* Line 664 of lalr1.cc  */
+#line 3723 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_decimal, *(yysemantic_stack_[(1) - (1)].decval)
@@ -7649,10 +6490,9 @@
         }
     break;
 
-  case 497:
-
-/* Line 690 of lalr1.cc  */
-#line 3786 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 498:
+/* Line 664 of lalr1.cc  */
+#line 3730 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_integer, *(yysemantic_stack_[(1) - (1)].ival)
@@ -7661,10 +6501,9 @@
         }
     break;
 
-  case 498:
-
-/* Line 690 of lalr1.cc  */
-#line 3793 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 499:
+/* Line 664 of lalr1.cc  */
+#line 3737 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_double, *(yysemantic_stack_[(1) - (1)].dval)
@@ -7673,92 +6512,82 @@
         }
     break;
 
-  case 499:
-
-/* Line 690 of lalr1.cc  */
-#line 3802 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 500:
+/* Line 664 of lalr1.cc  */
+#line 3746 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new BooleanLiteral(LOC((yyloc)), true);
         }
     break;
 
-  case 500:
-
-/* Line 690 of lalr1.cc  */
-#line 3806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 501:
+/* Line 664 of lalr1.cc  */
+#line 3750 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new BooleanLiteral(LOC((yyloc)), false);
         }
     break;
 
-  case 501:
-
-/* Line 690 of lalr1.cc  */
-#line 3812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 502:
+/* Line 664 of lalr1.cc  */
+#line 3756 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new VarRef(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)));
         }
     break;
 
-  case 502:
-
-/* Line 690 of lalr1.cc  */
-#line 3818 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 503:
+/* Line 664 of lalr1.cc  */
+#line 3762 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), NULL);
         }
     break;
 
-  case 503:
-
-/* Line 690 of lalr1.cc  */
-#line 3822 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 504:
+/* Line 664 of lalr1.cc  */
+#line 3766 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 504:
-
-/* Line 690 of lalr1.cc  */
-#line 3828 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 505:
+/* Line 664 of lalr1.cc  */
+#line 3772 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_CONTEXT_ITEM_EXPR));
             (yyval.expr) = new ContextItemExpr( LOC((yyloc)) );
         }
     break;
 
-  case 505:
-
-/* Line 690 of lalr1.cc  */
-#line 3835 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 506:
+/* Line 664 of lalr1.cc  */
+#line 3779 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new OrderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 506:
-
-/* Line 690 of lalr1.cc  */
-#line 3841 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 507:
+/* Line 664 of lalr1.cc  */
+#line 3785 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new UnorderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 507:
-
-/* Line 690 of lalr1.cc  */
-#line 3847 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 508:
+/* Line 664 of lalr1.cc  */
+#line 3791 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FunctionCall( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), NULL );
     }
     break;
 
-  case 508:
-
-/* Line 690 of lalr1.cc  */
-#line 3851 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 509:
+/* Line 664 of lalr1.cc  */
+#line 3795 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList* argList = dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node));
       if (argList->has_placeholder())
@@ -7776,10 +6605,9 @@
     }
     break;
 
-  case 509:
-
-/* Line 690 of lalr1.cc  */
-#line 3869 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 510:
+/* Line 664 of lalr1.cc  */
+#line 3813 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList *al = new ArgList( LOC((yyloc)) );
       al->push_back(new ArgumentPlaceholder(LOC((yyloc))));
@@ -7787,10 +6615,9 @@
     }
     break;
 
-  case 510:
-
-/* Line 690 of lalr1.cc  */
-#line 3875 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 511:
+/* Line 664 of lalr1.cc  */
+#line 3819 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       if ( ArgList *al = dynamic_cast<ArgList*>((yysemantic_stack_[(3) - (1)].node)) )
         al->push_back( new ArgumentPlaceholder(LOC((yyloc))) );
@@ -7798,10 +6625,9 @@
     }
     break;
 
-  case 511:
-
-/* Line 690 of lalr1.cc  */
-#line 3881 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 512:
+/* Line 664 of lalr1.cc  */
+#line 3825 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList *al = new ArgList( LOC((yyloc)) );
       al->push_back( (yysemantic_stack_[(1) - (1)].expr) );
@@ -7809,10 +6635,9 @@
     }
     break;
 
-  case 512:
-
-/* Line 690 of lalr1.cc  */
-#line 3887 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 513:
+/* Line 664 of lalr1.cc  */
+#line 3831 "/home/colea/work/new-jsoniq/build/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) );
@@ -7820,37 +6645,33 @@
     }
     break;
 
-  case 513:
-
-/* Line 690 of lalr1.cc  */
-#line 3895 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
   case 514:
-
-/* Line 690 of lalr1.cc  */
-#line 3899 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 3839 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 515:
+/* Line 664 of lalr1.cc  */
+#line 3843 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 3905 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 516:
+/* Line 664 of lalr1.cc  */
+#line 3849 "/home/colea/work/new-jsoniq/build/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 516:
-
-/* Line 690 of lalr1.cc  */
-#line 3911 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 517:
+/* Line 664 of lalr1.cc  */
+#line 3855 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new InlineFunction(LOC((yyloc)),
                               &*(yysemantic_stack_[(3) - (2)].fnsig)->theParams,
@@ -7860,55 +6681,9 @@
     }
     break;
 
-  case 517:
-
-/* Line 690 of lalr1.cc  */
-#line 3921 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 518:
-
-/* Line 690 of lalr1.cc  */
-#line 3925 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 519:
-
-/* Line 690 of lalr1.cc  */
-#line 3931 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 520:
-
-/* Line 690 of lalr1.cc  */
-#line 3935 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 521:
-
-/* Line 690 of lalr1.cc  */
-#line 3939 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 522:
-
-/* Line 690 of lalr1.cc  */
-#line 3945 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 523:
+/* Line 664 of lalr1.cc  */
+#line 3874 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -7918,10 +6693,9 @@
     }
     break;
 
-  case 523:
-
-/* Line 690 of lalr1.cc  */
-#line 3953 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 524:
+/* Line 664 of lalr1.cc  */
+#line 3882 "/home/colea/work/new-jsoniq/build/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())
       {
@@ -7939,10 +6713,9 @@
     }
     break;
 
-  case 524:
-
-/* Line 690 of lalr1.cc  */
-#line 3969 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 525:
+/* Line 664 of lalr1.cc  */
+#line 3898 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -7952,10 +6725,9 @@
     }
     break;
 
-  case 525:
-
-/* Line 690 of lalr1.cc  */
-#line 3977 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 526:
+/* Line 664 of lalr1.cc  */
+#line 3906 "/home/colea/work/new-jsoniq/build/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())
       {
@@ -7973,10 +6745,9 @@
     }
     break;
 
-  case 526:
-
-/* Line 690 of lalr1.cc  */
-#line 3995 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 527:
+/* Line 664 of lalr1.cc  */
+#line 3924 "/home/colea/work/new-jsoniq/build/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())
       {
@@ -7994,10 +6765,9 @@
     }
     break;
 
-  case 527:
-
-/* Line 690 of lalr1.cc  */
-#line 4013 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 528:
+/* Line 664 of lalr1.cc  */
+#line 3942 "/home/colea/work/new-jsoniq/build/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())
       {
@@ -8015,10 +6785,9 @@
     }
     break;
 
-  case 528:
-
-/* Line 690 of lalr1.cc  */
-#line 4031 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 529:
+/* Line 664 of lalr1.cc  */
+#line 3960 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       DirElemContentList *decl = new DirElemContentList( LOC((yyloc)) );
       decl->push_back( dynamic_cast<DirElemContent*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -8026,10 +6795,9 @@
     }
     break;
 
-  case 529:
-
-/* Line 690 of lalr1.cc  */
-#line 4037 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 530:
+/* Line 664 of lalr1.cc  */
+#line 3966 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       DirElemContentList *decl = dynamic_cast<DirElemContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( decl )
@@ -8038,10 +6806,9 @@
     }
     break;
 
-  case 530:
-
-/* Line 690 of lalr1.cc  */
-#line 4046 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 531:
+/* Line 664 of lalr1.cc  */
+#line 3975 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       DirAttributeList *dal = new DirAttributeList( LOC((yyloc)) );
       dal->push_back( dynamic_cast<DirAttr*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -8049,10 +6816,9 @@
     }
     break;
 
-  case 531:
-
-/* Line 690 of lalr1.cc  */
-#line 4052 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 532:
+/* Line 664 of lalr1.cc  */
+#line 3981 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       DirAttributeList *dal = dynamic_cast<DirAttributeList*>((yysemantic_stack_[(2) - (1)].node));
       if ( dal )
@@ -8061,10 +6827,9 @@
     }
     break;
 
-  case 532:
-
-/* Line 690 of lalr1.cc  */
-#line 4061 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 533:
+/* Line 664 of lalr1.cc  */
+#line 3990 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttr(LOC((yyloc)),
                        static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -8072,48 +6837,43 @@
     }
     break;
 
-  case 535:
-
-/* Line 690 of lalr1.cc  */
-#line 4071 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 536:
+/* Line 664 of lalr1.cc  */
+#line 4000 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttributeValue(LOC((yyloc)),
                                  dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
-  case 536:
-
-/* Line 690 of lalr1.cc  */
-#line 4076 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 537:
+/* Line 664 of lalr1.cc  */
+#line 4005 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttributeValue( LOC((yyloc)),
                                   dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
-  case 537:
-
-/* Line 690 of lalr1.cc  */
-#line 4082 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 538:
+/* Line 664 of lalr1.cc  */
+#line 4011 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrContentList( LOC((yyloc)) );
     }
     break;
 
-  case 538:
-
-/* Line 690 of lalr1.cc  */
-#line 4086 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
   case 539:
+/* Line 664 of lalr1.cc  */
+#line 4015 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4092 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 540:
+/* Line 664 of lalr1.cc  */
+#line 4021 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
@@ -8121,10 +6881,9 @@
     }
     break;
 
-  case 540:
-
-/* Line 690 of lalr1.cc  */
-#line 4098 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 541:
+/* Line 664 of lalr1.cc  */
+#line 4027 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -8132,10 +6891,9 @@
     }
     break;
 
-  case 541:
-
-/* Line 690 of lalr1.cc  */
-#line 4104 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 542:
+/* Line 664 of lalr1.cc  */
+#line 4033 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList* qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -8144,10 +6902,9 @@
     }
     break;
 
-  case 542:
-
-/* Line 690 of lalr1.cc  */
-#line 4111 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 543:
+/* Line 664 of lalr1.cc  */
+#line 4040 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -8156,28 +6913,25 @@
     }
     break;
 
-  case 543:
-
-/* Line 690 of lalr1.cc  */
-#line 4119 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 544:
+/* Line 664 of lalr1.cc  */
+#line 4048 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrContentList( LOC((yyloc)) );
     }
     break;
 
-  case 544:
-
-/* Line 690 of lalr1.cc  */
-#line 4123 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
   case 545:
+/* Line 664 of lalr1.cc  */
+#line 4052 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4129 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 546:
+/* Line 664 of lalr1.cc  */
+#line 4058 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( new AposAttrValueContent( LOC((yyloc)),"'") );
@@ -8185,10 +6939,9 @@
     }
     break;
 
-  case 546:
-
-/* Line 690 of lalr1.cc  */
-#line 4135 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 547:
+/* Line 664 of lalr1.cc  */
+#line 4064 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( dynamic_cast<AposAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -8196,10 +6949,9 @@
     }
     break;
 
-  case 547:
-
-/* Line 690 of lalr1.cc  */
-#line 4141 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 548:
+/* Line 664 of lalr1.cc  */
+#line 4070 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if (aacl)
@@ -8208,10 +6960,9 @@
     }
     break;
 
-  case 548:
-
-/* Line 690 of lalr1.cc  */
-#line 4148 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 549:
+/* Line 664 of lalr1.cc  */
+#line 4077 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( aacl )
@@ -8220,366 +6971,326 @@
     }
     break;
 
-  case 549:
-
-/* Line 690 of lalr1.cc  */
-#line 4157 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 550:
+/* Line 664 of lalr1.cc  */
+#line 4086 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 550:
-
-/* Line 690 of lalr1.cc  */
-#line 4161 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 551:
+/* Line 664 of lalr1.cc  */
+#line 4090 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
     break;
 
-  case 551:
-
-/* Line 690 of lalr1.cc  */
-#line 4167 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 552:
+/* Line 664 of lalr1.cc  */
+#line 4096 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 552:
-
-/* Line 690 of lalr1.cc  */
-#line 4171 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 553:
+/* Line 664 of lalr1.cc  */
+#line 4100 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
     break;
 
-  case 553:
-
-/* Line 690 of lalr1.cc  */
-#line 4177 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 554:
+/* Line 664 of lalr1.cc  */
+#line 4106 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr) );
     }
     break;
 
-  case 554:
-
-/* Line 690 of lalr1.cc  */
-#line 4181 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 555:
+/* Line 664 of lalr1.cc  */
+#line 4110 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 555:
-
-/* Line 690 of lalr1.cc  */
-#line 4185 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 556:
+/* Line 664 of lalr1.cc  */
+#line 4114 "/home/colea/work/new-jsoniq/build/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 556:
-
-/* Line 690 of lalr1.cc  */
-#line 4190 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 557:
+/* Line 664 of lalr1.cc  */
+#line 4119 "/home/colea/work/new-jsoniq/build/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 557:
-
-/* Line 690 of lalr1.cc  */
-#line 4197 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 558:
+/* Line 664 of lalr1.cc  */
+#line 4126 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_charref, SYMTAB((yysemantic_stack_[(1) - (1)].sval)));
     }
     break;
 
-  case 558:
-
-/* Line 690 of lalr1.cc  */
-#line 4201 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 559:
+/* Line 664 of lalr1.cc  */
+#line 4130 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_lbrace);
     }
     break;
 
-  case 559:
-
-/* Line 690 of lalr1.cc  */
-#line 4205 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 560:
+/* Line 664 of lalr1.cc  */
+#line 4134 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_rbrace);
     }
     break;
 
-  case 560:
-
-/* Line 690 of lalr1.cc  */
-#line 4209 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 561:
+/* Line 664 of lalr1.cc  */
+#line 4138 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), new EnclosedExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr)));
     }
     break;
 
-  case 561:
-
-/* Line 690 of lalr1.cc  */
-#line 4215 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 562:
+/* Line 664 of lalr1.cc  */
+#line 4144 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 562:
-
-/* Line 690 of lalr1.cc  */
-#line 4220 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 563:
+/* Line 664 of lalr1.cc  */
+#line 4149 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), "" );
     }
     break;
 
-  case 563:
-
-/* Line 690 of lalr1.cc  */
-#line 4226 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 564:
+/* Line 664 of lalr1.cc  */
+#line 4155 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(3) - (2)].expr), (yylocation_stack_[(3) - (2)]));
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)) );
     }
     break;
 
-  case 564:
-
-/* Line 690 of lalr1.cc  */
-#line 4232 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 565:
+/* Line 664 of lalr1.cc  */
+#line 4161 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(3) - (2)].expr), (yylocation_stack_[(3) - (2)]));
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
     break;
 
-  case 565:
-
-/* Line 690 of lalr1.cc  */
-#line 4239 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 566:
+/* Line 664 of lalr1.cc  */
+#line 4168 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CDataSection( LOC((yyloc)),SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
-  case 566:
-
-/* Line 690 of lalr1.cc  */
-#line 4245 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
   case 567:
-
-/* Line 690 of lalr1.cc  */
-#line 4250 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4174 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 568:
-
-/* Line 690 of lalr1.cc  */
-#line 4255 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4179 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 569:
-
-/* Line 690 of lalr1.cc  */
-#line 4260 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4184 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 570:
-
-/* Line 690 of lalr1.cc  */
-#line 4265 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4189 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 571:
-
-/* Line 690 of lalr1.cc  */
-#line 4270 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 573:
-
-/* Line 690 of lalr1.cc  */
-#line 4278 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4194 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 572:
+/* Line 664 of lalr1.cc  */
+#line 4199 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 574:
+/* Line 664 of lalr1.cc  */
+#line 4207 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
     }
     break;
 
-  case 574:
-
-/* Line 690 of lalr1.cc  */
-#line 4284 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 575:
+/* Line 664 of lalr1.cc  */
+#line 4213 "/home/colea/work/new-jsoniq/build/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 575:
-
-/* Line 690 of lalr1.cc  */
-#line 4288 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 576:
+/* Line 664 of lalr1.cc  */
+#line 4217 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
     }
     break;
 
-  case 576:
-
-/* Line 690 of lalr1.cc  */
-#line 4294 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 577:
+/* Line 664 of lalr1.cc  */
+#line 4223 "/home/colea/work/new-jsoniq/build/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 577:
-
-/* Line 690 of lalr1.cc  */
-#line 4298 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 578:
+/* Line 664 of lalr1.cc  */
+#line 4227 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
     }
     break;
 
-  case 578:
-
-/* Line 690 of lalr1.cc  */
-#line 4304 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 579:
+/* Line 664 of lalr1.cc  */
+#line 4233 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
     }
     break;
 
-  case 579:
-
-/* Line 690 of lalr1.cc  */
-#line 4310 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 580:
+/* Line 664 of lalr1.cc  */
+#line 4239 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
     }
     break;
 
-  case 580:
-
-/* Line 690 of lalr1.cc  */
-#line 4316 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 581:
+/* Line 664 of lalr1.cc  */
+#line 4245 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompPIConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
     }
     break;
 
-  case 581:
-
-/* Line 690 of lalr1.cc  */
-#line 4320 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 582:
+/* Line 664 of lalr1.cc  */
+#line 4249 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompPIConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
     }
     break;
 
-  case 582:
-
-/* Line 690 of lalr1.cc  */
-#line 4326 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 583:
+/* Line 664 of lalr1.cc  */
+#line 4255 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
     }
     break;
 
-  case 583:
-
-/* Line 690 of lalr1.cc  */
-#line 4330 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 584:
+/* Line 664 of lalr1.cc  */
+#line 4259 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
     }
     break;
 
-  case 584:
-
-/* Line 690 of lalr1.cc  */
-#line 4336 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
-    }
-    break;
-
   case 585:
+/* Line 664 of lalr1.cc  */
+#line 4265 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4342 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 586:
+/* Line 664 of lalr1.cc  */
+#line 4271 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
         }
     break;
 
-  case 586:
-
-/* Line 690 of lalr1.cc  */
-#line 4346 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 587:
+/* Line 664 of lalr1.cc  */
+#line 4275 "/home/colea/work/new-jsoniq/build/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)));
         }
     break;
 
-  case 587:
-
-/* Line 690 of lalr1.cc  */
-#line 4350 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
-        }
-    break;
-
   case 588:
+/* Line 664 of lalr1.cc  */
+#line 4279 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4354 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 589:
+/* Line 664 of lalr1.cc  */
+#line 4283 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             driver.addCommonLanguageWarning((yylocation_stack_[(2) - (1)]), ZED(ZWST0009_JSONIQ_EMPTY_SEQUENCE));
             (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
         }
     break;
 
-  case 589:
-
-/* Line 690 of lalr1.cc  */
-#line 4361 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 590:
+/* Line 664 of lalr1.cc  */
+#line 4290 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
                 LOC((yyloc)), ParseConstants::occurs_optionally
@@ -8587,10 +7298,9 @@
         }
     break;
 
-  case 590:
-
-/* Line 690 of lalr1.cc  */
-#line 4367 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 591:
+/* Line 664 of lalr1.cc  */
+#line 4296 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
                 LOC((yyloc)), ParseConstants::occurs_zero_or_more
@@ -8598,10 +7308,9 @@
         }
     break;
 
-  case 591:
-
-/* Line 690 of lalr1.cc  */
-#line 4373 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 592:
+/* Line 664 of lalr1.cc  */
+#line 4302 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
                 LOC((yyloc)), ParseConstants::occurs_one_or_more
@@ -8609,93 +7318,83 @@
         }
     break;
 
-  case 592:
-
-/* Line 690 of lalr1.cc  */
-#line 4381 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 593:
-
-/* Line 690 of lalr1.cc  */
-#line 4385 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4310 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 594:
-
-/* Line 690 of lalr1.cc  */
-#line 4389 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4314 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ItemType( LOC((yyloc)), true );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 595:
-
-/* Line 690 of lalr1.cc  */
-#line 4393 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4318 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_JSONIQ_TYPE_KEYWORDS));
             (yyval.node) = new ItemType( LOC((yyloc)), true );
         }
     break;
 
   case 596:
-
-/* Line 690 of lalr1.cc  */
-#line 4398 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4322 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new StructuredItemType(LOC((yyloc)));
+            driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_JSONIQ_TYPE_KEYWORDS));
+            (yyval.node) = new ItemType( LOC((yyloc)), true );
         }
     break;
 
   case 597:
-
-/* Line 690 of lalr1.cc  */
-#line 4402 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4327 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_JSONIQ_TYPE_KEYWORDS));
             (yyval.node) = new StructuredItemType(LOC((yyloc)));
         }
     break;
 
   case 598:
-
-/* Line 690 of lalr1.cc  */
-#line 4407 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4331 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_JSONIQ_TYPE_KEYWORDS));
+            (yyval.node) = new StructuredItemType(LOC((yyloc)));
         }
     break;
 
   case 599:
-
-/* Line 690 of lalr1.cc  */
-#line 4411 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4336 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 600:
-
-/* Line 690 of lalr1.cc  */
-#line 4415 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4340 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 601:
+/* Line 664 of lalr1.cc  */
+#line 4344 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4421 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 602:
+/* Line 664 of lalr1.cc  */
+#line 4350 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           TypeList* aTypeList = new TypeList(LOC ((yyloc)));
           aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
@@ -8703,10 +7402,9 @@
         }
     break;
 
-  case 602:
-
-/* Line 690 of lalr1.cc  */
-#line 4427 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 603:
+/* Line 664 of lalr1.cc  */
+#line 4356 "/home/colea/work/new-jsoniq/build/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)));
@@ -8714,236 +7412,210 @@
         }
     break;
 
-  case 603:
-
-/* Line 690 of lalr1.cc  */
-#line 4435 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 604:
+/* Line 664 of lalr1.cc  */
+#line 4364 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GeneralizedAtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
     }
     break;
 
-  case 604:
-
-/* Line 690 of lalr1.cc  */
-#line 4439 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 605:
+/* Line 664 of lalr1.cc  */
+#line 4368 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GeneralizedAtomicType( LOC((yyloc)), new QName(LOC((yyloc)), "null") );
     }
     break;
 
-  case 605:
-
-/* Line 690 of lalr1.cc  */
-#line 4445 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 606:
+/* Line 664 of lalr1.cc  */
+#line 4374 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SimpleType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
     }
     break;
 
-  case 606:
-
-/* Line 690 of lalr1.cc  */
-#line 4451 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
   case 607:
-
-/* Line 690 of lalr1.cc  */
-#line 4455 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4380 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 608:
-
-/* Line 690 of lalr1.cc  */
-#line 4459 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4384 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 609:
-
-/* Line 690 of lalr1.cc  */
-#line 4463 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4388 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 610:
-
-/* Line 690 of lalr1.cc  */
-#line 4467 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4392 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 611:
-
-/* Line 690 of lalr1.cc  */
-#line 4471 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4396 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 612:
-
-/* Line 690 of lalr1.cc  */
-#line 4475 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4400 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 613:
-
-/* Line 690 of lalr1.cc  */
-#line 4479 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4404 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 614:
-
-/* Line 690 of lalr1.cc  */
-#line 4483 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4408 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 615:
-
-/* Line 690 of lalr1.cc  */
-#line 4487 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4412 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 616:
+/* Line 664 of lalr1.cc  */
+#line 4416 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4493 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 617:
+/* Line 664 of lalr1.cc  */
+#line 4422 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnyKindTest( LOC((yyloc)) );
     }
     break;
 
-  case 617:
-
-/* Line 690 of lalr1.cc  */
-#line 4499 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = NULL;
-    }
-    break;
-
   case 618:
+/* Line 664 of lalr1.cc  */
+#line 4428 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = NULL;
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4505 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 619:
+/* Line 664 of lalr1.cc  */
+#line 4434 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DocumentTest(LOC((yyloc)));
     }
     break;
 
-  case 619:
-
-/* Line 690 of lalr1.cc  */
-#line 4509 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 620:
+/* Line 664 of lalr1.cc  */
+#line 4438 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)));
     }
     break;
 
-  case 620:
-
-/* Line 690 of lalr1.cc  */
-#line 4513 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 621:
+/* Line 664 of lalr1.cc  */
+#line 4442 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node)));
     }
     break;
 
-  case 621:
-
-/* Line 690 of lalr1.cc  */
-#line 4519 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 622:
+/* Line 664 of lalr1.cc  */
+#line 4448 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new NamespaceTest(LOC((yyloc)));
     }
     break;
 
-  case 622:
-
-/* Line 690 of lalr1.cc  */
-#line 4524 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 623:
+/* Line 664 of lalr1.cc  */
+#line 4453 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new TextTest(LOC((yyloc)));
     }
     break;
 
-  case 623:
-
-/* Line 690 of lalr1.cc  */
-#line 4530 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 624:
+/* Line 664 of lalr1.cc  */
+#line 4459 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CommentTest(LOC((yyloc)));
     }
     break;
 
-  case 624:
-
-/* Line 690 of lalr1.cc  */
-#line 4536 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 625:
+/* Line 664 of lalr1.cc  */
+#line 4465 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new PITest( LOC((yyloc)), "" );
         }
     break;
 
-  case 625:
-
-/* Line 690 of lalr1.cc  */
-#line 4540 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 626:
+/* Line 664 of lalr1.cc  */
+#line 4469 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(4) - (3)].expr), (yylocation_stack_[(4) - (3)]));
             (yyval.node) = new PITest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 626:
-
-/* Line 690 of lalr1.cc  */
-#line 4545 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 627:
+/* Line 664 of lalr1.cc  */
+#line 4474 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
-  case 627:
-
-/* Line 690 of lalr1.cc  */
-#line 4551 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
-        }
-    break;
-
   case 628:
+/* Line 664 of lalr1.cc  */
+#line 4480 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4555 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 629:
+/* Line 664 of lalr1.cc  */
+#line 4484 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AttributeTest(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
@@ -8951,10 +7623,9 @@
         }
     break;
 
-  case 629:
-
-/* Line 690 of lalr1.cc  */
-#line 4561 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 630:
+/* Line 664 of lalr1.cc  */
+#line 4490 "/home/colea/work/new-jsoniq/build/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))
@@ -8962,19 +7633,17 @@
         }
     break;
 
-  case 630:
-
-/* Line 690 of lalr1.cc  */
-#line 4567 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
-        }
-    break;
-
   case 631:
+/* Line 664 of lalr1.cc  */
+#line 4496 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4571 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 632:
+/* Line 664 of lalr1.cc  */
+#line 4500 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AttributeTest(
                 LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
@@ -8982,28 +7651,25 @@
         }
     break;
 
-  case 632:
-
-/* Line 690 of lalr1.cc  */
-#line 4579 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 633:
+/* Line 664 of lalr1.cc  */
+#line 4508 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 633:
-
-/* Line 690 of lalr1.cc  */
-#line 4585 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 634:
+/* Line 664 of lalr1.cc  */
+#line 4514 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
         }
     break;
 
-  case 634:
-
-/* Line 690 of lalr1.cc  */
-#line 4589 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 635:
+/* Line 664 of lalr1.cc  */
+#line 4518 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
@@ -9011,10 +7677,9 @@
         }
     break;
 
-  case 635:
-
-/* Line 690 of lalr1.cc  */
-#line 4595 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 636:
+/* Line 664 of lalr1.cc  */
+#line 4524 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)),
@@ -9025,10 +7690,9 @@
         }
     break;
 
-  case 636:
-
-/* Line 690 of lalr1.cc  */
-#line 4604 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 637:
+/* Line 664 of lalr1.cc  */
+#line 4533 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)),
@@ -9039,10 +7703,9 @@
         }
     break;
 
-  case 637:
-
-/* Line 690 of lalr1.cc  */
-#line 4613 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 638:
+/* Line 664 of lalr1.cc  */
+#line 4542 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), NULL, NULL, true
@@ -9050,10 +7713,9 @@
         }
     break;
 
-  case 638:
-
-/* Line 690 of lalr1.cc  */
-#line 4619 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 639:
+/* Line 664 of lalr1.cc  */
+#line 4548 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
@@ -9061,10 +7723,9 @@
         }
     break;
 
-  case 639:
-
-/* Line 690 of lalr1.cc  */
-#line 4625 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 640:
+/* Line 664 of lalr1.cc  */
+#line 4554 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
@@ -9072,82 +7733,73 @@
         }
     break;
 
-  case 640:
-
-/* Line 690 of lalr1.cc  */
-#line 4633 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 641:
+/* Line 664 of lalr1.cc  */
+#line 4562 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 641:
-
-/* Line 690 of lalr1.cc  */
-#line 4639 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 642:
+/* Line 664 of lalr1.cc  */
+#line 4568 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
     break;
 
-  case 642:
-
-/* Line 690 of lalr1.cc  */
-#line 4645 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 643:
+/* Line 664 of lalr1.cc  */
+#line 4574 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
         }
     break;
 
-  case 643:
-
-/* Line 690 of lalr1.cc  */
-#line 4651 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 644:
+/* Line 664 of lalr1.cc  */
+#line 4580 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
-  case 644:
-
-/* Line 690 of lalr1.cc  */
-#line 4657 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
   case 645:
-
-/* Line 690 of lalr1.cc  */
-#line 4661 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4586 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 646:
+/* Line 664 of lalr1.cc  */
+#line 4590 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4667 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 647:
+/* Line 664 of lalr1.cc  */
+#line 4596 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnyFunctionTest(LOC((yyloc)));
     }
     break;
 
-  case 647:
-
-/* Line 690 of lalr1.cc  */
-#line 4673 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 648:
+/* Line 664 of lalr1.cc  */
+#line 4602 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)), dynamic_cast<SequenceType *>((yysemantic_stack_[(5) - (5)].node)));
         }
     break;
 
-  case 648:
-
-/* Line 690 of lalr1.cc  */
-#line 4677 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 649:
+/* Line 664 of lalr1.cc  */
+#line 4606 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)),
               dynamic_cast<TypeList *>((yysemantic_stack_[(6) - (3)].node)),
@@ -9155,19 +7807,17 @@
         }
     break;
 
-  case 649:
-
-/* Line 690 of lalr1.cc  */
-#line 4685 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 650:
+/* Line 664 of lalr1.cc  */
+#line 4614 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
            (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
-  case 650:
-
-/* Line 690 of lalr1.cc  */
-#line 4691 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 651:
+/* Line 664 of lalr1.cc  */
+#line 4620 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::strict_validation
@@ -9175,10 +7825,9 @@
         }
     break;
 
-  case 651:
-
-/* Line 690 of lalr1.cc  */
-#line 4697 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 652:
+/* Line 664 of lalr1.cc  */
+#line 4626 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::lax_validation
@@ -9186,10 +7835,9 @@
         }
     break;
 
-  case 652:
-
-/* Line 690 of lalr1.cc  */
-#line 4703 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 653:
+/* Line 664 of lalr1.cc  */
+#line 4632 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::skip_validation
@@ -9197,30 +7845,27 @@
         }
     break;
 
-  case 653:
-
-/* Line 690 of lalr1.cc  */
-#line 4711 "/home/colea/xquery/new-jsoniq/build/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 654:
-
-/* Line 690 of lalr1.cc  */
-#line 4715 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4640 "/home/colea/work/new-jsoniq/build/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.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
   case 655:
+/* Line 664 of lalr1.cc  */
+#line 4644 "/home/colea/work/new-jsoniq/build/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;
 
-/* Line 690 of lalr1.cc  */
-#line 4721 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 656:
+/* Line 664 of lalr1.cc  */
+#line 4650 "/home/colea/work/new-jsoniq/build/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)
@@ -9228,50 +7873,45 @@
         }
     break;
 
-  case 656:
-
-/* Line 690 of lalr1.cc  */
-#line 4727 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 657:
+/* Line 664 of lalr1.cc  */
+#line 4656 "/home/colea/work/new-jsoniq/build/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 657:
-
-/* Line 690 of lalr1.cc  */
-#line 4731 "/home/colea/xquery/new-jsoniq/build/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 658:
-
-/* Line 690 of lalr1.cc  */
-#line 4737 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4660 "/home/colea/work/new-jsoniq/build/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.expr) = new InsertExpr(
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
         }
     break;
 
   case 659:
-
-/* Line 690 of lalr1.cc  */
-#line 4741 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4666 "/home/colea/work/new-jsoniq/build/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.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
   case 660:
+/* Line 664 of lalr1.cc  */
+#line 4670 "/home/colea/work/new-jsoniq/build/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;
 
-/* Line 690 of lalr1.cc  */
-#line 4747 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 661:
+/* Line 664 of lalr1.cc  */
+#line 4676 "/home/colea/work/new-jsoniq/build/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)
@@ -9279,10 +7919,9 @@
         }
     break;
 
-  case 661:
-
-/* Line 690 of lalr1.cc  */
-#line 4753 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 662:
+/* Line 664 of lalr1.cc  */
+#line 4682 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new InsertExpr(
                 LOC ((yyloc)),
@@ -9291,39 +7930,35 @@
         }
     break;
 
-  case 662:
-
-/* Line 690 of lalr1.cc  */
-#line 4760 "/home/colea/xquery/new-jsoniq/build/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 663:
-
-/* Line 690 of lalr1.cc  */
-#line 4768 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4689 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
         }
     break;
 
   case 664:
-
-/* Line 690 of lalr1.cc  */
-#line 4773 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4697 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 665:
+/* Line 664 of lalr1.cc  */
+#line 4702 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4779 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 666:
+/* Line 664 of lalr1.cc  */
+#line 4708 "/home/colea/work/new-jsoniq/build/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)
@@ -9331,10 +7966,9 @@
         }
     break;
 
-  case 666:
-
-/* Line 690 of lalr1.cc  */
-#line 4785 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 667:
+/* Line 664 of lalr1.cc  */
+#line 4714 "/home/colea/work/new-jsoniq/build/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)
@@ -9342,29 +7976,26 @@
         }
     break;
 
-  case 667:
-
-/* Line 690 of lalr1.cc  */
-#line 4793 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 668:
+/* Line 664 of lalr1.cc  */
+#line 4722 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new RenameExpr( LOC ((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 668:
-
-/* Line 690 of lalr1.cc  */
-#line 4799 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 669:
+/* Line 664 of lalr1.cc  */
+#line 4728 "/home/colea/work/new-jsoniq/build/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 669:
-
-/* Line 690 of lalr1.cc  */
-#line 4806 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 670:
+/* Line 664 of lalr1.cc  */
+#line 4735 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
       CopyVarList* lList = new CopyVarList(LOC((yyloc)));
       lList->push_back (dynamic_cast<VarBinding*> ((yysemantic_stack_[(1) - (1)].expr)));
@@ -9372,10 +8003,9 @@
     }
     break;
 
-  case 670:
-
-/* Line 690 of lalr1.cc  */
-#line 4812 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 671:
+/* Line 664 of lalr1.cc  */
+#line 4741 "/home/colea/work/new-jsoniq/build/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));
@@ -9384,28 +8014,25 @@
     }
     break;
 
-  case 671:
-
-/* Line 690 of lalr1.cc  */
-#line 4821 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 672:
+/* Line 664 of lalr1.cc  */
+#line 4750 "/home/colea/work/new-jsoniq/build/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 672:
-
-/* Line 690 of lalr1.cc  */
-#line 4827 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 673:
+/* Line 664 of lalr1.cc  */
+#line 4756 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new TryExpr( LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 673:
-
-/* Line 690 of lalr1.cc  */
-#line 4833 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 674:
+/* Line 664 of lalr1.cc  */
+#line 4762 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             CatchListExpr *cle = new CatchListExpr( LOC((yyloc)) );
             cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -9413,10 +8040,9 @@
         }
     break;
 
-  case 674:
-
-/* Line 690 of lalr1.cc  */
-#line 4839 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 675:
+/* Line 664 of lalr1.cc  */
+#line 4768 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
             if ( cle )
@@ -9425,29 +8051,26 @@
         }
     break;
 
-  case 675:
-
-/* Line 690 of lalr1.cc  */
-#line 4848 "/home/colea/xquery/new-jsoniq/build/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 676:
-
-/* Line 690 of lalr1.cc  */
-#line 4855 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4777 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
+       (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 677:
+/* Line 664 of lalr1.cc  */
+#line 4784 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
+    }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4861 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 678:
+/* Line 664 of lalr1.cc  */
+#line 4790 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             CatchExpr::NameTestList *ntl = new CatchExpr::NameTestList;
             ntl->push_back( static_cast<NameTest*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -9455,10 +8078,9 @@
         }
     break;
 
-  case 678:
-
-/* Line 690 of lalr1.cc  */
-#line 4867 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 679:
+/* Line 664 of lalr1.cc  */
+#line 4796 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             CatchExpr::NameTestList *ntl =
                 static_cast<CatchExpr::NameTestList*>((yysemantic_stack_[(3) - (1)].name_test_list));
@@ -9467,121 +8089,108 @@
         }
     break;
 
-  case 679:
-
-/* Line 690 of lalr1.cc  */
-#line 4876 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 680:
+/* Line 664 of lalr1.cc  */
+#line 4805 "/home/colea/work/new-jsoniq/build/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 680:
-
-/* Line 690 of lalr1.cc  */
-#line 4883 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 681:
+/* Line 664 of lalr1.cc  */
+#line 4812 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.pos_filter_list) = NULL;
         }
     break;
 
-  case 681:
-
-/* Line 690 of lalr1.cc  */
-#line 4887 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 682:
+/* Line 664 of lalr1.cc  */
+#line 4816 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.pos_filter_list) = (yysemantic_stack_[(1) - (1)].pos_filter_list);
         }
     break;
 
-  case 682:
-
-/* Line 690 of lalr1.cc  */
-#line 4893 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 683:
+/* Line 664 of lalr1.cc  */
+#line 4822 "/home/colea/work/new-jsoniq/build/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 683:
-
-/* Line 690 of lalr1.cc  */
-#line 4898 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 684:
+/* Line 664 of lalr1.cc  */
+#line 4827 "/home/colea/work/new-jsoniq/build/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 684:
-
-/* Line 690 of lalr1.cc  */
-#line 4905 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 685:
+/* Line 664 of lalr1.cc  */
+#line 4834 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4909 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 686:
+/* Line 664 of lalr1.cc  */
+#line 4838 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTOr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
-  case 686:
-
-/* Line 690 of lalr1.cc  */
-#line 4915 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 687:
+/* Line 664 of lalr1.cc  */
+#line 4844 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4919 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 688:
+/* Line 664 of lalr1.cc  */
+#line 4848 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnd( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
-  case 688:
-
-/* Line 690 of lalr1.cc  */
-#line 4925 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 689:
+/* Line 664 of lalr1.cc  */
+#line 4854 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4929 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 690:
+/* Line 664 of lalr1.cc  */
+#line 4858 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTMildNot( LOC((yyloc)), (yysemantic_stack_[(4) - (1)].node), (yysemantic_stack_[(4) - (4)].node) );
         }
     break;
 
-  case 690:
-
-/* Line 690 of lalr1.cc  */
-#line 4935 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 691:
+/* Line 664 of lalr1.cc  */
+#line 4864 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4939 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 692:
+/* Line 664 of lalr1.cc  */
+#line 4868 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnaryNot(
                 LOC((yyloc)), dynamic_cast<FTPrimaryWithOptions*>((yysemantic_stack_[(2) - (2)].node))
@@ -9589,10 +8198,9 @@
         }
     break;
 
-  case 692:
-
-/* Line 690 of lalr1.cc  */
-#line 4947 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 693:
+/* Line 664 of lalr1.cc  */
+#line 4876 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTPrimaryWithOptions(
                 LOC((yyloc)),
@@ -9603,55 +8211,49 @@
         }
     break;
 
-  case 693:
-
-/* Line 690 of lalr1.cc  */
-#line 4957 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 694:
-
-/* Line 690 of lalr1.cc  */
-#line 4961 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4886 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 695:
-
-/* Line 690 of lalr1.cc  */
-#line 4966 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4890 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = NULL;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 696:
-
-/* Line 690 of lalr1.cc  */
-#line 4970 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4895 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 697:
+/* Line 664 of lalr1.cc  */
+#line 4899 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 4976 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 698:
+/* Line 664 of lalr1.cc  */
+#line 4905 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWeight( LOC((yyloc)), dynamic_cast<exprnode*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 698:
-
-/* Line 690 of lalr1.cc  */
-#line 4982 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 699:
+/* Line 664 of lalr1.cc  */
+#line 4911 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWordsTimes(
                 LOC((yyloc)),
@@ -9661,46 +8263,41 @@
         }
     break;
 
-  case 699:
-
-/* Line 690 of lalr1.cc  */
-#line 4990 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 700:
+/* Line 664 of lalr1.cc  */
+#line 4919 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
-  case 700:
-
-/* Line 690 of lalr1.cc  */
-#line 4994 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 701:
-
-/* Line 690 of lalr1.cc  */
-#line 4999 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4923 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = NULL;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 702:
-
-/* Line 690 of lalr1.cc  */
-#line 5003 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4928 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 703:
+/* Line 664 of lalr1.cc  */
+#line 4932 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5009 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 704:
+/* Line 664 of lalr1.cc  */
+#line 4938 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTExtensionSelection(
                 LOC((yyloc)),
@@ -9710,28 +8307,25 @@
         }
     break;
 
-  case 704:
-
-/* Line 690 of lalr1.cc  */
-#line 5018 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 705:
-
-/* Line 690 of lalr1.cc  */
-#line 5022 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4947 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 706:
+/* Line 664 of lalr1.cc  */
+#line 4951 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5028 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 707:
+/* Line 664 of lalr1.cc  */
+#line 4957 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWords(
                 LOC((yyloc)),
@@ -9741,10 +8335,9 @@
         }
     break;
 
-  case 707:
-
-/* Line 690 of lalr1.cc  */
-#line 5038 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 708:
+/* Line 664 of lalr1.cc  */
+#line 4967 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), static_cast<StringLiteral*>((yysemantic_stack_[(1) - (1)].expr)), NULL
@@ -9752,10 +8345,9 @@
         }
     break;
 
-  case 708:
-
-/* Line 690 of lalr1.cc  */
-#line 5044 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 709:
+/* Line 664 of lalr1.cc  */
+#line 4973 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), NULL, dynamic_cast<exprnode*>((yysemantic_stack_[(3) - (2)].expr))
@@ -9763,145 +8355,129 @@
         }
     break;
 
-  case 709:
-
-/* Line 690 of lalr1.cc  */
-#line 5051 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 710:
+/* Line 664 of lalr1.cc  */
+#line 4980 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::any );
         }
     break;
 
-  case 710:
-
-/* Line 690 of lalr1.cc  */
-#line 5055 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 711:
-
-/* Line 690 of lalr1.cc  */
-#line 5061 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4984 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 712:
-
-/* Line 690 of lalr1.cc  */
-#line 5065 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 4990 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
     break;
 
   case 713:
+/* Line 664 of lalr1.cc  */
+#line 4994 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5069 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 714:
+/* Line 664 of lalr1.cc  */
+#line 4998 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
         }
     break;
 
-  case 714:
-
-/* Line 690 of lalr1.cc  */
-#line 5074 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 715:
+/* Line 664 of lalr1.cc  */
+#line 5003 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::any;
         }
     break;
 
-  case 715:
-
-/* Line 690 of lalr1.cc  */
-#line 5078 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 716:
+/* Line 664 of lalr1.cc  */
+#line 5007 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
         }
     break;
 
-  case 716:
-
-/* Line 690 of lalr1.cc  */
-#line 5083 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 717:
+/* Line 664 of lalr1.cc  */
+#line 5012 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::all;
         }
     break;
 
-  case 717:
-
-/* Line 690 of lalr1.cc  */
-#line 5087 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 718:
+/* Line 664 of lalr1.cc  */
+#line 5016 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
         }
     break;
 
-  case 718:
-
-/* Line 690 of lalr1.cc  */
-#line 5093 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 719:
-
-/* Line 690 of lalr1.cc  */
-#line 5097 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5022 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 720:
-
-/* Line 690 of lalr1.cc  */
-#line 5101 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5026 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 721:
-
-/* Line 690 of lalr1.cc  */
-#line 5105 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5030 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 722:
-
-/* Line 690 of lalr1.cc  */
-#line 5109 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5034 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 723:
+/* Line 664 of lalr1.cc  */
+#line 5038 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5115 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 724:
+/* Line 664 of lalr1.cc  */
+#line 5044 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTOrder( LOC((yyloc)) );
         }
     break;
 
-  case 724:
-
-/* Line 690 of lalr1.cc  */
-#line 5121 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 725:
+/* Line 664 of lalr1.cc  */
+#line 5050 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWindow(
                 LOC((yyloc)),
@@ -9911,10 +8487,9 @@
         }
     break;
 
-  case 725:
-
-/* Line 690 of lalr1.cc  */
-#line 5131 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 726:
+/* Line 664 of lalr1.cc  */
+#line 5060 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDistance(
                 LOC((yyloc)),
@@ -9924,37 +8499,33 @@
         }
     break;
 
-  case 726:
-
-/* Line 690 of lalr1.cc  */
-#line 5141 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 727:
+/* Line 664 of lalr1.cc  */
+#line 5070 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::words );
         }
     break;
 
-  case 727:
-
-/* Line 690 of lalr1.cc  */
-#line 5145 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 728:
+/* Line 664 of lalr1.cc  */
+#line 5074 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::sentences );
         }
     break;
 
-  case 728:
-
-/* Line 690 of lalr1.cc  */
-#line 5149 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 729:
+/* Line 664 of lalr1.cc  */
+#line 5078 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::paragraphs );
         }
     break;
 
-  case 729:
-
-/* Line 690 of lalr1.cc  */
-#line 5155 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 730:
+/* Line 664 of lalr1.cc  */
+#line 5084 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             FTMatchOptions *mo = new FTMatchOptions( LOC((yyloc)) );
             mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -9962,10 +8533,9 @@
         }
     break;
 
-  case 730:
-
-/* Line 690 of lalr1.cc  */
-#line 5161 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 731:
+/* Line 664 of lalr1.cc  */
+#line 5090 "/home/colea/work/new-jsoniq/build/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)) );
@@ -9973,118 +8543,105 @@
         }
     break;
 
-  case 731:
-
-/* Line 690 of lalr1.cc  */
-#line 5169 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 732:
-
-/* Line 690 of lalr1.cc  */
-#line 5173 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5098 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 733:
-
-/* Line 690 of lalr1.cc  */
-#line 5177 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5102 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 734:
-
-/* Line 690 of lalr1.cc  */
-#line 5181 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5106 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 735:
-
-/* Line 690 of lalr1.cc  */
-#line 5185 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5110 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 736:
-
-/* Line 690 of lalr1.cc  */
-#line 5189 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5114 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 737:
-
-/* Line 690 of lalr1.cc  */
-#line 5193 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5118 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 738:
-
-/* Line 690 of lalr1.cc  */
-#line 5197 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5122 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 739:
+/* Line 664 of lalr1.cc  */
+#line 5126 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5203 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 740:
+/* Line 664 of lalr1.cc  */
+#line 5132 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::sensitive );
         }
     break;
 
-  case 740:
-
-/* Line 690 of lalr1.cc  */
-#line 5207 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 741:
+/* Line 664 of lalr1.cc  */
+#line 5136 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::insensitive );
         }
     break;
 
-  case 741:
-
-/* Line 690 of lalr1.cc  */
-#line 5211 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 742:
+/* Line 664 of lalr1.cc  */
+#line 5140 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::lower );
         }
     break;
 
-  case 742:
-
-/* Line 690 of lalr1.cc  */
-#line 5215 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 743:
+/* Line 664 of lalr1.cc  */
+#line 5144 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::upper );
         }
     break;
 
-  case 743:
-
-/* Line 690 of lalr1.cc  */
-#line 5221 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 744:
+/* Line 664 of lalr1.cc  */
+#line 5150 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::sensitive
@@ -10092,10 +8649,9 @@
         }
     break;
 
-  case 744:
-
-/* Line 690 of lalr1.cc  */
-#line 5227 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 745:
+/* Line 664 of lalr1.cc  */
+#line 5156 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::insensitive
@@ -10103,10 +8659,9 @@
         }
     break;
 
-  case 745:
-
-/* Line 690 of lalr1.cc  */
-#line 5235 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 746:
+/* Line 664 of lalr1.cc  */
+#line 5164 "/home/colea/work/new-jsoniq/build/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))
@@ -10114,28 +8669,25 @@
         }
     break;
 
-  case 746:
-
-/* Line 690 of lalr1.cc  */
-#line 5243 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 747:
+/* Line 664 of lalr1.cc  */
+#line 5172 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::stemming );
         }
     break;
 
-  case 747:
-
-/* Line 690 of lalr1.cc  */
-#line 5247 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 748:
+/* Line 664 of lalr1.cc  */
+#line 5176 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::no_stemming );
         }
     break;
 
-  case 748:
-
-/* Line 690 of lalr1.cc  */
-#line 5253 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 749:
+/* Line 664 of lalr1.cc  */
+#line 5182 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = NULL;
             if ( (yysemantic_stack_[(2) - (2)].node) ) {
@@ -10147,10 +8699,9 @@
         }
     break;
 
-  case 749:
-
-/* Line 690 of lalr1.cc  */
-#line 5263 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 750:
+/* Line 664 of lalr1.cc  */
+#line 5192 "/home/colea/work/new-jsoniq/build/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) ) {
@@ -10163,75 +8714,67 @@
         }
     break;
 
-  case 750:
-
-/* Line 690 of lalr1.cc  */
-#line 5274 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 751:
+/* Line 664 of lalr1.cc  */
+#line 5203 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTThesaurusOption( LOC((yyloc)), NULL, false, true );
         }
     break;
 
-  case 751:
-
-/* Line 690 of lalr1.cc  */
-#line 5280 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 752:
-
-/* Line 690 of lalr1.cc  */
-#line 5284 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5209 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = NULL;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 753:
+/* Line 664 of lalr1.cc  */
+#line 5213 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5289 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 754:
+/* Line 664 of lalr1.cc  */
+#line 5218 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.thesaurus_id_list) = NULL;
         }
     break;
 
-  case 754:
-
-/* Line 690 of lalr1.cc  */
-#line 5293 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 755:
+/* Line 664 of lalr1.cc  */
+#line 5222 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(2) - (2)].thesaurus_id_list);
         }
     break;
 
-  case 755:
-
-/* Line 690 of lalr1.cc  */
-#line 5299 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 756:
+/* Line 664 of lalr1.cc  */
+#line 5228 "/home/colea/work/new-jsoniq/build/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 756:
-
-/* Line 690 of lalr1.cc  */
-#line 5304 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 757:
+/* Line 664 of lalr1.cc  */
+#line 5233 "/home/colea/work/new-jsoniq/build/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 757:
-
-/* Line 690 of lalr1.cc  */
-#line 5311 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 758:
+/* Line 664 of lalr1.cc  */
+#line 5240 "/home/colea/work/new-jsoniq/build/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))
@@ -10239,46 +8782,41 @@
         }
     break;
 
-  case 758:
-
-/* Line 690 of lalr1.cc  */
-#line 5318 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 759:
+/* Line 664 of lalr1.cc  */
+#line 5247 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.sval) = 0;
         }
     break;
 
-  case 759:
-
-/* Line 690 of lalr1.cc  */
-#line 5322 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 760:
+/* Line 664 of lalr1.cc  */
+#line 5251 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.sval) = (yysemantic_stack_[(2) - (2)].sval);
         }
     break;
 
-  case 760:
-
-/* Line 690 of lalr1.cc  */
-#line 5328 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 761:
-
-/* Line 690 of lalr1.cc  */
-#line 5332 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5257 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 762:
+/* Line 664 of lalr1.cc  */
+#line 5261 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5338 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 763:
+/* Line 664 of lalr1.cc  */
+#line 5267 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)),
@@ -10289,10 +8827,9 @@
         }
     break;
 
-  case 763:
-
-/* Line 690 of lalr1.cc  */
-#line 5347 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 764:
+/* Line 664 of lalr1.cc  */
+#line 5276 "/home/colea/work/new-jsoniq/build/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
@@ -10301,10 +8838,9 @@
         }
     break;
 
-  case 764:
-
-/* Line 690 of lalr1.cc  */
-#line 5354 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 765:
+/* Line 664 of lalr1.cc  */
+#line 5283 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, NULL, ft_stop_words_mode::without
@@ -10312,28 +8848,25 @@
         }
     break;
 
-  case 765:
-
-/* Line 690 of lalr1.cc  */
-#line 5362 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 766:
+/* Line 664 of lalr1.cc  */
+#line 5291 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), NULL );
         }
     break;
 
-  case 766:
-
-/* Line 690 of lalr1.cc  */
-#line 5366 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 767:
+/* Line 664 of lalr1.cc  */
+#line 5295 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), "", (yysemantic_stack_[(3) - (2)].strlist) );
         }
     break;
 
-  case 767:
-
-/* Line 690 of lalr1.cc  */
-#line 5372 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 768:
+/* Line 664 of lalr1.cc  */
+#line 5301 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             string_list_t *sl = new string_list_t;
             sl->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -10341,10 +8874,9 @@
         }
     break;
 
-  case 768:
-
-/* Line 690 of lalr1.cc  */
-#line 5378 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 769:
+/* Line 664 of lalr1.cc  */
+#line 5307 "/home/colea/work/new-jsoniq/build/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)) );
@@ -10352,38 +8884,34 @@
         }
     break;
 
-  case 769:
-
-/* Line 690 of lalr1.cc  */
-#line 5385 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 770:
+/* Line 664 of lalr1.cc  */
+#line 5314 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.incl_excl_list) = NULL;
         }
     break;
 
-  case 770:
-
-/* Line 690 of lalr1.cc  */
-#line 5389 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 771:
+/* Line 664 of lalr1.cc  */
+#line 5318 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.incl_excl_list) = (yysemantic_stack_[(1) - (1)].incl_excl_list);
         }
     break;
 
-  case 771:
-
-/* Line 690 of lalr1.cc  */
-#line 5395 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 772:
+/* Line 664 of lalr1.cc  */
+#line 5324 "/home/colea/work/new-jsoniq/build/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 772:
-
-/* Line 690 of lalr1.cc  */
-#line 5400 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 773:
+/* Line 664 of lalr1.cc  */
+#line 5329 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             FTStopWordOption::incl_excl_list_t *iel = (yysemantic_stack_[(2) - (1)].incl_excl_list);
             if ( !iel )
@@ -10393,10 +8921,9 @@
         }
     break;
 
-  case 773:
-
-/* Line 690 of lalr1.cc  */
-#line 5410 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 774:
+/* Line 664 of lalr1.cc  */
+#line 5339 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -10406,10 +8933,9 @@
         }
     break;
 
-  case 774:
-
-/* Line 690 of lalr1.cc  */
-#line 5418 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 775:
+/* Line 664 of lalr1.cc  */
+#line 5347 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -10419,109 +8945,97 @@
         }
     break;
 
-  case 775:
-
-/* Line 690 of lalr1.cc  */
-#line 5428 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 776:
+/* Line 664 of lalr1.cc  */
+#line 5357 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTLanguageOption( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
-  case 776:
-
-/* Line 690 of lalr1.cc  */
-#line 5434 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 777:
+/* Line 664 of lalr1.cc  */
+#line 5363 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::with );
         }
     break;
 
-  case 777:
-
-/* Line 690 of lalr1.cc  */
-#line 5438 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 778:
+/* Line 664 of lalr1.cc  */
+#line 5367 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::without );
         }
     break;
 
-  case 778:
-
-/* Line 690 of lalr1.cc  */
-#line 5444 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 779:
+/* Line 664 of lalr1.cc  */
+#line 5373 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_start );
         }
     break;
 
-  case 779:
-
-/* Line 690 of lalr1.cc  */
-#line 5448 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 780:
+/* Line 664 of lalr1.cc  */
+#line 5377 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_end );
         }
     break;
 
-  case 780:
-
-/* Line 690 of lalr1.cc  */
-#line 5452 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 781:
+/* Line 664 of lalr1.cc  */
+#line 5381 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::entire );
         }
     break;
 
-  case 781:
-
-/* Line 690 of lalr1.cc  */
-#line 5458 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 782:
+/* Line 664 of lalr1.cc  */
+#line 5387 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTTimes( LOC((yyloc)), dynamic_cast<FTRange*>((yysemantic_stack_[(3) - (2)].node)) );
         }
     break;
 
-  case 782:
-
-/* Line 690 of lalr1.cc  */
-#line 5464 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 783:
+/* Line 664 of lalr1.cc  */
+#line 5393 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::exactly, (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
-  case 783:
-
-/* Line 690 of lalr1.cc  */
-#line 5468 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 784:
+/* Line 664 of lalr1.cc  */
+#line 5397 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_least, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 784:
-
-/* Line 690 of lalr1.cc  */
-#line 5472 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 785:
+/* Line 664 of lalr1.cc  */
+#line 5401 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_most, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 785:
-
-/* Line 690 of lalr1.cc  */
-#line 5476 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 786:
+/* Line 664 of lalr1.cc  */
+#line 5405 "/home/colea/work/new-jsoniq/build/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 786:
-
-/* Line 690 of lalr1.cc  */
-#line 5482 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 787:
+/* Line 664 of lalr1.cc  */
+#line 5411 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10531,10 +9045,9 @@
         }
     break;
 
-  case 787:
-
-/* Line 690 of lalr1.cc  */
-#line 5490 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 788:
+/* Line 664 of lalr1.cc  */
+#line 5419 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10544,101 +9057,90 @@
         }
     break;
 
-  case 788:
-
-/* Line 690 of lalr1.cc  */
-#line 5500 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 789:
+/* Line 664 of lalr1.cc  */
+#line 5429 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::sentence );
         }
     break;
 
-  case 789:
-
-/* Line 690 of lalr1.cc  */
-#line 5504 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 790:
+/* Line 664 of lalr1.cc  */
+#line 5433 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::paragraph );
         }
     break;
 
-  case 790:
-
-/* Line 690 of lalr1.cc  */
-#line 5510 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 791:
+/* Line 664 of lalr1.cc  */
+#line 5439 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTIgnoreOption( LOC((yyloc)), static_cast<UnionExpr*>((yysemantic_stack_[(3) - (3)].expr)) );
         }
     break;
 
-  case 791:
-
-/* Line 690 of lalr1.cc  */
-#line 5516 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 792:
+/* Line 664 of lalr1.cc  */
+#line 5445 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), NULL );
         }
     break;
 
-  case 792:
-
-/* Line 690 of lalr1.cc  */
-#line 5520 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 793:
+/* Line 664 of lalr1.cc  */
+#line 5449 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 793:
-
-/* Line 690 of lalr1.cc  */
-#line 5526 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 794:
+/* Line 664 of lalr1.cc  */
+#line 5455 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, false);
         }
     break;
 
-  case 794:
-
-/* Line 690 of lalr1.cc  */
-#line 5530 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 795:
+/* Line 664 of lalr1.cc  */
+#line 5459 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), false);
         }
     break;
 
-  case 795:
-
-/* Line 690 of lalr1.cc  */
-#line 5536 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 796:
+/* Line 664 of lalr1.cc  */
+#line 5465 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, true);
         }
     break;
 
-  case 796:
-
-/* Line 690 of lalr1.cc  */
-#line 5540 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 797:
+/* Line 664 of lalr1.cc  */
+#line 5469 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), true);
         }
     break;
 
-  case 797:
-
-/* Line 690 of lalr1.cc  */
-#line 5546 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 798:
+/* Line 664 of lalr1.cc  */
+#line 5475 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONDirectObjectConstructor(LOC((yyloc)),
                                                dynamic_cast<JSONPairList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 798:
-
-/* Line 690 of lalr1.cc  */
-#line 5553 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 799:
+/* Line 664 of lalr1.cc  */
+#line 5482 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(3) - (1)].expr), (yylocation_stack_[(3) - (1)]));
           driver.addCommonLanguageWarning((yylocation_stack_[(3) - (1)]), ZED(ZWST0009_OBJECT_KEY_NOT_QUOTED));
@@ -10649,10 +9151,9 @@
         }
     break;
 
-  case 799:
-
-/* Line 690 of lalr1.cc  */
-#line 5563 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 800:
+/* Line 664 of lalr1.cc  */
+#line 5492 "/home/colea/work/new-jsoniq/build/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)));
@@ -10660,10 +9161,9 @@
         }
     break;
 
-  case 800:
-
-/* Line 690 of lalr1.cc  */
-#line 5569 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 801:
+/* Line 664 of lalr1.cc  */
+#line 5498 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (1)].node));
           assert(jpl);
@@ -10672,10 +9172,9 @@
         }
     break;
 
-  case 801:
-
-/* Line 690 of lalr1.cc  */
-#line 5576 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 802:
+/* Line 664 of lalr1.cc  */
+#line 5505 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(5) - (3)].expr), (yylocation_stack_[(5) - (3)]));
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (1)].node));
@@ -10686,10 +9185,9 @@
         }
     break;
 
-  case 802:
-
-/* Line 690 of lalr1.cc  */
-#line 5587 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 803:
+/* Line 664 of lalr1.cc  */
+#line 5516 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectInsertExpr(LOC((yyloc)),
                                         (yysemantic_stack_[(5) - (3)].expr),
@@ -10697,10 +9195,9 @@
         }
     break;
 
-  case 803:
-
-/* Line 690 of lalr1.cc  */
-#line 5593 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 804:
+/* Line 664 of lalr1.cc  */
+#line 5522 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (3)].node));
           (yyval.expr) = new JSONObjectInsertExpr(
@@ -10712,19 +9209,17 @@
         }
     break;
 
-  case 804:
-
-/* Line 690 of lalr1.cc  */
-#line 5603 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 805:
+/* Line 664 of lalr1.cc  */
+#line 5532 "/home/colea/work/new-jsoniq/build/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 805:
-
-/* Line 690 of lalr1.cc  */
-#line 5607 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 806:
+/* Line 664 of lalr1.cc  */
+#line 5536 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           driver.addCommonLanguageWarning((yylocation_stack_[(4) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
           (yyval.expr) = new JSONObjectInsertExpr(LOC((yyloc)),
@@ -10733,10 +9228,9 @@
         }
     break;
 
-  case 806:
-
-/* Line 690 of lalr1.cc  */
-#line 5614 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 807:
+/* Line 664 of lalr1.cc  */
+#line 5543 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           driver.addCommonLanguageWarning((yylocation_stack_[(4) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(4) - (2)].node));
@@ -10749,39 +9243,35 @@
         }
     break;
 
-  case 807:
-
-/* Line 690 of lalr1.cc  */
-#line 5625 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 808:
+/* Line 664 of lalr1.cc  */
+#line 5554 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           driver.addCommonLanguageWarning((yylocation_stack_[(7) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
           (yyval.expr) = new JSONArrayInsertExpr(LOC((yyloc)), (yysemantic_stack_[(7) - (2)].expr), (yysemantic_stack_[(7) - (4)].expr), (yysemantic_stack_[(7) - (7)].expr));
         }
     break;
 
-  case 808:
-
-/* Line 690 of lalr1.cc  */
-#line 5632 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 809:
+/* Line 664 of lalr1.cc  */
+#line 5561 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayAppendExpr(LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr));
         }
     break;
 
-  case 809:
-
-/* Line 690 of lalr1.cc  */
-#line 5636 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 810:
+/* Line 664 of lalr1.cc  */
+#line 5565 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           driver.addCommonLanguageWarning((yylocation_stack_[(4) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
           (yyval.expr) = new JSONArrayAppendExpr(LOC((yyloc)), (yysemantic_stack_[(4) - (2)].expr), (yysemantic_stack_[(4) - (4)].expr));
         }
     break;
 
-  case 810:
-
-/* Line 690 of lalr1.cc  */
-#line 5643 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 811:
+/* Line 664 of lalr1.cc  */
+#line 5572 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(3) - (3)].expr));
@@ -10802,10 +9292,9 @@
         }
     break;
 
-  case 811:
-
-/* Line 690 of lalr1.cc  */
-#line 5662 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 812:
+/* Line 664 of lalr1.cc  */
+#line 5591 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           driver.addCommonLanguageWarning((yylocation_stack_[(2) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
@@ -10827,10 +9316,9 @@
         }
     break;
 
-  case 812:
-
-/* Line 690 of lalr1.cc  */
-#line 5684 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 813:
+/* Line 664 of lalr1.cc  */
+#line 5613 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(5) - (3)].expr));
@@ -10854,10 +9342,9 @@
         }
     break;
 
-  case 813:
-
-/* Line 690 of lalr1.cc  */
-#line 5706 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 814:
+/* Line 664 of lalr1.cc  */
+#line 5635 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           driver.addCommonLanguageWarning((yylocation_stack_[(4) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
@@ -10882,10 +9369,9 @@
         }
     break;
 
-  case 814:
-
-/* Line 690 of lalr1.cc  */
-#line 5731 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 815:
+/* Line 664 of lalr1.cc  */
+#line 5660 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(7) - (5)].expr));
@@ -10909,10 +9395,9 @@
         }
     break;
 
-  case 815:
-
-/* Line 690 of lalr1.cc  */
-#line 5753 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 816:
+/* Line 664 of lalr1.cc  */
+#line 5682 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           driver.addCommonLanguageWarning((yylocation_stack_[(6) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
@@ -10937,1581 +9422,1360 @@
         }
     break;
 
-  case 816:
-
-/* Line 690 of lalr1.cc  */
-#line 5778 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 817:
-
-/* Line 690 of lalr1.cc  */
-#line 5782 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5707 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 818:
-
-/* Line 690 of lalr1.cc  */
-#line 5786 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5711 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 819:
-
-/* Line 690 of lalr1.cc  */
-#line 5792 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5715 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonItem);
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 820:
-
-/* Line 690 of lalr1.cc  */
-#line 5796 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5721 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-          driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_JSONIQ_TYPE_KEYWORDS));
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonItem);
         }
     break;
 
   case 821:
-
-/* Line 690 of lalr1.cc  */
-#line 5803 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5725 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonObject);
+          driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_JSONIQ_TYPE_KEYWORDS));
+          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonItem);
         }
     break;
 
   case 822:
-
-/* Line 690 of lalr1.cc  */
-#line 5807 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5732 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-          driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_JSONIQ_TYPE_KEYWORDS));
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonObject);
         }
     break;
 
   case 823:
-
-/* Line 690 of lalr1.cc  */
-#line 5814 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+/* Line 664 of lalr1.cc  */
+#line 5736 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonArray);
+          driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_JSONIQ_TYPE_KEYWORDS));
+          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonObject);
         }
     break;
 
   case 824:
+/* Line 664 of lalr1.cc  */
+#line 5743 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonArray);
+        }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5818 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 825:
+/* Line 664 of lalr1.cc  */
+#line 5747 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     {
           driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_JSONIQ_TYPE_KEYWORDS));
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonArray);
         }
     break;
 
-  case 827:
-
-/* Line 690 of lalr1.cc  */
-#line 5828 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
-    break;
-
   case 828:
+/* Line 664 of lalr1.cc  */
+#line 5757 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5829 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 829:
+/* Line 664 of lalr1.cc  */
+#line 5758 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("attribute"))); }
     break;
 
-  case 829:
-
-/* Line 690 of lalr1.cc  */
-#line 5830 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 830:
+/* Line 664 of lalr1.cc  */
+#line 5759 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("comment"))); }
     break;
 
-  case 830:
-
-/* Line 690 of lalr1.cc  */
-#line 5831 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 831:
+/* Line 664 of lalr1.cc  */
+#line 5760 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document-node"))); }
     break;
 
-  case 831:
-
-/* Line 690 of lalr1.cc  */
-#line 5832 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 832:
+/* Line 664 of lalr1.cc  */
+#line 5761 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("namespace-node"))); }
     break;
 
-  case 832:
-
-/* Line 690 of lalr1.cc  */
-#line 5833 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 833:
+/* Line 664 of lalr1.cc  */
+#line 5762 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("element"))); }
     break;
 
-  case 833:
-
-/* Line 690 of lalr1.cc  */
-#line 5834 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 834:
+/* Line 664 of lalr1.cc  */
+#line 5763 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("if"))); }
     break;
 
-  case 834:
-
-/* Line 690 of lalr1.cc  */
-#line 5835 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 835:
+/* Line 664 of lalr1.cc  */
+#line 5764 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("node"))); }
     break;
 
-  case 835:
-
-/* Line 690 of lalr1.cc  */
-#line 5836 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 836:
+/* Line 664 of lalr1.cc  */
+#line 5765 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("processing-instruction"))); }
     break;
 
-  case 836:
-
-/* Line 690 of lalr1.cc  */
-#line 5837 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 837:
+/* Line 664 of lalr1.cc  */
+#line 5766 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-attribute"))); }
     break;
 
-  case 837:
-
-/* Line 690 of lalr1.cc  */
-#line 5838 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 838:
+/* Line 664 of lalr1.cc  */
+#line 5767 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-element"))); }
     break;
 
-  case 838:
-
-/* Line 690 of lalr1.cc  */
-#line 5839 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 839:
+/* Line 664 of lalr1.cc  */
+#line 5768 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("text"))); }
     break;
 
-  case 839:
-
-/* Line 690 of lalr1.cc  */
-#line 5840 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 840:
+/* Line 664 of lalr1.cc  */
+#line 5769 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("typeswitch"))); }
     break;
 
-  case 840:
-
-/* Line 690 of lalr1.cc  */
-#line 5841 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 841:
+/* Line 664 of lalr1.cc  */
+#line 5770 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("switch"))); }
     break;
 
-  case 841:
-
-/* Line 690 of lalr1.cc  */
-#line 5842 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 842:
+/* Line 664 of lalr1.cc  */
+#line 5771 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty-sequence"))); }
     break;
 
-  case 842:
-
-/* Line 690 of lalr1.cc  */
-#line 5843 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 843:
+/* Line 664 of lalr1.cc  */
+#line 5772 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("while"))); }
     break;
 
-  case 844:
-
-/* Line 690 of lalr1.cc  */
-#line 5847 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
-    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
-    break;
-
   case 845:
+/* Line 664 of lalr1.cc  */
+#line 5776 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
+    break;
 
-/* Line 690 of lalr1.cc  */
-#line 5848 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 846:
+/* Line 664 of lalr1.cc  */
+#line 5777 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("xquery"))); }
     break;
 
-  case 846:
-
-/* Line 690 of lalr1.cc  */
-#line 5849 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 847:
+/* Line 664 of lalr1.cc  */
+#line 5778 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty"))); }
     break;
 
-  case 847:
-
-/* Line 690 of lalr1.cc  */
-#line 5850 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 848:
+/* Line 664 of lalr1.cc  */
+#line 5779 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("boundary-space"))); }
     break;
 
-  case 848:
-
-/* Line 690 of lalr1.cc  */
-#line 5851 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 849:
+/* Line 664 of lalr1.cc  */
+#line 5780 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ft-option"))); }
     break;
 
-  case 849:
-
-/* Line 690 of lalr1.cc  */
-#line 5852 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 850:
+/* Line 664 of lalr1.cc  */
+#line 5781 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("base-uri"))); }
     break;
 
-  case 850:
-
-/* Line 690 of lalr1.cc  */
-#line 5853 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 851:
+/* Line 664 of lalr1.cc  */
+#line 5782 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lax"))); }
     break;
 
-  case 851:
-
-/* Line 690 of lalr1.cc  */
-#line 5854 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 852:
+/* Line 664 of lalr1.cc  */
+#line 5783 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strict"))); }
     break;
 
-  case 852:
-
-/* Line 690 of lalr1.cc  */
-#line 5855 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 853:
+/* Line 664 of lalr1.cc  */
+#line 5784 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("idiv"))); }
     break;
 
-  case 853:
-
-/* Line 690 of lalr1.cc  */
-#line 5856 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 854:
+/* Line 664 of lalr1.cc  */
+#line 5785 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document"))); }
     break;
 
-  case 854:
-
-/* Line 690 of lalr1.cc  */
-#line 5857 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 855:
+/* Line 664 of lalr1.cc  */
+#line 5786 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ftnot"))); }
     break;
 
-  case 855:
-
-/* Line 690 of lalr1.cc  */
-#line 5858 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 856:
+/* Line 664 of lalr1.cc  */
+#line 5787 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("not"))); }
     break;
 
-  case 856:
-
-/* Line 690 of lalr1.cc  */
-#line 5859 "/home/colea/xquery/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
+  case 857:
+/* Line 664 of lalr1.cc  */
+#line 5788 "/home/colea/work/new-jsoniq/build/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), 

Follow ups