← Back to team overview

zorba-coders team mailing list archive

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

 

Ghislain Fourny has proposed merging lp:~zorba-coders/zorba/new-jsoniq-update into lp:zorba.

Requested reviews:
  Matthias Brantner (matthias-brantner)

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

New JSONiq syntax:
- Made json keyword mandatory to avoid conflicts.
- Turned "replace json value of" into "replace value of json" to make consistent with XML updates.
- New target syntax: delete $obj.foo, delete $arr[[1]], etc.

-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~zorba-coders/zorba/new-jsoniq-update/+merge/185295
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'src/compiler/parser/jsoniq_parser.cpp'
--- src/compiler/parser/jsoniq_parser.cpp	2013-09-12 08:50:38 +0000
+++ src/compiler/parser/jsoniq_parser.cpp	2013-09-12 15:25:26 +0000
@@ -111,9 +111,104 @@
         RCHelper::removeReference( ref );
     }
 }
-
-/* Line 284 of lalr1.cc  */
-#line 117 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+/* Line 284 of lalr1.cc  */
+#line 1042 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+
+namespace {
+bool convert_postfix_to_target_and_selector(
+    exprnode* aPostfixExpr,
+    rchandle<exprnode>* aTargetExpr,
+    rchandle<exprnode>* aSelectorExpr,
+    string* anError,
+    bool allowArray = true)
+{
+  rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
+      dynamic_cast<DynamicFunctionInvocation*>(aPostfixExpr);
+  rchandle<FilterExpr> lFilterExpr = dynamic_cast<FilterExpr*>(aPostfixExpr);
+  rchandle<JSONObjectLookup> lObjectLookup = dynamic_cast<JSONObjectLookup*>(aPostfixExpr);
+
+
+  if (lDynamicFunctionInvocation != NULL) {
+    if (lDynamicFunctionInvocation->getArgList()->size() != 1)
+    {
+      *anError = "An object or array lookup with exactly one argument is expected. Zero or more than one argument were found.";
+      return false;
+    }
+    *aTargetExpr = lDynamicFunctionInvocation->getPrimaryExpr(),
+    *aSelectorExpr = lDynamicFunctionInvocation->getArgList()->operator[](0);
+    return true;
+  }
+
+
+  else if (lObjectLookup != NULL)
+  {
+    *aTargetExpr = lObjectLookup->get_object_expr();
+    lObjectLookup->set_object_expr(NULL);
+    *aSelectorExpr = lObjectLookup->get_selector_expr();
+    lObjectLookup->set_selector_expr(NULL);
+    return true;
+  }
+
+  else if (!allowArray && lFilterExpr != NULL)
+  {
+    *anError = "An object lookup is expected.";
+    return false;
+  }
+  else if (allowArray && lFilterExpr != NULL)
+  {
+    rchandle<exprnode> lPrimary = lFilterExpr->get_primary();
+    rchandle<PredicateList> lPredicateList = lFilterExpr->get_pred_list();
+    ulong lSize = lPredicateList->size();
+
+
+    if (lSize < 1)
+    {
+      *anError = "An object or array lookup with exactly one argument is expected. No argument was found.";
+      return false;
+    }
+    rchandle<JSONArrayConstructor> lConstructor =
+        dynamic_cast<JSONArrayConstructor*>(lPredicateList->operator[](lSize - 1).getp());
+    if (lConstructor == NULL)
+    {
+      *anError = "An object or array lookup is expected.";
+      return false;
+    }
+    *aSelectorExpr = lConstructor->get_expr();
+    if (aSelectorExpr == NULL)
+    {
+      *anError = "An object or array lookup with exactly one argument is expected. No argument was found.";
+      return false;
+    }
+    lConstructor->set_expr(NULL);
+
+
+    *aTargetExpr = lPrimary;
+    if (lSize > 1)
+    {
+      rchandle<PredicateList> lNewPredicateList =
+          new PredicateList(lPredicateList->get_location());
+      for (int i = 0; i < lSize - 1; ++i)
+      {
+        lNewPredicateList->push_back(lPredicateList->operator[](i));
+      }
+      *aTargetExpr = new FilterExpr(
+          lFilterExpr->get_location(),
+          lPrimary,
+          lNewPredicateList);
+    }
+    return true;
+  }
+
+  else
+  {
+    *anError = "An object or array lookup is expected.";
+    return false;
+  }
+};
+}
+
+/* Line 284 of lalr1.cc  */
+#line 212 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 
 
 # ifndef YY_NULL
@@ -208,7 +303,7 @@
 
 namespace zorba {
 /* Line 352 of lalr1.cc  */
-#line 212 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 307 "/Users/zorba/Code/zorba/release/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
@@ -314,2002 +409,2002 @@
 #line 902 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ delete ((*yyvaluep).decval); };
 /* Line 453 of lalr1.cc  */
-#line 318 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 413 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 126: /* "'DOUBLE'" */
 /* Line 453 of lalr1.cc  */
 #line 901 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ delete ((*yyvaluep).dval); };
 /* Line 453 of lalr1.cc  */
-#line 325 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 420 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 151: /* "'INTEGER'" */
 /* Line 453 of lalr1.cc  */
 #line 900 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ delete ((*yyvaluep).ival); };
 /* Line 453 of lalr1.cc  */
-#line 332 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 427 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 344: /* VersionDecl */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 339 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 434 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 345: /* MainModule */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 346 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 441 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 346: /* LibraryModule */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 353 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 448 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 347: /* ModuleDecl */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 360 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 455 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 348: /* SIND_DeclList */
 /* Line 453 of lalr1.cc  */
 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 367 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 462 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 349: /* SIND_Decl */
 /* Line 453 of lalr1.cc  */
 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 374 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 469 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 350: /* Setter */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 381 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 476 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 351: /* BoundarySpaceDecl */
 /* Line 453 of lalr1.cc  */
 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 388 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 483 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 352: /* DefaultCollationDecl */
 /* Line 453 of lalr1.cc  */
 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 395 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 490 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 353: /* BaseURIDecl */
 /* Line 453 of lalr1.cc  */
 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 402 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 497 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 354: /* ConstructionDecl */
 /* Line 453 of lalr1.cc  */
 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 409 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 504 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 355: /* OrderingModeDecl */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 416 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 511 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 356: /* EmptyOrderDecl */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 423 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 518 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 357: /* CopyNamespacesDecl */
 /* Line 453 of lalr1.cc  */
 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 430 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 525 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 358: /* Import */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 437 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 532 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 359: /* SchemaImport */
 /* Line 453 of lalr1.cc  */
 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 444 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 539 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 360: /* URILiteralList */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 451 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 546 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 361: /* SchemaPrefix */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 458 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 553 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 362: /* ModuleImport */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 465 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 560 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 363: /* NamespaceDecl */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 472 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 567 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 364: /* DefaultNamespaceDecl */
 /* Line 453 of lalr1.cc  */
 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 479 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 574 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 365: /* VFO_DeclList */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 486 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 581 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 366: /* VFO_Decl */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 493 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 588 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 367: /* DecimalFormatDecl */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 500 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 595 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 368: /* DecimalFormatParamList */
 /* Line 453 of lalr1.cc  */
 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ delete ((*yyvaluep).vstrpair); };
 /* Line 453 of lalr1.cc  */
-#line 507 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 602 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 369: /* DecimalFormatParam */
 /* Line 453 of lalr1.cc  */
 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ delete ((*yyvaluep).strpair); };
 /* Line 453 of lalr1.cc  */
-#line 514 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 609 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 371: /* OptionDecl */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 521 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 616 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 372: /* FTOptionDecl */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 528 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 623 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 373: /* CtxItemDecl */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 535 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 630 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 374: /* CtxItemDecl2 */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 542 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 637 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 375: /* CtxItemDecl3 */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 549 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 644 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 376: /* CtxItemDecl4 */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 556 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 651 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 377: /* VarDecl */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 563 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 658 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 378: /* VarNameAndType */
 /* Line 453 of lalr1.cc  */
 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ delete ((*yyvaluep).varnametype); };
 /* Line 453 of lalr1.cc  */
-#line 570 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 665 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 379: /* AnnotationList */
 /* Line 453 of lalr1.cc  */
 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 577 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 672 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 380: /* Annotation */
 /* Line 453 of lalr1.cc  */
 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 584 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 679 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 381: /* AnnotationLiteralList */
 /* Line 453 of lalr1.cc  */
 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 591 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 686 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 382: /* FunctionDecl */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 598 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 693 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 383: /* FunctionDecl2 */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 605 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 700 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 384: /* FunctionDeclSimple */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 612 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 707 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 385: /* FunctionDeclUpdating */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 619 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 714 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 386: /* FunctionSig */
 /* Line 453 of lalr1.cc  */
 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ delete ((*yyvaluep).fnsig); };
 /* Line 453 of lalr1.cc  */
-#line 626 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 721 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 387: /* ParamList */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 633 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 728 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 388: /* Param */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 640 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 735 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 389: /* CollectionDecl */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 647 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 742 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 391: /* IndexDecl */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 654 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 749 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 392: /* IndexKeyList */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 661 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 756 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 393: /* IndexKeySpec */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 668 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 763 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 394: /* IntegrityConstraintDecl */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 675 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 770 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 395: /* QueryBody */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 682 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 777 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 396: /* StatementsAndOptionalExprTop */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 689 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 784 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 397: /* StatementsAndOptionalExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 696 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 791 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 398: /* StatementsAndExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 703 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 798 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 399: /* Statements */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 710 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 805 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 400: /* Statement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 717 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 812 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 401: /* BlockStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 724 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 819 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 402: /* BlockExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 731 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 826 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 403: /* EnclosedStatementsAndOptionalExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 738 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 833 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 404: /* VarDeclStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 745 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 840 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 407: /* AssignStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 752 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 847 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 408: /* ApplyStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 759 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 854 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 409: /* ExitStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 766 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 861 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 410: /* WhileStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 773 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 868 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 411: /* FlowCtlStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 780 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 875 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 412: /* FLWORStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 787 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 882 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 413: /* ReturnStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 794 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 889 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 414: /* IfStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 801 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 896 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 415: /* TryStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 808 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 903 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 416: /* CatchListStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 815 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 910 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 417: /* CatchStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 822 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 418: /* VoidStatement */
 /* Line 453 of lalr1.cc  */
 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 829 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 419: /* Expr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 836 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 420: /* ExprSingle */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 843 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 938 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 421: /* ExprSimple */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 850 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 422: /* FLWORExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 857 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 952 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 423: /* ReturnExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 864 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 959 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 427: /* FLWORWinCond */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 871 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 966 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 428: /* WindowClause */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 878 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 973 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 429: /* CountClause */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 885 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 980 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 430: /* ForLetWinClause */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 892 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 987 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 432: /* FLWORClauseList */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 899 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 994 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 433: /* ForClause */
 /* Line 453 of lalr1.cc  */
 #line 923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 906 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1001 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 435: /* VarInDeclList */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 913 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1008 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 436: /* VarInDecl */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1015 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 437: /* PositionalVar */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1022 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 438: /* FTScoreVar */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 934 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1029 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 439: /* LetClause */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 941 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1036 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 440: /* VarGetsDeclList */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1043 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 441: /* VarGetsDecl */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 955 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1050 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 442: /* WindowVarDecl */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 962 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1057 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 443: /* WindowVars */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 969 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1064 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 444: /* WindowVars3 */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 976 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1071 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 445: /* WindowVars2 */
 /* Line 453 of lalr1.cc  */
 #line 930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 983 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1078 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 446: /* WhereClause */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 990 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1085 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 447: /* GroupByClause */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 997 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1092 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 448: /* GroupSpecList */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1004 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1099 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 449: /* GroupSpec */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1011 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1106 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 450: /* GroupCollationSpec */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1113 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 451: /* OrderByClause */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1025 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1120 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 452: /* OrderSpecList */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1032 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1127 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 453: /* OrderSpec */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1039 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1134 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 454: /* OrderModifier */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1046 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1141 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 455: /* OrderDirSpec */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1053 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1148 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 456: /* OrderEmptySpec */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1060 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1155 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 457: /* OrderCollationSpec */
 /* Line 453 of lalr1.cc  */
 #line 925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1067 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1162 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 458: /* QuantifiedExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1074 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1169 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 459: /* QVarInDeclList */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1081 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1176 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 460: /* QVarInDecl */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1088 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1183 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 461: /* SwitchExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1095 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1190 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 462: /* SwitchCaseClauseList */
 /* Line 453 of lalr1.cc  */
 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1102 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1197 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 463: /* SwitchCaseClause */
 /* Line 453 of lalr1.cc  */
 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1109 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1204 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 464: /* SwitchCaseOperandList */
 /* Line 453 of lalr1.cc  */
 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1116 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1211 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 465: /* SwitchStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1123 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1218 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 468: /* TypeswitchExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1130 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1225 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 469: /* TypeswitchStatement */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1137 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1232 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 470: /* CaseClauseList */
 /* Line 453 of lalr1.cc  */
 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1144 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1239 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 471: /* CaseClause */
 /* Line 453 of lalr1.cc  */
 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1151 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1246 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 474: /* SequenceTypeList */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1158 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1253 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 475: /* IfExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1165 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1260 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 476: /* OrExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1172 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1267 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 477: /* AndExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1179 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1274 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 478: /* NotExpr */
 /* Line 453 of lalr1.cc  */
 #line 935 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1186 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1281 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 479: /* ComparisonExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1193 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1288 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 481: /* FTContainsExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1200 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1295 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 482: /* StringConcatExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1207 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1302 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 483: /* opt_FTIgnoreOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1214 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1309 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 484: /* RangeExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1221 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1316 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 485: /* AdditiveExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1228 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1323 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 486: /* MultiplicativeExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1235 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1330 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 487: /* UnionExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1242 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1337 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 488: /* IntersectExceptExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1249 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1344 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 489: /* InstanceofExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1256 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1351 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 490: /* TreatExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1263 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1358 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 491: /* CastableExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1270 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1365 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 492: /* CastExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1277 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1372 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 493: /* SingleType */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1284 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1379 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 494: /* UnaryExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1291 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1386 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 495: /* SignList */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1298 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1393 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 496: /* ValueExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1305 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1400 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 497: /* SimpleMapExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1312 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1407 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 498: /* ValueComp */
 /* Line 453 of lalr1.cc  */
 #line 929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1319 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1414 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 499: /* NodeComp */
 /* Line 453 of lalr1.cc  */
 #line 932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1326 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1421 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 500: /* ValidateExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1333 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1428 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 501: /* ExtensionExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1340 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1435 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 502: /* Pragma_list */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1347 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1442 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 503: /* Pragma */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1354 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1449 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 504: /* PathExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1361 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1456 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 506: /* RelativePathExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1368 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1463 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 507: /* StepExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1375 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1470 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 508: /* AxisStep */
 /* Line 453 of lalr1.cc  */
 #line 945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1382 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1477 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 509: /* ForwardStep */
 /* Line 453 of lalr1.cc  */
 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1389 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1484 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 510: /* ForwardAxis */
 /* Line 453 of lalr1.cc  */
 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1396 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1491 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 511: /* AbbrevForwardStep */
 /* Line 453 of lalr1.cc  */
 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1403 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1498 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 512: /* ReverseStep */
 /* Line 453 of lalr1.cc  */
 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1410 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1505 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 513: /* ReverseAxis */
 /* Line 453 of lalr1.cc  */
 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1417 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1512 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 514: /* NodeTest */
 /* Line 453 of lalr1.cc  */
 #line 917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1424 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1519 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 515: /* NameTest */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1431 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1526 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 516: /* Wildcard */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1438 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1533 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 517: /* PostfixExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1445 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1540 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 518: /* PredicateList */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1452 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1547 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 519: /* Predicate */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1459 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1554 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 520: /* PrimaryExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1466 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1561 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 521: /* Literal */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1473 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1568 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 522: /* NumericLiteral */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1480 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1575 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 523: /* VarRef */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1487 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1582 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 524: /* ParenthesizedExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1494 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1589 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 525: /* ContextItemExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1501 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1596 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 526: /* OrderedExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1508 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1603 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 527: /* UnorderedExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1515 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1610 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 528: /* FunctionCall */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1522 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1617 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 529: /* ArgList */
 /* Line 453 of lalr1.cc  */
 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1529 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1624 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 533: /* Constructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1536 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1631 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 534: /* DirectConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1543 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1638 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 535: /* DirElemConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1550 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1645 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 536: /* DirElemContentList */
 /* Line 453 of lalr1.cc  */
 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1557 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1652 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 537: /* DirAttributeList */
 /* Line 453 of lalr1.cc  */
 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1564 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1659 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 538: /* DirAttr */
 /* Line 453 of lalr1.cc  */
 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1571 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1666 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 540: /* DirAttributeValue */
 /* Line 453 of lalr1.cc  */
 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1578 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1673 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 541: /* opt_QuoteAttrContentList */
 /* Line 453 of lalr1.cc  */
 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1585 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1680 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 542: /* QuoteAttrContentList */
 /* Line 453 of lalr1.cc  */
 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1592 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1687 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 543: /* opt_AposAttrContentList */
 /* Line 453 of lalr1.cc  */
 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1599 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1694 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 544: /* AposAttrContentList */
 /* Line 453 of lalr1.cc  */
 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1606 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1701 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 545: /* QuoteAttrValueContent */
 /* Line 453 of lalr1.cc  */
 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1613 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1708 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 546: /* AposAttrValueContent */
 /* Line 453 of lalr1.cc  */
 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1620 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1715 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 547: /* DirElemContent */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1627 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1722 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 548: /* CommonContent */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1634 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1729 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 549: /* DirCommentConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1641 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1736 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 550: /* DirPIConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1648 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1743 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 551: /* CDataSection */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1655 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1750 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 552: /* ComputedConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1662 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1757 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 553: /* CompDocConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1669 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1764 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 554: /* CompElemConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1676 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1771 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 555: /* CompAttrConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1683 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1778 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 556: /* CompTextConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1690 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1785 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 557: /* CompCommentConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1697 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1792 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 558: /* CompPIConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1704 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1799 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 559: /* CompNamespaceConstructor */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1711 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1806 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 560: /* TypeDeclaration */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1718 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1813 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 561: /* SequenceType */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1725 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1820 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 562: /* OccurrenceIndicator */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1732 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1827 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 563: /* ItemType */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1739 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1834 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 564: /* TypeList */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1746 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1841 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 565: /* GeneralizedAtomicType */
 /* Line 453 of lalr1.cc  */
 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1753 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1848 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 566: /* SimpleType */
 /* Line 453 of lalr1.cc  */
 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1760 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1855 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 567: /* KindTest */
 /* Line 453 of lalr1.cc  */
 #line 924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1767 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1862 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 568: /* AnyKindTest */
 /* Line 453 of lalr1.cc  */
 #line 920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1774 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1869 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 570: /* DocumentTest */
 /* Line 453 of lalr1.cc  */
 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1781 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1876 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 571: /* NamespaceTest */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1788 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1883 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 572: /* TextTest */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1795 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1890 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 573: /* CommentTest */
 /* Line 453 of lalr1.cc  */
 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1802 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1897 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 574: /* PITest */
 /* Line 453 of lalr1.cc  */
 #line 926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1809 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1904 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 575: /* AttributeTest */
 /* Line 453 of lalr1.cc  */
 #line 921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1816 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1911 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 576: /* SchemaAttributeTest */
 /* Line 453 of lalr1.cc  */
 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1823 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1918 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 577: /* ElementTest */
 /* Line 453 of lalr1.cc  */
 #line 922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1830 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 578: /* SchemaElementTest */
 /* Line 453 of lalr1.cc  */
 #line 927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1837 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 579: /* TypeName */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1844 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 580: /* TypeName_WITH_HOOK */
 /* Line 453 of lalr1.cc  */
 #line 928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1851 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1946 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 581: /* StringLiteral */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1858 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1953 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 583: /* AnyFunctionTest */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1865 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1960 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 584: /* TypedFunctionTest */
 /* Line 453 of lalr1.cc  */
 #line 931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1872 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1967 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 587: /* InsertExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1879 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1974 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 588: /* DeleteExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1886 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1981 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 589: /* ReplaceExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1893 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1988 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 590: /* RenameExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1900 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 1995 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 591: /* TransformExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1907 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2002 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 592: /* VarNameList */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1914 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2009 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 593: /* VarNameDecl */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2016 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 594: /* TryExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2023 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 595: /* CatchListExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1935 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2030 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 596: /* CatchExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2037 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 597: /* BracedExpr */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 1949 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2044 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 598: /* NameTestList */
 /* Line 453 of lalr1.cc  */
 #line 951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ delete ((*yyvaluep).name_test_list); };
 /* Line 453 of lalr1.cc  */
-#line 1956 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2051 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 599: /* FTSelection */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1963 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2058 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 602: /* FTOr */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1970 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2065 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 603: /* FTAnd */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1977 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2072 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 604: /* FTMildNot */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1984 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2079 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 605: /* FTUnaryNot */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1991 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2086 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 606: /* FTPrimaryWithOptions */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 1998 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2093 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 607: /* opt_FTMatchOptions */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2005 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2100 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 609: /* FTWeight */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2012 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2107 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 610: /* FTPrimary */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2019 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2114 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 611: /* opt_FTTimes */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2026 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2121 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 612: /* FTExtensionSelection */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2033 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2128 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 614: /* FTWords */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2040 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2135 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 615: /* FTWordsValue */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2047 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2142 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 617: /* FTAnyallOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2054 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2149 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 620: /* FTPosFilter */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2061 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2156 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 621: /* FTOrder */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2068 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2163 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 622: /* FTWindow */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2075 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 623: /* FTDistance */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2082 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2177 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 624: /* FTUnit */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2089 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 625: /* FTMatchOptions */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2096 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2191 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 626: /* FTMatchOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2103 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2198 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 627: /* FTCaseOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2110 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2205 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 628: /* FTDiacriticsOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2117 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2212 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 629: /* FTExtensionOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2124 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2219 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 630: /* FTStemOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2131 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2226 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 631: /* FTThesaurusOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2138 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2233 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 635: /* FTThesaurusID */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2145 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2240 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 638: /* FTStopWordOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2152 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2247 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 639: /* FTStopWords */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2159 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2254 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 643: /* FTStopWordsInclExcl */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2166 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2261 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 644: /* FTLanguageOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2173 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2268 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 645: /* FTWildCardOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2180 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2275 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 646: /* FTContent */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2187 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2282 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 647: /* FTTimes */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2194 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2289 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 648: /* FTRange */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2201 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2296 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 649: /* FTScope */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2208 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2303 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 650: /* FTBigUnit */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2215 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2310 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 651: /* FTIgnoreOption */
 /* Line 453 of lalr1.cc  */
 #line 939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2222 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2317 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 652: /* JSONArrayConstructor */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2229 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2324 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 653: /* JSONSimpleObjectUnion */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2236 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2331 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 654: /* JSONAccumulatorObjectUnion */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2243 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2338 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 655: /* JSONObjectConstructor */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2250 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2345 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 656: /* JSONPairList */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).node) ); };
 /* Line 453 of lalr1.cc  */
-#line 2257 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2352 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 657: /* JSONInsertExpr */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2264 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2359 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 658: /* JSONAppendExpr */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2271 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2366 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 659: /* JSONDeleteExpr */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2278 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2373 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 660: /* JSONRenameExpr */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2285 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2380 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 661: /* JSONReplaceExpr */
 /* Line 453 of lalr1.cc  */
 #line 942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2292 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2387 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 664: /* QNAME */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2299 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2394 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 665: /* FUNCTION_NAME */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2306 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2401 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
       case 666: /* EQNAME */
 /* Line 453 of lalr1.cc  */
 #line 948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( ((*yyvaluep).expr) ); };
 /* Line 453 of lalr1.cc  */
-#line 2313 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	break;
 
 	default:
@@ -2404,7 +2499,7 @@
     yylloc.begin.filename = yylloc.end.filename = &(driver.theFilename2);
 }
 /* Line 538 of lalr1.cc  */
-#line 2408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 2503 "/Users/zorba/Code/zorba/release/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
@@ -2522,7 +2617,7 @@
       {
 	  case 3:
 /* Line 661 of lalr1.cc  */
-#line 1052 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1149 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -2530,7 +2625,7 @@
 
   case 4:
 /* Line 661 of lalr1.cc  */
-#line 1056 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1153 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -2538,7 +2633,7 @@
 
   case 5:
 /* Line 661 of lalr1.cc  */
-#line 1060 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1157 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       }
@@ -2546,7 +2641,7 @@
 
   case 6:
 /* Line 661 of lalr1.cc  */
-#line 1068 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1165 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL;
       }
@@ -2554,7 +2649,7 @@
 
   case 7:
 /* Line 661 of lalr1.cc  */
-#line 1074 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1171 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
@@ -2562,7 +2657,7 @@
 
   case 8:
 /* Line 661 of lalr1.cc  */
-#line 1078 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1175 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
@@ -2570,7 +2665,7 @@
 
   case 9:
 /* Line 661 of lalr1.cc  */
-#line 1087 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -2579,7 +2674,7 @@
 
   case 10:
 /* Line 661 of lalr1.cc  */
-#line 1093 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1190 "/Users/zorba/Code/zorba/release/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)) );
@@ -2590,7 +2685,7 @@
 
   case 11:
 /* Line 661 of lalr1.cc  */
-#line 1101 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1198 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -2599,7 +2694,7 @@
 
   case 12:
 /* Line 661 of lalr1.cc  */
-#line 1107 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1204 "/Users/zorba/Code/zorba/release/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)) );
@@ -2610,7 +2705,7 @@
 
   case 13:
 /* Line 661 of lalr1.cc  */
-#line 1118 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1215 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), "utf-8", VersionDecl::jsoniq );
     }
@@ -2618,7 +2713,7 @@
 
   case 14:
 /* Line 661 of lalr1.cc  */
-#line 1123 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1220 "/Users/zorba/Code/zorba/release/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 );
     }
@@ -2626,7 +2721,7 @@
 
   case 15:
 /* Line 661 of lalr1.cc  */
-#line 1132 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1229 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (1)].node)), NULL);
 
@@ -2636,7 +2731,7 @@
 
   case 16:
 /* Line 661 of lalr1.cc  */
-#line 1139 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1236 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (1)].node)));
 
@@ -2646,7 +2741,7 @@
 
   case 17:
 /* Line 661 of lalr1.cc  */
-#line 1146 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1243 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (1)].node)),
@@ -2658,7 +2753,7 @@
 
   case 18:
 /* Line 661 of lalr1.cc  */
-#line 1155 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1252 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new MainModule( LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(1) - (1)].expr)), NULL );
     }
@@ -2666,7 +2761,7 @@
 
   case 19:
 /* Line 661 of lalr1.cc  */
-#line 1162 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1259 "/Users/zorba/Code/zorba/release/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();
@@ -2677,7 +2772,7 @@
 
   case 20:
 /* Line 661 of lalr1.cc  */
-#line 1170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1267 "/Users/zorba/Code/zorba/release/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();
@@ -2688,7 +2783,7 @@
 
   case 21:
 /* Line 661 of lalr1.cc  */
-#line 1178 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1275 "/Users/zorba/Code/zorba/release/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();
@@ -2699,7 +2794,7 @@
 
   case 22:
 /* Line 661 of lalr1.cc  */
-#line 1186 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1283 "/Users/zorba/Code/zorba/release/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();
@@ -2710,7 +2805,7 @@
 
   case 23:
 /* Line 661 of lalr1.cc  */
-#line 1197 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1294 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(1) - (1)].node)), NULL);
     }
@@ -2718,7 +2813,7 @@
 
   case 24:
 /* Line 661 of lalr1.cc  */
-#line 1202 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1299 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (2)].node)), NULL);
 
@@ -2728,7 +2823,7 @@
 
   case 25:
 /* Line 661 of lalr1.cc  */
-#line 1209 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1306 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (2)].node)));
 
@@ -2738,7 +2833,7 @@
 
   case 26:
 /* Line 661 of lalr1.cc  */
-#line 1216 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1313 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (2)].node)),
@@ -2750,7 +2845,7 @@
 
   case 27:
 /* Line 661 of lalr1.cc  */
-#line 1228 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1325 "/Users/zorba/Code/zorba/release/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)) );
@@ -2760,7 +2855,7 @@
 
   case 28:
 /* Line 661 of lalr1.cc  */
-#line 1238 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1335 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       SIND_DeclList *sdl = new SIND_DeclList( LOC((yyloc)) );
       sdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -2770,7 +2865,7 @@
 
   case 29:
 /* Line 661 of lalr1.cc  */
-#line 1245 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1342 "/Users/zorba/Code/zorba/release/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);
@@ -2779,7 +2874,7 @@
 
   case 30:
 /* Line 661 of lalr1.cc  */
-#line 1252 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1349 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
 
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
@@ -2791,7 +2886,7 @@
 
   case 44:
 /* Line 661 of lalr1.cc  */
-#line 1287 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1384 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::preserve_space);
     }
@@ -2799,7 +2894,7 @@
 
   case 45:
 /* Line 661 of lalr1.cc  */
-#line 1292 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1389 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::strip_space);
     }
@@ -2807,7 +2902,7 @@
 
   case 46:
 /* Line 661 of lalr1.cc  */
-#line 1300 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1397 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultCollationDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)) );
     }
@@ -2815,7 +2910,7 @@
 
   case 47:
 /* Line 661 of lalr1.cc  */
-#line 1308 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1405 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BaseURIDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
@@ -2823,7 +2918,7 @@
 
   case 48:
 /* Line 661 of lalr1.cc  */
-#line 1316 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1413 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_preserve);
     }
@@ -2831,7 +2926,7 @@
 
   case 49:
 /* Line 661 of lalr1.cc  */
-#line 1321 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1418 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_strip);
     }
@@ -2839,7 +2934,7 @@
 
   case 50:
 /* Line 661 of lalr1.cc  */
-#line 1329 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1426 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::ordered);
     }
@@ -2847,7 +2942,7 @@
 
   case 51:
 /* Line 661 of lalr1.cc  */
-#line 1334 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1431 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::unordered);
     }
@@ -2855,7 +2950,7 @@
 
   case 52:
 /* Line 661 of lalr1.cc  */
-#line 1342 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1439 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_greatest);
     }
@@ -2863,7 +2958,7 @@
 
   case 53:
 /* Line 661 of lalr1.cc  */
-#line 1347 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1444 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_least);
     }
@@ -2871,7 +2966,7 @@
 
   case 54:
 /* Line 661 of lalr1.cc  */
-#line 1355 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1452 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, true);
     }
@@ -2879,7 +2974,7 @@
 
   case 55:
 /* Line 661 of lalr1.cc  */
-#line 1360 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1457 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, false);
     }
@@ -2887,7 +2982,7 @@
 
   case 56:
 /* Line 661 of lalr1.cc  */
-#line 1365 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1462 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, true);
     }
@@ -2895,7 +2990,7 @@
 
   case 57:
 /* Line 661 of lalr1.cc  */
-#line 1370 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1467 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, false);
     }
@@ -2903,7 +2998,7 @@
 
   case 60:
 /* Line 661 of lalr1.cc  */
-#line 1383 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1480 "/Users/zorba/Code/zorba/release/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\"");
@@ -2913,7 +3008,7 @@
 
   case 61:
 /* Line 661 of lalr1.cc  */
-#line 1393 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1490 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport( LOC((yyloc)), NULL, SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL );
     }
@@ -2921,7 +3016,7 @@
 
   case 62:
 /* Line 661 of lalr1.cc  */
-#line 1398 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1495 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(4) - (3)].node)),
@@ -2932,7 +3027,7 @@
 
   case 63:
 /* Line 661 of lalr1.cc  */
-#line 1406 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1503 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             NULL,
@@ -2943,7 +3038,7 @@
 
   case 64:
 /* Line 661 of lalr1.cc  */
-#line 1414 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1511 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(6) - (3)].node)),
@@ -2954,7 +3049,7 @@
 
   case 65:
 /* Line 661 of lalr1.cc  */
-#line 1425 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1522 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       URILiteralList *ull = new URILiteralList( LOC((yyloc)));
       ull->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -2964,7 +3059,7 @@
 
   case 66:
 /* Line 661 of lalr1.cc  */
-#line 1432 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1529 "/Users/zorba/Code/zorba/release/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)) );
@@ -2975,7 +3070,7 @@
 
   case 67:
 /* Line 661 of lalr1.cc  */
-#line 1443 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1540 "/Users/zorba/Code/zorba/release/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)));
@@ -2984,7 +3079,7 @@
 
   case 68:
 /* Line 661 of lalr1.cc  */
-#line 1449 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1546 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), true );
     }
@@ -2992,7 +3087,7 @@
 
   case 69:
 /* Line 661 of lalr1.cc  */
-#line 1457 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1554 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL);
 
@@ -3002,7 +3097,7 @@
 
   case 70:
 /* Line 661 of lalr1.cc  */
-#line 1464 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1561 "/Users/zorba/Code/zorba/release/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);
@@ -3012,7 +3107,7 @@
 
   case 71:
 /* Line 661 of lalr1.cc  */
-#line 1471 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1568 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(5) - (3)].sval)),
@@ -3024,7 +3119,7 @@
 
   case 72:
 /* Line 661 of lalr1.cc  */
-#line 1480 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1577 "/Users/zorba/Code/zorba/release/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)),
@@ -3038,7 +3133,7 @@
 
   case 73:
 /* Line 661 of lalr1.cc  */
-#line 1494 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1591 "/Users/zorba/Code/zorba/release/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)) );
@@ -3047,7 +3142,7 @@
 
   case 74:
 /* Line 661 of lalr1.cc  */
-#line 1503 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1600 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_element_default,
@@ -3057,7 +3152,7 @@
 
   case 75:
 /* Line 661 of lalr1.cc  */
-#line 1510 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1607 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_function_default,
@@ -3067,7 +3162,7 @@
 
   case 76:
 /* Line 661 of lalr1.cc  */
-#line 1520 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1617 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       VFO_DeclList *vdl = new VFO_DeclList( LOC((yyloc)));
       vdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3077,7 +3172,7 @@
 
   case 77:
 /* Line 661 of lalr1.cc  */
-#line 1527 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1624 "/Users/zorba/Code/zorba/release/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);
@@ -3086,7 +3181,7 @@
 
   case 78:
 /* Line 661 of lalr1.cc  */
-#line 1534 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1631 "/Users/zorba/Code/zorba/release/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();
@@ -3097,7 +3192,7 @@
 
   case 87:
 /* Line 661 of lalr1.cc  */
-#line 1557 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1654 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
@@ -3106,7 +3201,7 @@
 
   case 88:
 /* Line 661 of lalr1.cc  */
-#line 1563 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1660 "/Users/zorba/Code/zorba/release/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);
@@ -3115,7 +3210,7 @@
 
   case 89:
 /* Line 661 of lalr1.cc  */
-#line 1572 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1669 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.vstrpair) = new vector<string_pair_t>();
       (yyval.vstrpair)->push_back( *(yysemantic_stack_[(1) - (1)].strpair) );
@@ -3125,7 +3220,7 @@
 
   case 90:
 /* Line 661 of lalr1.cc  */
-#line 1579 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1676 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yysemantic_stack_[(2) - (1)].vstrpair)->push_back( *(yysemantic_stack_[(2) - (2)].strpair) );
       delete (yysemantic_stack_[(2) - (2)].strpair);
@@ -3135,7 +3230,7 @@
 
   case 91:
 /* Line 661 of lalr1.cc  */
-#line 1589 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1686 "/Users/zorba/Code/zorba/release/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() );
@@ -3145,67 +3240,67 @@
 
   case 92:
 /* Line 661 of lalr1.cc  */
-#line 1598 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1695 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "decimal-separator"; }
     break;
 
   case 93:
 /* Line 661 of lalr1.cc  */
-#line 1599 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1696 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "digit"; }
     break;
 
   case 94:
 /* Line 661 of lalr1.cc  */
-#line 1600 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1697 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "grouping-separator"; }
     break;
 
   case 95:
 /* Line 661 of lalr1.cc  */
-#line 1601 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1698 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "infinity"; }
     break;
 
   case 96:
 /* Line 661 of lalr1.cc  */
-#line 1602 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1699 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "minus-sign"; }
     break;
 
   case 97:
 /* Line 661 of lalr1.cc  */
-#line 1603 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1700 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "NaN"; }
     break;
 
   case 98:
 /* Line 661 of lalr1.cc  */
-#line 1604 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1701 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "pattern-separator"; }
     break;
 
   case 99:
 /* Line 661 of lalr1.cc  */
-#line 1605 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1702 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "percent"; }
     break;
 
   case 100:
 /* Line 661 of lalr1.cc  */
-#line 1606 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1703 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "per-mille"; }
     break;
 
   case 101:
 /* Line 661 of lalr1.cc  */
-#line 1607 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1704 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "zero-digit"; }
     break;
 
   case 102:
 /* Line 661 of lalr1.cc  */
-#line 1613 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1710 "/Users/zorba/Code/zorba/release/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)));
 
@@ -3224,7 +3319,7 @@
 
   case 103:
 /* Line 661 of lalr1.cc  */
-#line 1632 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1729 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FTOptionDecl( LOC((yyloc)), dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (3)].node)) );
     }
@@ -3232,7 +3327,7 @@
 
   case 104:
 /* Line 661 of lalr1.cc  */
-#line 1640 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1737 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(4) - (4)].node);
     }
@@ -3240,7 +3335,7 @@
 
   case 105:
 /* Line 661 of lalr1.cc  */
-#line 1648 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1745 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(3) - (3)].node));
       d->theType = (yysemantic_stack_[(3) - (2)].node);
@@ -3250,7 +3345,7 @@
 
   case 106:
 /* Line 661 of lalr1.cc  */
-#line 1655 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1752 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -3258,7 +3353,7 @@
 
   case 107:
 /* Line 661 of lalr1.cc  */
-#line 1663 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1760 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(1) - (1)].node));
       d->theIsExternal = false;
@@ -3268,7 +3363,7 @@
 
   case 108:
 /* Line 661 of lalr1.cc  */
-#line 1670 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1767 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), NULL);
     }
@@ -3276,7 +3371,7 @@
 
   case 109:
 /* Line 661 of lalr1.cc  */
-#line 1675 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1772 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
     }
@@ -3284,7 +3379,7 @@
 
   case 110:
 /* Line 661 of lalr1.cc  */
-#line 1683 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1780 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
@@ -3292,7 +3387,7 @@
 
   case 111:
 /* Line 661 of lalr1.cc  */
-#line 1691 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1788 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(4) - (2)].varnametype)));
 
@@ -3309,7 +3404,7 @@
 
   case 112:
 /* Line 661 of lalr1.cc  */
-#line 1705 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1802 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(3) - (2)].varnametype)));
 
@@ -3326,7 +3421,7 @@
 
   case 113:
 /* Line 661 of lalr1.cc  */
-#line 1719 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1816 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(5) - (2)].varnametype)));
 
@@ -3343,7 +3438,7 @@
 
   case 114:
 /* Line 661 of lalr1.cc  */
-#line 1736 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1833 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL, NULL);
     }
@@ -3351,7 +3446,7 @@
 
   case 115:
 /* Line 661 of lalr1.cc  */
-#line 1741 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1838 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)),
@@ -3362,7 +3457,7 @@
 
   case 116:
 /* Line 661 of lalr1.cc  */
-#line 1749 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1846 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -3373,7 +3468,7 @@
 
   case 117:
 /* Line 661 of lalr1.cc  */
-#line 1757 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1854 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (4)].expr)),
@@ -3384,7 +3479,7 @@
 
   case 118:
 /* Line 661 of lalr1.cc  */
-#line 1768 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1865 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationListParsenode(LOC((yyloc)), static_cast<AnnotationParsenode*>((yysemantic_stack_[(1) - (1)].node)));
     }
@@ -3392,7 +3487,7 @@
 
   case 119:
 /* Line 661 of lalr1.cc  */
-#line 1773 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1870 "/Users/zorba/Code/zorba/release/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);
@@ -3401,7 +3496,7 @@
 
   case 120:
 /* Line 661 of lalr1.cc  */
-#line 1782 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1879 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))), NULL);
     }
@@ -3409,7 +3504,7 @@
 
   case 121:
 /* Line 661 of lalr1.cc  */
-#line 1787 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1884 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval))),
@@ -3419,7 +3514,7 @@
 
   case 122:
 /* Line 661 of lalr1.cc  */
-#line 1794 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), true), NULL);
     }
@@ -3427,7 +3522,7 @@
 
   case 123:
 /* Line 661 of lalr1.cc  */
-#line 1799 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1896 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval)), true),
@@ -3437,7 +3532,7 @@
 
   case 124:
 /* Line 661 of lalr1.cc  */
-#line 1809 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1906 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationLiteralListParsenode(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr));
     }
@@ -3445,7 +3540,7 @@
 
   case 125:
 /* Line 661 of lalr1.cc  */
-#line 1814 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1911 "/Users/zorba/Code/zorba/release/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);
@@ -3454,7 +3549,7 @@
 
   case 126:
 /* Line 661 of lalr1.cc  */
-#line 1823 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1920 "/Users/zorba/Code/zorba/release/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);
@@ -3463,7 +3558,7 @@
 
   case 127:
 /* Line 661 of lalr1.cc  */
-#line 1829 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       FunctionDecl* fdecl = static_cast<FunctionDecl*>((yysemantic_stack_[(3) - (3)].node));
 
@@ -3476,7 +3571,7 @@
 
   case 130:
 /* Line 661 of lalr1.cc  */
-#line 1848 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* body = (yysemantic_stack_[(4) - (4)].expr);
       if (body == NULL)
@@ -3495,7 +3590,7 @@
 
   case 131:
 /* Line 661 of lalr1.cc  */
-#line 1863 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1960 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -3510,7 +3605,7 @@
 
   case 132:
 /* Line 661 of lalr1.cc  */
-#line 1878 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1975 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* body = (yysemantic_stack_[(5) - (5)].expr);
       if (body == NULL)
@@ -3529,7 +3624,7 @@
 
   case 133:
 /* Line 661 of lalr1.cc  */
-#line 1894 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 1991 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -3544,7 +3639,7 @@
 
   case 134:
 /* Line 661 of lalr1.cc  */
-#line 1909 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2006 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL);
     }
@@ -3552,7 +3647,7 @@
 
   case 135:
 /* Line 661 of lalr1.cc  */
-#line 1914 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2011 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (2)].node)));
     }
@@ -3560,7 +3655,7 @@
 
   case 136:
 /* Line 661 of lalr1.cc  */
-#line 1919 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2016 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL, dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node)));
     }
@@ -3568,7 +3663,7 @@
 
   case 137:
 /* Line 661 of lalr1.cc  */
-#line 1924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2021 "/Users/zorba/Code/zorba/release/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)));
     }
@@ -3576,7 +3671,7 @@
 
   case 138:
 /* Line 661 of lalr1.cc  */
-#line 1932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2029 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       ParamList *pl = new ParamList( LOC((yyloc)) );
       pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -3586,7 +3681,7 @@
 
   case 139:
 /* Line 661 of lalr1.cc  */
-#line 1939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2036 "/Users/zorba/Code/zorba/release/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)) );
@@ -3597,7 +3692,7 @@
 
   case 140:
 /* Line 661 of lalr1.cc  */
-#line 1950 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2047 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL);
     }
@@ -3605,7 +3700,7 @@
 
   case 141:
 /* Line 661 of lalr1.cc  */
-#line 1955 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2052 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)),
                      static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -3615,7 +3710,7 @@
 
   case 142:
 /* Line 661 of lalr1.cc  */
-#line 1965 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2062 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)),
@@ -3628,7 +3723,7 @@
 
   case 143:
 /* Line 661 of lalr1.cc  */
-#line 1974 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2071 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -3641,7 +3736,7 @@
 
   case 144:
 /* Line 661 of lalr1.cc  */
-#line 1983 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2080 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -3654,7 +3749,7 @@
 
   case 145:
 /* Line 661 of lalr1.cc  */
-#line 1992 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2089 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)),
@@ -3667,7 +3762,7 @@
 
   case 146:
 /* Line 661 of lalr1.cc  */
-#line 2004 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2101 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
@@ -3675,7 +3770,7 @@
 
   case 147:
 /* Line 661 of lalr1.cc  */
-#line 2008 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2105 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -3685,7 +3780,7 @@
 
   case 148:
 /* Line 661 of lalr1.cc  */
-#line 2014 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2111 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
@@ -3693,7 +3788,7 @@
 
   case 149:
 /* Line 661 of lalr1.cc  */
-#line 2018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2115 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -3704,7 +3799,7 @@
 
   case 150:
 /* Line 661 of lalr1.cc  */
-#line 2028 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2125 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(8) - (3)].expr)),
@@ -3718,7 +3813,7 @@
 
   case 151:
 /* Line 661 of lalr1.cc  */
-#line 2038 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2135 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(9) - (4)].expr)),
@@ -3732,7 +3827,7 @@
 
   case 152:
 /* Line 661 of lalr1.cc  */
-#line 2051 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2148 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       IndexKeyList* keyList = new IndexKeyList(LOC((yyloc)));
       keyList->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -3742,7 +3837,7 @@
 
   case 153:
 /* Line 661 of lalr1.cc  */
-#line 2057 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2154 "/Users/zorba/Code/zorba/release/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);
@@ -3751,7 +3846,7 @@
 
   case 154:
 /* Line 661 of lalr1.cc  */
-#line 2066 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2163 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL, NULL);
     }
@@ -3759,7 +3854,7 @@
 
   case 155:
 /* Line 661 of lalr1.cc  */
-#line 2071 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2168 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -3770,7 +3865,7 @@
 
   case 156:
 /* Line 661 of lalr1.cc  */
-#line 2078 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2175 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -3781,7 +3876,7 @@
 
   case 157:
 /* Line 661 of lalr1.cc  */
-#line 2085 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2182 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(3) - (1)].expr),
@@ -3792,7 +3887,7 @@
 
   case 158:
 /* Line 661 of lalr1.cc  */
-#line 2097 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2194 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollSimpleCheck(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(11) - (4)].expr)),
@@ -3804,7 +3899,7 @@
 
   case 159:
 /* Line 661 of lalr1.cc  */
-#line 2107 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2204 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollUniqueKeyCheck(LOC((yyloc)),
                                     static_cast<QName*>((yysemantic_stack_[(14) - (4)].expr)),
@@ -3816,7 +3911,7 @@
 
   case 160:
 /* Line 661 of lalr1.cc  */
-#line 2117 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2214 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollForeachNode(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(13) - (4)].expr)),
@@ -3828,7 +3923,7 @@
 
   case 161:
 /* Line 661 of lalr1.cc  */
-#line 2128 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2225 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICForeignKey( LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(22) - (4)].expr)),
@@ -3843,7 +3938,7 @@
 
   case 162:
 /* Line 661 of lalr1.cc  */
-#line 2144 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2241 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       if ((yysemantic_stack_[(1) - (1)].expr) == NULL)
       {
@@ -3863,7 +3958,7 @@
 
   case 163:
 /* Line 661 of lalr1.cc  */
-#line 2164 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2261 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -3871,7 +3966,7 @@
 
   case 164:
 /* Line 661 of lalr1.cc  */
-#line 2168 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2265 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -3879,7 +3974,7 @@
 
   case 165:
 /* Line 661 of lalr1.cc  */
-#line 2172 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2269 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = NULL;
     }
@@ -3887,7 +3982,7 @@
 
   case 166:
 /* Line 661 of lalr1.cc  */
-#line 2180 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2277 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -3895,7 +3990,7 @@
 
   case 167:
 /* Line 661 of lalr1.cc  */
-#line 2184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2281 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -3903,7 +3998,7 @@
 
   case 168:
 /* Line 661 of lalr1.cc  */
-#line 2188 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2285 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = NULL;
     }
@@ -3911,7 +4006,7 @@
 
   case 169:
 /* Line 661 of lalr1.cc  */
-#line 2196 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2293 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -3919,7 +4014,7 @@
 
   case 170:
 /* Line 661 of lalr1.cc  */
-#line 2201 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2298 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -3931,7 +4026,7 @@
 
   case 171:
 /* Line 661 of lalr1.cc  */
-#line 2213 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2310 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = new BlockBody(LOC((yyloc)));
       blk->add((yysemantic_stack_[(1) - (1)].expr));
@@ -3941,7 +4036,7 @@
 
   case 172:
 /* Line 661 of lalr1.cc  */
-#line 2220 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2317 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -3953,7 +4048,7 @@
 
   case 173:
 /* Line 661 of lalr1.cc  */
-#line 2230 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2327 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(4) - (1)].expr);
       (yyval.expr) = (yysemantic_stack_[(4) - (2)].expr);
@@ -3968,7 +4063,7 @@
 
   case 187:
 /* Line 661 of lalr1.cc  */
-#line 2263 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2360 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -3976,7 +4071,7 @@
 
   case 188:
 /* Line 661 of lalr1.cc  */
-#line 2271 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2368 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* block = dynamic_cast<BlockBody*>((yysemantic_stack_[(3) - (2)].expr));
 
@@ -4008,7 +4103,7 @@
 
   case 189:
 /* Line 661 of lalr1.cc  */
-#line 2303 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2400 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -4016,7 +4111,7 @@
 
   case 190:
 /* Line 661 of lalr1.cc  */
-#line 2311 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(2) - (1)].expr);
     }
@@ -4024,7 +4119,7 @@
 
   case 191:
 /* Line 661 of lalr1.cc  */
-#line 2319 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2416 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = static_cast<VarDeclStmt*>((yysemantic_stack_[(3) - (1)].expr));
       vdecl->add((yysemantic_stack_[(3) - (3)].node));
@@ -4034,7 +4129,7 @@
 
   case 192:
 /* Line 661 of lalr1.cc  */
-#line 2326 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2423 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)), NULL);
       vdecl->add((yysemantic_stack_[(2) - (2)].node));
@@ -4044,7 +4139,7 @@
 
   case 193:
 /* Line 661 of lalr1.cc  */
-#line 2333 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2430 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)),
                                            static_cast<AnnotationListParsenode*>((yysemantic_stack_[(3) - (1)].node)));
@@ -4055,7 +4150,7 @@
 
   case 194:
 /* Line 661 of lalr1.cc  */
-#line 2344 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2441 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)),
@@ -4068,7 +4163,7 @@
 
   case 195:
 /* Line 661 of lalr1.cc  */
-#line 2353 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2450 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4081,7 +4176,7 @@
 
   case 196:
 /* Line 661 of lalr1.cc  */
-#line 2362 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2459 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4094,7 +4189,7 @@
 
   case 197:
 /* Line 661 of lalr1.cc  */
-#line 2371 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2468 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4107,7 +4202,7 @@
 
   case 198:
 /* Line 661 of lalr1.cc  */
-#line 2384 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2481 "/Users/zorba/Code/zorba/release/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));
     }
@@ -4115,7 +4210,7 @@
 
   case 199:
 /* Line 661 of lalr1.cc  */
-#line 2392 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2489 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ApplyExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr));
     }
@@ -4123,7 +4218,7 @@
 
   case 200:
 /* Line 661 of lalr1.cc  */
-#line 2400 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2497 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ExitExpr(LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr));
     }
@@ -4131,7 +4226,7 @@
 
   case 201:
 /* Line 661 of lalr1.cc  */
-#line 2408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2505 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* bb = dynamic_cast<BlockBody *>((yysemantic_stack_[(5) - (5)].expr));
       if (bb == NULL)
@@ -4146,7 +4241,7 @@
 
   case 202:
 /* Line 661 of lalr1.cc  */
-#line 2423 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2520 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement(LOC((yyloc)), FlowCtlStatement::BREAK);
     }
@@ -4154,7 +4249,7 @@
 
   case 203:
 /* Line 661 of lalr1.cc  */
-#line 2428 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2525 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement( LOC((yyloc)), FlowCtlStatement::CONTINUE );
     }
@@ -4162,7 +4257,7 @@
 
   case 204:
 /* Line 661 of lalr1.cc  */
-#line 2436 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2533 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       ReturnExpr* re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4176,7 +4271,7 @@
 
   case 205:
 /* Line 661 of lalr1.cc  */
-#line 2450 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2547 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* retExpr = (yysemantic_stack_[(2) - (2)].expr);
 
@@ -4193,7 +4288,7 @@
 
   case 206:
 /* Line 661 of lalr1.cc  */
-#line 2467 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2564 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* thenExpr = (yysemantic_stack_[(8) - (6)].expr);
       exprnode* elseExpr = (yysemantic_stack_[(8) - (8)].expr);
@@ -4218,7 +4313,7 @@
 
   case 207:
 /* Line 661 of lalr1.cc  */
-#line 2492 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2589 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new TryExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), (yysemantic_stack_[(3) - (3)].expr));
     }
@@ -4226,7 +4321,7 @@
 
   case 208:
 /* Line 661 of lalr1.cc  */
-#line 2500 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2597 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       CatchListExpr* cle = new CatchListExpr( LOC((yyloc)) );
       cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -4236,7 +4331,7 @@
 
   case 209:
 /* Line 661 of lalr1.cc  */
-#line 2507 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2604 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
       if ( cle )
@@ -4247,7 +4342,7 @@
 
   case 210:
 /* Line 661 of lalr1.cc  */
-#line 2518 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2615 "/Users/zorba/Code/zorba/release/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);
@@ -4256,7 +4351,7 @@
 
   case 211:
 /* Line 661 of lalr1.cc  */
-#line 2527 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2624 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new BlockBody(LOC((yyloc)));
     }
@@ -4264,7 +4359,7 @@
 
   case 212:
 /* Line 661 of lalr1.cc  */
-#line 2535 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2632 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4272,7 +4367,7 @@
 
   case 213:
 /* Line 661 of lalr1.cc  */
-#line 2540 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2637 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       Expr* expr = dynamic_cast<Expr*>((yysemantic_stack_[(3) - (1)].expr));
       if ( !expr )
@@ -4287,7 +4382,7 @@
 
   case 214:
 /* Line 661 of lalr1.cc  */
-#line 2553 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2650 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (1)].expr);
       (yyval.expr) = (yysemantic_stack_[(3) - (3)].expr);
@@ -4304,7 +4399,7 @@
 
   case 233:
 /* Line 661 of lalr1.cc  */
-#line 2600 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2697 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       ReturnExpr *re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4318,7 +4413,7 @@
 
   case 234:
 /* Line 661 of lalr1.cc  */
-#line 2614 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2711 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ReturnExpr( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr) );
     }
@@ -4326,14 +4421,14 @@
 
   case 236:
 /* Line 661 of lalr1.cc  */
-#line 2626 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2723 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
     }
     break;
 
   case 237:
 /* Line 661 of lalr1.cc  */
-#line 2633 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2730 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_sliding;
     }
@@ -4341,7 +4436,7 @@
 
   case 238:
 /* Line 661 of lalr1.cc  */
-#line 2638 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2735 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_tumbling;
     }
@@ -4349,7 +4444,7 @@
 
   case 239:
 /* Line 661 of lalr1.cc  */
-#line 2646 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2743 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_start;
     }
@@ -4357,7 +4452,7 @@
 
   case 240:
 /* Line 661 of lalr1.cc  */
-#line 2651 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2748 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_end;
     }
@@ -4365,7 +4460,7 @@
 
   case 241:
 /* Line 661 of lalr1.cc  */
-#line 2656 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2753 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
     (yyval.strval) = parser::the_only_end;
   }
@@ -4373,7 +4468,7 @@
 
   case 242:
 /* Line 661 of lalr1.cc  */
-#line 2664 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2761 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             dynamic_cast<WindowVars*>((yysemantic_stack_[(4) - (2)].node)),
@@ -4385,7 +4480,7 @@
 
   case 243:
 /* Line 661 of lalr1.cc  */
-#line 2673 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2770 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             NULL,
@@ -4397,7 +4492,7 @@
 
   case 244:
 /* Line 661 of lalr1.cc  */
-#line 2685 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2782 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(5) - (2)].strval) == parser::the_tumbling ?
@@ -4411,7 +4506,7 @@
 
   case 245:
 /* Line 661 of lalr1.cc  */
-#line 2695 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2792 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(4) - (2)].strval) == parser::the_tumbling ?
@@ -4424,7 +4519,7 @@
 
   case 246:
 /* Line 661 of lalr1.cc  */
-#line 2708 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2805 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CountClause(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -4432,7 +4527,7 @@
 
   case 255:
 /* Line 661 of lalr1.cc  */
-#line 2732 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2829 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       FLWORClauseList *fcl = new FLWORClauseList( LOC((yyloc)) );
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -4442,7 +4537,7 @@
 
   case 256:
 /* Line 661 of lalr1.cc  */
-#line 2739 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2836 "/Users/zorba/Code/zorba/release/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)) );
@@ -4452,7 +4547,7 @@
 
   case 257:
 /* Line 661 of lalr1.cc  */
-#line 2749 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2846 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ForClause(LOC((yyloc)), dynamic_cast<VarInDeclList*>((yysemantic_stack_[(3) - (3)].node)));
     }
@@ -4460,7 +4555,7 @@
 
   case 258:
 /* Line 661 of lalr1.cc  */
-#line 2754 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2851 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected qualified name \""
@@ -4472,7 +4567,7 @@
 
   case 259:
 /* Line 661 of lalr1.cc  */
-#line 2763 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2860 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected qualified name \""
@@ -4484,7 +4579,7 @@
 
   case 260:
 /* Line 661 of lalr1.cc  */
-#line 2772 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2869 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = NULL;
       error((yylocation_stack_[(2) - (2)]), "");
@@ -4494,7 +4589,7 @@
 
   case 262:
 /* Line 661 of lalr1.cc  */
-#line 2786 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2883 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
 
     }
@@ -4502,7 +4597,7 @@
 
   case 263:
 /* Line 661 of lalr1.cc  */
-#line 2794 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       VarInDeclList* vdl = new VarInDeclList( LOC((yyloc)) );
       vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -4512,7 +4607,7 @@
 
   case 264:
 /* Line 661 of lalr1.cc  */
-#line 2801 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2898 "/Users/zorba/Code/zorba/release/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)) );
@@ -4522,7 +4617,7 @@
 
   case 265:
 /* Line 661 of lalr1.cc  */
-#line 2809 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2906 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
       error((yylocation_stack_[(3) - (3)]), "syntax error, unexpected QName \""
@@ -4534,7 +4629,7 @@
 
   case 266:
 /* Line 661 of lalr1.cc  */
-#line 2821 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2918 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)),
@@ -4548,7 +4643,7 @@
 
   case 267:
 /* Line 661 of lalr1.cc  */
-#line 2831 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -4562,7 +4657,7 @@
 
   case 268:
 /* Line 661 of lalr1.cc  */
-#line 2841 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2938 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -4576,7 +4671,7 @@
 
   case 269:
 /* Line 661 of lalr1.cc  */
-#line 2851 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -4590,7 +4685,7 @@
 
   case 270:
 /* Line 661 of lalr1.cc  */
-#line 2861 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2958 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -4604,7 +4699,7 @@
 
   case 271:
 /* Line 661 of lalr1.cc  */
-#line 2871 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2968 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -4618,7 +4713,7 @@
 
   case 272:
 /* Line 661 of lalr1.cc  */
-#line 2881 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2978 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -4632,7 +4727,7 @@
 
   case 273:
 /* Line 661 of lalr1.cc  */
-#line 2891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2988 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(7) - (1)].expr)),
@@ -4646,7 +4741,7 @@
 
   case 274:
 /* Line 661 of lalr1.cc  */
-#line 2902 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 2999 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -4659,7 +4754,7 @@
 
   case 275:
 /* Line 661 of lalr1.cc  */
-#line 2911 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3008 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -4673,7 +4768,7 @@
 
   case 276:
 /* Line 661 of lalr1.cc  */
-#line 2921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -4687,7 +4782,7 @@
 
   case 277:
 /* Line 661 of lalr1.cc  */
-#line 2931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3028 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -4701,7 +4796,7 @@
 
   case 278:
 /* Line 661 of lalr1.cc  */
-#line 2947 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3044 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new PositionalVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -4709,7 +4804,7 @@
 
   case 279:
 /* Line 661 of lalr1.cc  */
-#line 2956 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3053 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FTScoreVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -4717,7 +4812,7 @@
 
   case 280:
 /* Line 661 of lalr1.cc  */
-#line 2965 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3062 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new LetClause( LOC((yyloc)), dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(2) - (2)].node)) );
         }
@@ -4725,7 +4820,7 @@
 
   case 281:
 /* Line 661 of lalr1.cc  */
-#line 2973 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3070 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             VarGetsDeclList *vgdl = new VarGetsDeclList( LOC((yyloc)) );
             vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -4735,7 +4830,7 @@
 
   case 282:
 /* Line 661 of lalr1.cc  */
-#line 2979 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3076 "/Users/zorba/Code/zorba/release/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)) );
@@ -4745,7 +4840,7 @@
 
   case 283:
 /* Line 661 of lalr1.cc  */
-#line 2991 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3088 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4757,7 +4852,7 @@
 
   case 284:
 /* Line 661 of lalr1.cc  */
-#line 2999 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3096 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4769,7 +4864,7 @@
 
   case 285:
 /* Line 661 of lalr1.cc  */
-#line 3009 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3106 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            dynamic_cast<FTScoreVar*>((yysemantic_stack_[(3) - (1)].node))->get_var_name(),
@@ -4781,7 +4876,7 @@
 
   case 286:
 /* Line 661 of lalr1.cc  */
-#line 3017 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3114 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -4793,7 +4888,7 @@
 
   case 287:
 /* Line 661 of lalr1.cc  */
-#line 3029 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3126 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4803,7 +4898,7 @@
 
   case 288:
 /* Line 661 of lalr1.cc  */
-#line 3035 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3132 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4814,7 +4909,7 @@
 
   case 290:
 /* Line 661 of lalr1.cc  */
-#line 3048 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3145 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL);
     }
@@ -4822,7 +4917,7 @@
 
   case 291:
 /* Line 661 of lalr1.cc  */
-#line 3052 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3149 "/Users/zorba/Code/zorba/release/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)));
@@ -4831,7 +4926,7 @@
 
   case 292:
 /* Line 661 of lalr1.cc  */
-#line 3060 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3157 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), dynamic_cast<PositionalVar*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL, NULL);
     }
@@ -4839,7 +4934,7 @@
 
   case 293:
 /* Line 661 of lalr1.cc  */
-#line 3064 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3161 "/Users/zorba/Code/zorba/release/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)));
@@ -4848,7 +4943,7 @@
 
   case 295:
 /* Line 661 of lalr1.cc  */
-#line 3073 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3170 "/Users/zorba/Code/zorba/release/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)));
     }
@@ -4856,7 +4951,7 @@
 
   case 296:
 /* Line 661 of lalr1.cc  */
-#line 3077 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3174 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -4864,7 +4959,7 @@
 
   case 297:
 /* Line 661 of lalr1.cc  */
-#line 3081 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3178 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL);
     }
@@ -4872,7 +4967,7 @@
 
   case 298:
 /* Line 661 of lalr1.cc  */
-#line 3091 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3188 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WhereClause(LOC ((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
@@ -4880,7 +4975,7 @@
 
   case 299:
 /* Line 661 of lalr1.cc  */
-#line 3099 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3196 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupByClause(LOC((yyloc)), dynamic_cast<GroupSpecList*>((yysemantic_stack_[(3) - (3)].node)));
     }
@@ -4888,7 +4983,7 @@
 
   case 300:
 /* Line 661 of lalr1.cc  */
-#line 3106 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3203 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       GroupSpecList* gsl = new GroupSpecList(LOC((yyloc)));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -4898,7 +4993,7 @@
 
   case 301:
 /* Line 661 of lalr1.cc  */
-#line 3112 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3209 "/Users/zorba/Code/zorba/release/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)));
@@ -4908,7 +5003,7 @@
 
   case 302:
 /* Line 661 of lalr1.cc  */
-#line 3122 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3219 "/Users/zorba/Code/zorba/release/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);
     }
@@ -4916,7 +5011,7 @@
 
   case 303:
 /* Line 661 of lalr1.cc  */
-#line 3126 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3223 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4928,7 +5023,7 @@
 
   case 304:
 /* Line 661 of lalr1.cc  */
-#line 3134 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3231 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -4940,7 +5035,7 @@
 
   case 305:
 /* Line 661 of lalr1.cc  */
-#line 3142 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3239 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4952,7 +5047,7 @@
 
   case 306:
 /* Line 661 of lalr1.cc  */
-#line 3150 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3247 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       VarRef* varRef = dynamic_cast<VarRef*>((yysemantic_stack_[(1) - (1)].expr));
       if (varRef != NULL)
@@ -4964,7 +5059,7 @@
 
   case 307:
 /* Line 661 of lalr1.cc  */
-#line 3158 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3255 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       VarRef* varRef = dynamic_cast<VarRef*>((yysemantic_stack_[(2) - (1)].expr));
       if (varRef != NULL)
@@ -4976,7 +5071,7 @@
 
   case 308:
 /* Line 661 of lalr1.cc  */
-#line 3170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3267 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
@@ -4984,7 +5079,7 @@
 
   case 309:
 /* Line 661 of lalr1.cc  */
-#line 3178 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3275 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (3)].node))
@@ -4994,7 +5089,7 @@
 
   case 310:
 /* Line 661 of lalr1.cc  */
-#line 3184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3281 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(4) - (4)].node)), true
@@ -5004,7 +5099,7 @@
 
   case 311:
 /* Line 661 of lalr1.cc  */
-#line 3194 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3291 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             OrderSpecList *osl = new OrderSpecList( LOC((yyloc)) );
             osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5014,7 +5109,7 @@
 
   case 312:
 /* Line 661 of lalr1.cc  */
-#line 3200 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3297 "/Users/zorba/Code/zorba/release/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)) );
@@ -5024,7 +5119,7 @@
 
   case 313:
 /* Line 661 of lalr1.cc  */
-#line 3210 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3307 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderSpec( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL );
         }
@@ -5032,7 +5127,7 @@
 
   case 314:
 /* Line 661 of lalr1.cc  */
-#line 3214 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3311 "/Users/zorba/Code/zorba/release/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))
@@ -5042,7 +5137,7 @@
 
   case 315:
 /* Line 661 of lalr1.cc  */
-#line 3224 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3321 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL
@@ -5052,7 +5147,7 @@
 
   case 316:
 /* Line 661 of lalr1.cc  */
-#line 3230 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3327 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -5062,7 +5157,7 @@
 
   case 317:
 /* Line 661 of lalr1.cc  */
-#line 3236 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3333 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, NULL, dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(1) - (1)].node))
@@ -5072,7 +5167,7 @@
 
   case 318:
 /* Line 661 of lalr1.cc  */
-#line 3242 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3339 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5085,7 +5180,7 @@
 
   case 319:
 /* Line 661 of lalr1.cc  */
-#line 3251 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3348 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5098,7 +5193,7 @@
 
   case 320:
 /* Line 661 of lalr1.cc  */
-#line 3260 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3357 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5111,7 +5206,7 @@
 
   case 321:
 /* Line 661 of lalr1.cc  */
-#line 3269 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3366 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5124,7 +5219,7 @@
 
   case 322:
 /* Line 661 of lalr1.cc  */
-#line 3282 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3379 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_ascending );
         }
@@ -5132,7 +5227,7 @@
 
   case 323:
 /* Line 661 of lalr1.cc  */
-#line 3286 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3383 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_descending );
         }
@@ -5140,7 +5235,7 @@
 
   case 324:
 /* Line 661 of lalr1.cc  */
-#line 3294 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3391 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_greatest
@@ -5150,7 +5245,7 @@
 
   case 325:
 /* Line 661 of lalr1.cc  */
-#line 3300 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3397 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_least
@@ -5160,7 +5255,7 @@
 
   case 326:
 /* Line 661 of lalr1.cc  */
-#line 3310 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3407 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
@@ -5168,7 +5263,7 @@
 
   case 327:
 /* Line 661 of lalr1.cc  */
-#line 3318 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3415 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5181,7 +5276,7 @@
 
   case 328:
 /* Line 661 of lalr1.cc  */
-#line 3327 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3424 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5194,7 +5289,7 @@
 
   case 329:
 /* Line 661 of lalr1.cc  */
-#line 3340 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3437 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       QVarInDeclList *qvidl = new QVarInDeclList( LOC((yyloc)) );
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5205,7 +5300,7 @@
 
   case 330:
 /* Line 661 of lalr1.cc  */
-#line 3347 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3444 "/Users/zorba/Code/zorba/release/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)) );
@@ -5215,7 +5310,7 @@
 
   case 331:
 /* Line 661 of lalr1.cc  */
-#line 3359 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3456 "/Users/zorba/Code/zorba/release/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));
     }
@@ -5223,7 +5318,7 @@
 
   case 332:
 /* Line 661 of lalr1.cc  */
-#line 3363 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3460 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5234,7 +5329,7 @@
 
   case 333:
 /* Line 661 of lalr1.cc  */
-#line 3375 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3472 "/Users/zorba/Code/zorba/release/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));
     }
@@ -5242,7 +5337,7 @@
 
   case 334:
 /* Line 661 of lalr1.cc  */
-#line 3382 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3479 "/Users/zorba/Code/zorba/release/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)));
@@ -5252,7 +5347,7 @@
 
   case 335:
 /* Line 661 of lalr1.cc  */
-#line 3388 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3485 "/Users/zorba/Code/zorba/release/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)));
@@ -5262,7 +5357,7 @@
 
   case 336:
 /* Line 661 of lalr1.cc  */
-#line 3397 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3494 "/Users/zorba/Code/zorba/release/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));
     }
@@ -5270,7 +5365,7 @@
 
   case 337:
 /* Line 661 of lalr1.cc  */
-#line 3404 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3501 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       SwitchCaseOperandList* sco_list_p = new SwitchCaseOperandList(LOC((yyloc)));
       sco_list_p->push_back((yysemantic_stack_[(2) - (2)].expr));
@@ -5280,7 +5375,7 @@
 
   case 338:
 /* Line 661 of lalr1.cc  */
-#line 3410 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3507 "/Users/zorba/Code/zorba/release/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));
@@ -5290,7 +5385,7 @@
 
   case 339:
 /* Line 661 of lalr1.cc  */
-#line 3421 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3518 "/Users/zorba/Code/zorba/release/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));
     }
@@ -5298,7 +5393,7 @@
 
   case 340:
 /* Line 661 of lalr1.cc  */
-#line 3428 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3525 "/Users/zorba/Code/zorba/release/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)));
@@ -5308,7 +5403,7 @@
 
   case 341:
 /* Line 661 of lalr1.cc  */
-#line 3434 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3531 "/Users/zorba/Code/zorba/release/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)));
@@ -5318,7 +5413,7 @@
 
   case 342:
 /* Line 661 of lalr1.cc  */
-#line 3443 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3540 "/Users/zorba/Code/zorba/release/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));
     }
@@ -5326,7 +5421,7 @@
 
   case 343:
 /* Line 661 of lalr1.cc  */
-#line 3452 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3549 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
                               (yysemantic_stack_[(8) - (3)].expr),
@@ -5337,7 +5432,7 @@
 
   case 344:
 /* Line 661 of lalr1.cc  */
-#line 3459 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3556 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
                               (yysemantic_stack_[(10) - (3)].expr),
@@ -5349,7 +5444,7 @@
 
   case 345:
 /* Line 661 of lalr1.cc  */
-#line 3470 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3567 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
                               (yysemantic_stack_[(8) - (3)].expr),
@@ -5360,7 +5455,7 @@
 
   case 346:
 /* Line 661 of lalr1.cc  */
-#line 3477 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3574 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
                               (yysemantic_stack_[(10) - (3)].expr),
@@ -5372,7 +5467,7 @@
 
   case 347:
 /* Line 661 of lalr1.cc  */
-#line 3489 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3586 "/Users/zorba/Code/zorba/release/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)));
@@ -5382,7 +5477,7 @@
 
   case 348:
 /* Line 661 of lalr1.cc  */
-#line 3495 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3592 "/Users/zorba/Code/zorba/release/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)));
@@ -5392,7 +5487,7 @@
 
   case 349:
 /* Line 661 of lalr1.cc  */
-#line 3507 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3604 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
@@ -5402,7 +5497,7 @@
 
   case 350:
 /* Line 661 of lalr1.cc  */
-#line 3513 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3610 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
@@ -5413,7 +5508,7 @@
 
   case 351:
 /* Line 661 of lalr1.cc  */
-#line 3524 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3621 "/Users/zorba/Code/zorba/release/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)));
@@ -5423,7 +5518,7 @@
 
   case 352:
 /* Line 661 of lalr1.cc  */
-#line 3530 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3627 "/Users/zorba/Code/zorba/release/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)));
@@ -5433,7 +5528,7 @@
 
   case 353:
 /* Line 661 of lalr1.cc  */
-#line 3541 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3638 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
@@ -5443,7 +5538,7 @@
 
   case 354:
 /* Line 661 of lalr1.cc  */
-#line 3547 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3644 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
@@ -5454,7 +5549,7 @@
 
   case 355:
 /* Line 661 of lalr1.cc  */
-#line 3558 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3655 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       SequenceTypeList* seqList = new SequenceTypeList(LOC((yyloc)));
       seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5464,7 +5559,7 @@
 
   case 356:
 /* Line 661 of lalr1.cc  */
-#line 3564 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3661 "/Users/zorba/Code/zorba/release/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)));
@@ -5474,7 +5569,7 @@
 
   case 357:
 /* Line 661 of lalr1.cc  */
-#line 3575 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3672 "/Users/zorba/Code/zorba/release/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));
     }
@@ -5482,7 +5577,7 @@
 
   case 358:
 /* Line 661 of lalr1.cc  */
-#line 3584 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3681 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -5490,7 +5585,7 @@
 
   case 359:
 /* Line 661 of lalr1.cc  */
-#line 3588 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3685 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new OrExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
     }
@@ -5498,7 +5593,7 @@
 
   case 360:
 /* Line 661 of lalr1.cc  */
-#line 3602 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3699 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5506,7 +5601,7 @@
 
   case 361:
 /* Line 661 of lalr1.cc  */
-#line 3612 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3709 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AndExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -5514,7 +5609,7 @@
 
   case 362:
 /* Line 661 of lalr1.cc  */
-#line 3622 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3719 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5522,7 +5617,7 @@
 
   case 363:
 /* Line 661 of lalr1.cc  */
-#line 3626 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3723 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new ComparisonExpr(
               LOC((yyloc)),
@@ -5535,7 +5630,7 @@
 
   case 364:
 /* Line 661 of lalr1.cc  */
-#line 3641 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3738 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5543,7 +5638,7 @@
 
   case 365:
 /* Line 661 of lalr1.cc  */
-#line 3645 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3742 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
 
             (yyval.expr) = new ComparisonExpr(
@@ -5557,7 +5652,7 @@
 
   case 366:
 /* Line 661 of lalr1.cc  */
-#line 3655 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3752 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
 
             (yyval.expr) = new ComparisonExpr(
@@ -5568,7 +5663,7 @@
 
   case 367:
 /* Line 661 of lalr1.cc  */
-#line 3662 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3759 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -5581,7 +5676,7 @@
 
   case 368:
 /* Line 661 of lalr1.cc  */
-#line 3671 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3768 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -5594,7 +5689,7 @@
 
   case 369:
 /* Line 661 of lalr1.cc  */
-#line 3680 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3777 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
 
 
@@ -5607,7 +5702,7 @@
 
   case 370:
 /* Line 661 of lalr1.cc  */
-#line 3689 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3786 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -5620,7 +5715,7 @@
 
   case 371:
 /* Line 661 of lalr1.cc  */
-#line 3698 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3795 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -5633,7 +5728,7 @@
 
   case 372:
 /* Line 661 of lalr1.cc  */
-#line 3707 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3804 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -5646,7 +5741,7 @@
 
   case 373:
 /* Line 661 of lalr1.cc  */
-#line 3716 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3813 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -5659,7 +5754,7 @@
 
   case 374:
 /* Line 661 of lalr1.cc  */
-#line 3729 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3826 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5667,7 +5762,7 @@
 
   case 375:
 /* Line 661 of lalr1.cc  */
-#line 3733 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3830 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new FTContainsExpr(
                 LOC((yyloc)),
@@ -5680,7 +5775,7 @@
 
   case 376:
 /* Line 661 of lalr1.cc  */
-#line 3745 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3842 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5688,7 +5783,7 @@
 
   case 377:
 /* Line 661 of lalr1.cc  */
-#line 3749 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3846 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new StringConcatExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
         }
@@ -5696,7 +5791,7 @@
 
   case 378:
 /* Line 661 of lalr1.cc  */
-#line 3756 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3853 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -5704,7 +5799,7 @@
 
   case 379:
 /* Line 661 of lalr1.cc  */
-#line 3760 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3857 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -5712,7 +5807,7 @@
 
   case 380:
 /* Line 661 of lalr1.cc  */
-#line 3767 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3864 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5720,7 +5815,7 @@
 
   case 381:
 /* Line 661 of lalr1.cc  */
-#line 3771 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3868 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new RangeExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -5728,7 +5823,7 @@
 
   case 382:
 /* Line 661 of lalr1.cc  */
-#line 3780 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3877 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5736,7 +5831,7 @@
 
   case 383:
 /* Line 661 of lalr1.cc  */
-#line 3784 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3881 "/Users/zorba/Code/zorba/release/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) );
         }
@@ -5744,7 +5839,7 @@
 
   case 384:
 /* Line 661 of lalr1.cc  */
-#line 3788 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3885 "/Users/zorba/Code/zorba/release/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) );
         }
@@ -5752,7 +5847,7 @@
 
   case 385:
 /* Line 661 of lalr1.cc  */
-#line 3796 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3893 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5760,7 +5855,7 @@
 
   case 386:
 /* Line 661 of lalr1.cc  */
-#line 3800 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3897 "/Users/zorba/Code/zorba/release/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)
@@ -5770,7 +5865,7 @@
 
   case 387:
 /* Line 661 of lalr1.cc  */
-#line 3806 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3903 "/Users/zorba/Code/zorba/release/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)
@@ -5780,7 +5875,7 @@
 
   case 388:
 /* Line 661 of lalr1.cc  */
-#line 3812 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3909 "/Users/zorba/Code/zorba/release/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)
@@ -5790,7 +5885,7 @@
 
   case 389:
 /* Line 661 of lalr1.cc  */
-#line 3818 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3915 "/Users/zorba/Code/zorba/release/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)
@@ -5800,7 +5895,7 @@
 
   case 390:
 /* Line 661 of lalr1.cc  */
-#line 3828 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5808,7 +5903,7 @@
 
   case 391:
 /* Line 661 of lalr1.cc  */
-#line 3832 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -5816,7 +5911,7 @@
 
   case 392:
 /* Line 661 of lalr1.cc  */
-#line 3836 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3933 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -5824,7 +5919,7 @@
 
   case 393:
 /* Line 661 of lalr1.cc  */
-#line 3844 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3941 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5832,7 +5927,7 @@
 
   case 394:
 /* Line 661 of lalr1.cc  */
-#line 3848 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3945 "/Users/zorba/Code/zorba/release/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)
@@ -5842,7 +5937,7 @@
 
   case 395:
 /* Line 661 of lalr1.cc  */
-#line 3854 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3951 "/Users/zorba/Code/zorba/release/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)
@@ -5852,7 +5947,7 @@
 
   case 396:
 /* Line 661 of lalr1.cc  */
-#line 3864 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3961 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5860,7 +5955,7 @@
 
   case 397:
 /* Line 661 of lalr1.cc  */
-#line 3868 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3965 "/Users/zorba/Code/zorba/release/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))
@@ -5870,7 +5965,7 @@
 
   case 398:
 /* Line 661 of lalr1.cc  */
-#line 3878 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3975 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5878,7 +5973,7 @@
 
   case 399:
 /* Line 661 of lalr1.cc  */
-#line 3882 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3979 "/Users/zorba/Code/zorba/release/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))
@@ -5888,7 +5983,7 @@
 
   case 400:
 /* Line 661 of lalr1.cc  */
-#line 3892 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3989 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5896,7 +5991,7 @@
 
   case 401:
 /* Line 661 of lalr1.cc  */
-#line 3896 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 3993 "/Users/zorba/Code/zorba/release/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))
@@ -5906,7 +6001,7 @@
 
   case 402:
 /* Line 661 of lalr1.cc  */
-#line 3906 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4003 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5914,7 +6009,7 @@
 
   case 403:
 /* Line 661 of lalr1.cc  */
-#line 3910 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4007 "/Users/zorba/Code/zorba/release/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))
@@ -5924,7 +6019,7 @@
 
   case 404:
 /* Line 661 of lalr1.cc  */
-#line 3920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4017 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(1) - (1)].node)), false);
     }
@@ -5932,7 +6027,7 @@
 
   case 405:
 /* Line 661 of lalr1.cc  */
-#line 3924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4021 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(2) - (1)].node)), true);
     }
@@ -5940,7 +6035,7 @@
 
   case 406:
 /* Line 661 of lalr1.cc  */
-#line 3933 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4030 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -5948,7 +6043,7 @@
 
   case 407:
 /* Line 661 of lalr1.cc  */
-#line 3937 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4034 "/Users/zorba/Code/zorba/release/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) );
         }
@@ -5956,7 +6051,7 @@
 
   case 408:
 /* Line 661 of lalr1.cc  */
-#line 3945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4042 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SignList( LOC((yyloc)), true );
         }
@@ -5964,7 +6059,7 @@
 
   case 409:
 /* Line 661 of lalr1.cc  */
-#line 3949 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4046 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SignList( LOC((yyloc)), false );
         }
@@ -5972,7 +6067,7 @@
 
   case 410:
 /* Line 661 of lalr1.cc  */
-#line 3953 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4050 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
@@ -5980,7 +6075,7 @@
 
   case 411:
 /* Line 661 of lalr1.cc  */
-#line 3957 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4054 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             if ( SignList *sl = dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)) )
                 sl->negate();
@@ -5990,7 +6085,7 @@
 
   case 415:
 /* Line 661 of lalr1.cc  */
-#line 3973 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4070 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
       }
@@ -5998,7 +6093,7 @@
 
   case 416:
 /* Line 661 of lalr1.cc  */
-#line 3978 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4075 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.expr) = new SimpleMapExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
       }
@@ -6006,7 +6101,7 @@
 
   case 417:
 /* Line 661 of lalr1.cc  */
-#line 3986 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4083 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_eq );
         }
@@ -6014,7 +6109,7 @@
 
   case 418:
 /* Line 661 of lalr1.cc  */
-#line 3990 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4087 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ne );
         }
@@ -6022,7 +6117,7 @@
 
   case 419:
 /* Line 661 of lalr1.cc  */
-#line 3994 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4091 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_lt );
         }
@@ -6030,7 +6125,7 @@
 
   case 420:
 /* Line 661 of lalr1.cc  */
-#line 3998 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4095 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_le );
         }
@@ -6038,7 +6133,7 @@
 
   case 421:
 /* Line 661 of lalr1.cc  */
-#line 4002 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4099 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_gt );
         }
@@ -6046,7 +6141,7 @@
 
   case 422:
 /* Line 661 of lalr1.cc  */
-#line 4006 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4103 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ge );
         }
@@ -6054,7 +6149,7 @@
 
   case 423:
 /* Line 661 of lalr1.cc  */
-#line 4014 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4111 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_is );
         }
@@ -6062,7 +6157,7 @@
 
   case 424:
 /* Line 661 of lalr1.cc  */
-#line 4018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4115 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_precedes );
         }
@@ -6070,7 +6165,7 @@
 
   case 425:
 /* Line 661 of lalr1.cc  */
-#line 4022 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4119 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_follows );
         }
@@ -6078,7 +6173,7 @@
 
   case 426:
 /* Line 661 of lalr1.cc  */
-#line 4030 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4127 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(4) - (3)].expr) );
         }
@@ -6086,7 +6181,7 @@
 
   case 427:
 /* Line 661 of lalr1.cc  */
-#line 4034 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4131 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "lax", (yysemantic_stack_[(5) - (4)].expr) );
         }
@@ -6094,7 +6189,7 @@
 
   case 428:
 /* Line 661 of lalr1.cc  */
-#line 4038 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4135 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(5) - (4)].expr) );
         }
@@ -6102,7 +6197,7 @@
 
   case 429:
 /* Line 661 of lalr1.cc  */
-#line 4042 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4139 "/Users/zorba/Code/zorba/release/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)
@@ -6113,7 +6208,7 @@
 
   case 430:
 /* Line 661 of lalr1.cc  */
-#line 4053 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4150 "/Users/zorba/Code/zorba/release/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)
@@ -6123,7 +6218,7 @@
 
   case 431:
 /* Line 661 of lalr1.cc  */
-#line 4063 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4160 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             PragmaList *pl = new PragmaList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -6133,7 +6228,7 @@
 
   case 432:
 /* Line 661 of lalr1.cc  */
-#line 4069 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4166 "/Users/zorba/Code/zorba/release/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)) );
@@ -6143,7 +6238,7 @@
 
   case 433:
 /* Line 661 of lalr1.cc  */
-#line 4079 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4176 "/Users/zorba/Code/zorba/release/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)) );
         }
@@ -6151,7 +6246,7 @@
 
   case 434:
 /* Line 661 of lalr1.cc  */
-#line 4083 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4180 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) ), "" );
         }
@@ -6159,7 +6254,7 @@
 
   case 435:
 /* Line 661 of lalr1.cc  */
-#line 4087 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), true ), "" );
         }
@@ -6167,7 +6262,7 @@
 
   case 436:
 /* Line 661 of lalr1.cc  */
-#line 4093 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4190 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new PathExpr(LOC((yyloc)), ParseConstants::path_leading_lone_slash, NULL);
     }
@@ -6175,7 +6270,7 @@
 
   case 437:
 /* Line 661 of lalr1.cc  */
-#line 4097 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4194 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       RelativePathExpr* rpe;
 
@@ -6189,7 +6284,7 @@
 
   case 438:
 /* Line 661 of lalr1.cc  */
-#line 4107 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4204 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       RelativePathExpr* rpe;
 
@@ -6203,7 +6298,7 @@
 
   case 439:
 /* Line 661 of lalr1.cc  */
-#line 4117 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4214 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = NULL;
 
@@ -6254,7 +6349,7 @@
 
   case 440:
 /* Line 661 of lalr1.cc  */
-#line 4170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4267 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = NULL;
     }
@@ -6262,7 +6357,7 @@
 
   case 441:
 /* Line 661 of lalr1.cc  */
-#line 4179 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4276 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       AxisStep* as = dynamic_cast<AxisStep*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (as ?
@@ -6276,7 +6371,7 @@
 
   case 442:
 /* Line 661 of lalr1.cc  */
-#line 4189 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4286 "/Users/zorba/Code/zorba/release/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);
     }
@@ -6284,7 +6379,7 @@
 
   case 443:
 /* Line 661 of lalr1.cc  */
-#line 4193 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4290 "/Users/zorba/Code/zorba/release/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);
     }
@@ -6292,7 +6387,7 @@
 
   case 446:
 /* Line 661 of lalr1.cc  */
-#line 4209 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4306 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ForwardStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -6302,7 +6397,7 @@
 
   case 447:
 /* Line 661 of lalr1.cc  */
-#line 4215 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4312 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -6314,7 +6409,7 @@
 
   case 448:
 /* Line 661 of lalr1.cc  */
-#line 4223 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4320 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ReverseStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -6324,7 +6419,7 @@
 
   case 449:
 /* Line 661 of lalr1.cc  */
-#line 4229 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4326 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -6336,7 +6431,7 @@
 
   case 450:
 /* Line 661 of lalr1.cc  */
-#line 4242 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4339 "/Users/zorba/Code/zorba/release/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)
@@ -6346,7 +6441,7 @@
 
   case 451:
 /* Line 661 of lalr1.cc  */
-#line 4248 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4345 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardStep(
                 LOC((yyloc)), dynamic_cast<AbbrevForwardStep*>((yysemantic_stack_[(1) - (1)].node))
@@ -6356,7 +6451,7 @@
 
   case 452:
 /* Line 661 of lalr1.cc  */
-#line 4259 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4356 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_child );
         }
@@ -6364,7 +6459,7 @@
 
   case 453:
 /* Line 661 of lalr1.cc  */
-#line 4263 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4360 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_descendant);
         }
@@ -6372,7 +6467,7 @@
 
   case 454:
 /* Line 661 of lalr1.cc  */
-#line 4267 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4364 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_attribute );
         }
@@ -6380,7 +6475,7 @@
 
   case 455:
 /* Line 661 of lalr1.cc  */
-#line 4271 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4368 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_self );
         }
@@ -6388,7 +6483,7 @@
 
   case 456:
 /* Line 661 of lalr1.cc  */
-#line 4275 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4372 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_descendant_or_self
@@ -6398,7 +6493,7 @@
 
   case 457:
 /* Line 661 of lalr1.cc  */
-#line 4281 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4378 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_following_sibling
@@ -6408,7 +6503,7 @@
 
   case 458:
 /* Line 661 of lalr1.cc  */
-#line 4287 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4384 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_following );
         }
@@ -6416,7 +6511,7 @@
 
   case 459:
 /* Line 661 of lalr1.cc  */
-#line 4296 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4393 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), false );
         }
@@ -6424,7 +6519,7 @@
 
   case 460:
 /* Line 661 of lalr1.cc  */
-#line 4300 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4397 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].node), true );
         }
@@ -6432,7 +6527,7 @@
 
   case 461:
 /* Line 661 of lalr1.cc  */
-#line 4309 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4406 "/Users/zorba/Code/zorba/release/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) );
         }
@@ -6440,7 +6535,7 @@
 
   case 462:
 /* Line 661 of lalr1.cc  */
-#line 4313 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4410 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             ReverseAxis *ra = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_parent
@@ -6451,7 +6546,7 @@
 
   case 463:
 /* Line 661 of lalr1.cc  */
-#line 4325 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4422 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_parent );
         }
@@ -6459,7 +6554,7 @@
 
   case 464:
 /* Line 661 of lalr1.cc  */
-#line 4329 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4426 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_ancestor );
         }
@@ -6467,7 +6562,7 @@
 
   case 465:
 /* Line 661 of lalr1.cc  */
-#line 4333 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4430 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_preceding_sibling
@@ -6477,7 +6572,7 @@
 
   case 466:
 /* Line 661 of lalr1.cc  */
-#line 4339 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4436 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_preceding );
         }
@@ -6485,7 +6580,7 @@
 
   case 467:
 /* Line 661 of lalr1.cc  */
-#line 4343 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4440 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_ancestor_or_self
@@ -6495,7 +6590,7 @@
 
   case 470:
 /* Line 661 of lalr1.cc  */
-#line 4365 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4462 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
@@ -6503,7 +6598,7 @@
 
   case 471:
 /* Line 661 of lalr1.cc  */
-#line 4369 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4466 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), dynamic_cast<Wildcard*>((yysemantic_stack_[(1) - (1)].node)) );
         }
@@ -6511,7 +6606,7 @@
 
   case 472:
 /* Line 661 of lalr1.cc  */
-#line 4379 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4476 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", "", ParseConstants::wild_all, false);
     }
@@ -6519,7 +6614,7 @@
 
   case 473:
 /* Line 661 of lalr1.cc  */
-#line 4383 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4480 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, false);
     }
@@ -6527,7 +6622,7 @@
 
   case 474:
 /* Line 661 of lalr1.cc  */
-#line 4387 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4484 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, true);
     }
@@ -6535,7 +6630,7 @@
 
   case 475:
 /* Line 661 of lalr1.cc  */
-#line 4391 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4488 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", SYMTAB((yysemantic_stack_[(1) - (1)].sval)), ParseConstants::wild_prefix, false);
     }
@@ -6543,7 +6638,7 @@
 
   case 476:
 /* Line 661 of lalr1.cc  */
-#line 4404 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4501 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
      }
@@ -6551,7 +6646,7 @@
 
   case 477:
 /* Line 661 of lalr1.cc  */
-#line 4408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4505 "/Users/zorba/Code/zorba/release/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)));
      }
@@ -6559,7 +6654,7 @@
 
   case 478:
 /* Line 661 of lalr1.cc  */
-#line 4412 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4509 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), false);
      }
@@ -6567,7 +6662,7 @@
 
   case 479:
 /* Line 661 of lalr1.cc  */
-#line 4416 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4513 "/Users/zorba/Code/zorba/release/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);
      }
@@ -6575,7 +6670,7 @@
 
   case 480:
 /* Line 661 of lalr1.cc  */
-#line 4422 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4519 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new JSONArrayUnboxing(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr));
     }
@@ -6583,7 +6678,7 @@
 
   case 481:
 /* Line 661 of lalr1.cc  */
-#line 4426 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4523 "/Users/zorba/Code/zorba/release/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)));
@@ -6593,7 +6688,7 @@
 
   case 482:
 /* Line 661 of lalr1.cc  */
-#line 4432 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4529 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), LOC((yylocation_stack_[(4) - (2)])),
                                  (yysemantic_stack_[(4) - (1)].expr),
@@ -6603,7 +6698,7 @@
 
   case 483:
 /* Line 661 of lalr1.cc  */
-#line 4438 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4535 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new JSONObjectLookup(LOC((yyloc)), LOC((yylocation_stack_[(5) - (2)])),
                                  (yysemantic_stack_[(5) - (1)].expr),
@@ -6613,7 +6708,7 @@
 
   case 484:
 /* Line 661 of lalr1.cc  */
-#line 4444 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4541 "/Users/zorba/Code/zorba/release/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));
      }
@@ -6621,7 +6716,7 @@
 
   case 485:
 /* Line 661 of lalr1.cc  */
-#line 4448 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4545 "/Users/zorba/Code/zorba/release/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));
      }
@@ -6629,7 +6724,7 @@
 
   case 486:
 /* Line 661 of lalr1.cc  */
-#line 4457 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4554 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       PredicateList* pl = new PredicateList( LOC((yyloc)) );
       pl->push_back(dynamic_cast<exprnode*>((yysemantic_stack_[(1) - (1)].expr)));
@@ -6639,7 +6734,7 @@
 
   case 487:
 /* Line 661 of lalr1.cc  */
-#line 4463 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4560 "/Users/zorba/Code/zorba/release/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)));
@@ -6650,7 +6745,7 @@
 
   case 488:
 /* Line 661 of lalr1.cc  */
-#line 4474 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4571 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -6658,7 +6753,7 @@
 
   case 503:
 /* Line 661 of lalr1.cc  */
-#line 4502 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4599 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6666,7 +6761,7 @@
 
   case 504:
 /* Line 661 of lalr1.cc  */
-#line 4506 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4603 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6674,7 +6769,7 @@
 
   case 505:
 /* Line 661 of lalr1.cc  */
-#line 4514 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4611 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_decimal, *(yysemantic_stack_[(1) - (1)].decval)
@@ -6685,7 +6780,7 @@
 
   case 506:
 /* Line 661 of lalr1.cc  */
-#line 4521 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4618 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_integer, *(yysemantic_stack_[(1) - (1)].ival)
@@ -6696,7 +6791,7 @@
 
   case 507:
 /* Line 661 of lalr1.cc  */
-#line 4528 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4625 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_double, *(yysemantic_stack_[(1) - (1)].dval)
@@ -6707,7 +6802,7 @@
 
   case 508:
 /* Line 661 of lalr1.cc  */
-#line 4539 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4636 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new VarRef(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)));
         }
@@ -6715,7 +6810,7 @@
 
   case 509:
 /* Line 661 of lalr1.cc  */
-#line 4547 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4644 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), NULL);
         }
@@ -6723,7 +6818,7 @@
 
   case 510:
 /* Line 661 of lalr1.cc  */
-#line 4551 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4648 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
@@ -6731,7 +6826,7 @@
 
   case 511:
 /* Line 661 of lalr1.cc  */
-#line 4559 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4656 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
 
             driver.addCommonLanguageWarning((yylocation_stack_[(1) - (1)]), ZED(ZWST0009_CONTEXT_ITEM_EXPR));
@@ -6741,7 +6836,7 @@
 
   case 512:
 /* Line 661 of lalr1.cc  */
-#line 4570 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4667 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new OrderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
@@ -6749,7 +6844,7 @@
 
   case 513:
 /* Line 661 of lalr1.cc  */
-#line 4578 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4675 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new UnorderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
@@ -6757,7 +6852,7 @@
 
   case 514:
 /* Line 661 of lalr1.cc  */
-#line 4584 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4681 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FunctionCall(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), NULL);
     }
@@ -6765,7 +6860,7 @@
 
   case 515:
 /* Line 661 of lalr1.cc  */
-#line 4588 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4685 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList* argList = dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node));
 
@@ -6787,7 +6882,7 @@
 
   case 516:
 /* Line 661 of lalr1.cc  */
-#line 4610 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4707 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList* al = new ArgList(LOC((yyloc)));
       al->push_back(new ArgumentPlaceholder(LOC((yyloc))));
@@ -6797,7 +6892,7 @@
 
   case 517:
 /* Line 661 of lalr1.cc  */
-#line 4616 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4713 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       if (ArgList* al = dynamic_cast<ArgList*>((yysemantic_stack_[(3) - (1)].node)))
         al->push_back(new ArgumentPlaceholder(LOC((yyloc))));
@@ -6807,7 +6902,7 @@
 
   case 518:
 /* Line 661 of lalr1.cc  */
-#line 4622 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4719 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList *al = new ArgList( LOC((yyloc)) );
       al->push_back( (yysemantic_stack_[(1) - (1)].expr) );
@@ -6817,7 +6912,7 @@
 
   case 519:
 /* Line 661 of lalr1.cc  */
-#line 4628 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4725 "/Users/zorba/Code/zorba/release/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) );
@@ -6827,7 +6922,7 @@
 
   case 520:
 /* Line 661 of lalr1.cc  */
-#line 4638 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4735 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -6835,7 +6930,7 @@
 
   case 521:
 /* Line 661 of lalr1.cc  */
-#line 4642 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4739 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -6843,7 +6938,7 @@
 
   case 522:
 /* Line 661 of lalr1.cc  */
-#line 4650 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4747 "/Users/zorba/Code/zorba/release/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));
     }
@@ -6851,7 +6946,7 @@
 
   case 523:
 /* Line 661 of lalr1.cc  */
-#line 4658 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4755 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new InlineFunction(LOC((yyloc)),
                               &*(yysemantic_stack_[(3) - (2)].fnsig)->theParams,
@@ -6863,7 +6958,7 @@
 
   case 529:
 /* Line 661 of lalr1.cc  */
-#line 4683 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4780 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -6875,7 +6970,7 @@
 
   case 530:
 /* Line 661 of lalr1.cc  */
-#line 4691 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4788 "/Users/zorba/Code/zorba/release/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())
       {
@@ -6896,7 +6991,7 @@
 
   case 531:
 /* Line 661 of lalr1.cc  */
-#line 4708 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4805 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -6908,7 +7003,7 @@
 
   case 532:
 /* Line 661 of lalr1.cc  */
-#line 4716 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4813 "/Users/zorba/Code/zorba/release/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())
       {
@@ -6929,7 +7024,7 @@
 
   case 533:
 /* Line 661 of lalr1.cc  */
-#line 4735 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4832 "/Users/zorba/Code/zorba/release/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())
       {
@@ -6950,7 +7045,7 @@
 
   case 534:
 /* Line 661 of lalr1.cc  */
-#line 4754 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4851 "/Users/zorba/Code/zorba/release/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())
       {
@@ -6971,7 +7066,7 @@
 
   case 535:
 /* Line 661 of lalr1.cc  */
-#line 4776 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4873 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       DirElemContentList *decl = new DirElemContentList( LOC((yyloc)) );
       decl->push_back( dynamic_cast<DirElemContent*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -6981,7 +7076,7 @@
 
   case 536:
 /* Line 661 of lalr1.cc  */
-#line 4782 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4879 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       DirElemContentList *decl = dynamic_cast<DirElemContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( decl )
@@ -6992,7 +7087,7 @@
 
   case 537:
 /* Line 661 of lalr1.cc  */
-#line 4793 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4890 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       DirAttributeList *dal = new DirAttributeList( LOC((yyloc)) );
       dal->push_back( dynamic_cast<DirAttr*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7002,7 +7097,7 @@
 
   case 538:
 /* Line 661 of lalr1.cc  */
-#line 4799 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4896 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       DirAttributeList *dal = dynamic_cast<DirAttributeList*>((yysemantic_stack_[(2) - (1)].node));
       if ( dal )
@@ -7013,7 +7108,7 @@
 
   case 539:
 /* Line 661 of lalr1.cc  */
-#line 4810 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4907 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttr(LOC((yyloc)),
                        static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -7023,7 +7118,7 @@
 
   case 542:
 /* Line 661 of lalr1.cc  */
-#line 4825 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttributeValue(LOC((yyloc)),
                                  dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
@@ -7032,7 +7127,7 @@
 
   case 543:
 /* Line 661 of lalr1.cc  */
-#line 4830 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttributeValue( LOC((yyloc)),
                                   dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
@@ -7041,7 +7136,7 @@
 
   case 544:
 /* Line 661 of lalr1.cc  */
-#line 4839 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4936 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrContentList( LOC((yyloc)) );
     }
@@ -7049,7 +7144,7 @@
 
   case 545:
 /* Line 661 of lalr1.cc  */
-#line 4843 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4940 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7057,7 +7152,7 @@
 
   case 546:
 /* Line 661 of lalr1.cc  */
-#line 4850 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4947 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
@@ -7067,7 +7162,7 @@
 
   case 547:
 /* Line 661 of lalr1.cc  */
-#line 4856 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4953 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7077,7 +7172,7 @@
 
   case 548:
 /* Line 661 of lalr1.cc  */
-#line 4862 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4959 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList* qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -7088,7 +7183,7 @@
 
   case 549:
 /* Line 661 of lalr1.cc  */
-#line 4869 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4966 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -7099,7 +7194,7 @@
 
   case 550:
 /* Line 661 of lalr1.cc  */
-#line 4880 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4977 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrContentList( LOC((yyloc)) );
     }
@@ -7107,7 +7202,7 @@
 
   case 551:
 /* Line 661 of lalr1.cc  */
-#line 4884 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4981 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7115,7 +7210,7 @@
 
   case 552:
 /* Line 661 of lalr1.cc  */
-#line 4891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4988 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( new AposAttrValueContent( LOC((yyloc)),"'") );
@@ -7125,7 +7220,7 @@
 
   case 553:
 /* Line 661 of lalr1.cc  */
-#line 4897 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 4994 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( dynamic_cast<AposAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7135,7 +7230,7 @@
 
   case 554:
 /* Line 661 of lalr1.cc  */
-#line 4903 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5000 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if (aacl)
@@ -7146,7 +7241,7 @@
 
   case 555:
 /* Line 661 of lalr1.cc  */
-#line 4910 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5007 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( aacl )
@@ -7157,7 +7252,7 @@
 
   case 556:
 /* Line 661 of lalr1.cc  */
-#line 4921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
@@ -7165,7 +7260,7 @@
 
   case 557:
 /* Line 661 of lalr1.cc  */
-#line 4925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5022 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
@@ -7173,7 +7268,7 @@
 
   case 558:
 /* Line 661 of lalr1.cc  */
-#line 4933 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5030 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
@@ -7181,7 +7276,7 @@
 
   case 559:
 /* Line 661 of lalr1.cc  */
-#line 4937 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5034 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
@@ -7189,7 +7284,7 @@
 
   case 560:
 /* Line 661 of lalr1.cc  */
-#line 4945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5042 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr) );
     }
@@ -7197,7 +7292,7 @@
 
   case 561:
 /* Line 661 of lalr1.cc  */
-#line 4949 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5046 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
@@ -7205,7 +7300,7 @@
 
   case 562:
 /* Line 661 of lalr1.cc  */
-#line 4953 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5050 "/Users/zorba/Code/zorba/release/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 );
@@ -7214,7 +7309,7 @@
 
   case 563:
 /* Line 661 of lalr1.cc  */
-#line 4958 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5055 "/Users/zorba/Code/zorba/release/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 );
@@ -7223,7 +7318,7 @@
 
   case 564:
 /* Line 661 of lalr1.cc  */
-#line 4967 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5064 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_charref, SYMTAB((yysemantic_stack_[(1) - (1)].sval)));
     }
@@ -7231,7 +7326,7 @@
 
   case 565:
 /* Line 661 of lalr1.cc  */
-#line 4971 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5068 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_lbrace);
     }
@@ -7239,7 +7334,7 @@
 
   case 566:
 /* Line 661 of lalr1.cc  */
-#line 4975 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5072 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_rbrace);
     }
@@ -7247,7 +7342,7 @@
 
   case 567:
 /* Line 661 of lalr1.cc  */
-#line 4979 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5076 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), new EnclosedExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr)));
     }
@@ -7255,7 +7350,7 @@
 
   case 568:
 /* Line 661 of lalr1.cc  */
-#line 4987 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5084 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
@@ -7263,7 +7358,7 @@
 
   case 569:
 /* Line 661 of lalr1.cc  */
-#line 4992 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5089 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), "" );
     }
@@ -7271,7 +7366,7 @@
 
   case 570:
 /* Line 661 of lalr1.cc  */
-#line 5000 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5097 "/Users/zorba/Code/zorba/release/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)) );
@@ -7280,7 +7375,7 @@
 
   case 571:
 /* Line 661 of lalr1.cc  */
-#line 5006 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5103 "/Users/zorba/Code/zorba/release/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)) );
@@ -7289,7 +7384,7 @@
 
   case 572:
 /* Line 661 of lalr1.cc  */
-#line 5015 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5112 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CDataSection( LOC((yyloc)),SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
@@ -7297,7 +7392,7 @@
 
   case 573:
 /* Line 661 of lalr1.cc  */
-#line 5023 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5120 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7305,7 +7400,7 @@
 
   case 574:
 /* Line 661 of lalr1.cc  */
-#line 5028 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5125 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7313,7 +7408,7 @@
 
   case 575:
 /* Line 661 of lalr1.cc  */
-#line 5033 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5130 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7321,7 +7416,7 @@
 
   case 576:
 /* Line 661 of lalr1.cc  */
-#line 5038 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5135 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7329,7 +7424,7 @@
 
   case 577:
 /* Line 661 of lalr1.cc  */
-#line 5043 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5140 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7337,7 +7432,7 @@
 
   case 578:
 /* Line 661 of lalr1.cc  */
-#line 5048 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5145 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7345,7 +7440,7 @@
 
   case 580:
 /* Line 661 of lalr1.cc  */
-#line 5059 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5156 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
     }
@@ -7353,7 +7448,7 @@
 
   case 581:
 /* Line 661 of lalr1.cc  */
-#line 5067 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5164 "/Users/zorba/Code/zorba/release/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));
     }
@@ -7361,7 +7456,7 @@
 
   case 582:
 /* Line 661 of lalr1.cc  */
-#line 5071 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5168 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
     }
@@ -7369,7 +7464,7 @@
 
   case 583:
 /* Line 661 of lalr1.cc  */
-#line 5077 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5174 "/Users/zorba/Code/zorba/release/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) );
     }
@@ -7377,7 +7472,7 @@
 
   case 584:
 /* Line 661 of lalr1.cc  */
-#line 5081 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5178 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
     }
@@ -7385,7 +7480,7 @@
 
   case 585:
 /* Line 661 of lalr1.cc  */
-#line 5089 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5186 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
     }
@@ -7393,7 +7488,7 @@
 
   case 586:
 /* Line 661 of lalr1.cc  */
-#line 5097 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5194 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
     }
@@ -7401,7 +7496,7 @@
 
   case 587:
 /* Line 661 of lalr1.cc  */
-#line 5105 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5202 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompPIConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
     }
@@ -7409,7 +7504,7 @@
 
   case 588:
 /* Line 661 of lalr1.cc  */
-#line 5109 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5206 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompPIConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
     }
@@ -7417,7 +7512,7 @@
 
   case 589:
 /* Line 661 of lalr1.cc  */
-#line 5117 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5214 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
     }
@@ -7425,7 +7520,7 @@
 
   case 590:
 /* Line 661 of lalr1.cc  */
-#line 5121 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5218 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
     }
@@ -7433,7 +7528,7 @@
 
   case 591:
 /* Line 661 of lalr1.cc  */
-#line 5129 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5226 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
     }
@@ -7441,7 +7536,7 @@
 
   case 592:
 /* Line 661 of lalr1.cc  */
-#line 5137 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5234 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
         }
@@ -7449,7 +7544,7 @@
 
   case 593:
 /* Line 661 of lalr1.cc  */
-#line 5141 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5238 "/Users/zorba/Code/zorba/release/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)));
         }
@@ -7457,7 +7552,7 @@
 
   case 594:
 /* Line 661 of lalr1.cc  */
-#line 5145 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5242 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
         }
@@ -7465,7 +7560,7 @@
 
   case 595:
 /* Line 661 of lalr1.cc  */
-#line 5151 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5248 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
 
             driver.addCommonLanguageWarning((yylocation_stack_[(2) - (1)]), ZED(ZWST0009_JSONIQ_EMPTY_SEQUENCE));
@@ -7475,7 +7570,7 @@
 
   case 596:
 /* Line 661 of lalr1.cc  */
-#line 5160 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5257 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
                 LOC((yyloc)), ParseConstants::occurs_optionally
@@ -7485,7 +7580,7 @@
 
   case 597:
 /* Line 661 of lalr1.cc  */
-#line 5166 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5263 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
                 LOC((yyloc)), ParseConstants::occurs_zero_or_more
@@ -7495,7 +7590,7 @@
 
   case 598:
 /* Line 661 of lalr1.cc  */
-#line 5172 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5269 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
                 LOC((yyloc)), ParseConstants::occurs_one_or_more
@@ -7505,7 +7600,7 @@
 
   case 599:
 /* Line 661 of lalr1.cc  */
-#line 5182 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5279 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             GeneralizedAtomicType* gat = static_cast<GeneralizedAtomicType*>((yysemantic_stack_[(1) - (1)].node));
             QName* q = gat->get_qname();
@@ -7553,7 +7648,7 @@
 
   case 600:
 /* Line 661 of lalr1.cc  */
-#line 5226 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5323 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -7561,7 +7656,7 @@
 
   case 601:
 /* Line 661 of lalr1.cc  */
-#line 5230 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5327 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ItemType( LOC((yyloc)), true );
         }
@@ -7569,7 +7664,7 @@
 
   case 602:
 /* Line 661 of lalr1.cc  */
-#line 5234 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5331 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new StructuredItemType(LOC((yyloc)));
         }
@@ -7577,7 +7672,7 @@
 
   case 603:
 /* Line 661 of lalr1.cc  */
-#line 5238 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5335 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -7585,7 +7680,7 @@
 
   case 604:
 /* Line 661 of lalr1.cc  */
-#line 5242 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5339 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -7593,7 +7688,7 @@
 
   case 605:
 /* Line 661 of lalr1.cc  */
-#line 5246 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5343 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -7601,7 +7696,7 @@
 
   case 606:
 /* Line 661 of lalr1.cc  */
-#line 5253 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5350 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           TypeList* aTypeList = new TypeList(LOC ((yyloc)));
           aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
@@ -7611,7 +7706,7 @@
 
   case 607:
 /* Line 661 of lalr1.cc  */
-#line 5259 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5356 "/Users/zorba/Code/zorba/release/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)));
@@ -7621,7 +7716,7 @@
 
   case 608:
 /* Line 661 of lalr1.cc  */
-#line 5269 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5366 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GeneralizedAtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
     }
@@ -7629,7 +7724,7 @@
 
   case 609:
 /* Line 661 of lalr1.cc  */
-#line 5277 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5374 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SimpleType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
     }
@@ -7637,7 +7732,7 @@
 
   case 610:
 /* Line 661 of lalr1.cc  */
-#line 5285 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5382 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7645,7 +7740,7 @@
 
   case 611:
 /* Line 661 of lalr1.cc  */
-#line 5289 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5386 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7653,7 +7748,7 @@
 
   case 612:
 /* Line 661 of lalr1.cc  */
-#line 5293 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5390 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7661,7 +7756,7 @@
 
   case 613:
 /* Line 661 of lalr1.cc  */
-#line 5297 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5394 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7669,7 +7764,7 @@
 
   case 614:
 /* Line 661 of lalr1.cc  */
-#line 5301 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5398 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7677,7 +7772,7 @@
 
   case 615:
 /* Line 661 of lalr1.cc  */
-#line 5305 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5402 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7685,7 +7780,7 @@
 
   case 616:
 /* Line 661 of lalr1.cc  */
-#line 5309 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5406 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7693,7 +7788,7 @@
 
   case 617:
 /* Line 661 of lalr1.cc  */
-#line 5313 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5410 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7701,7 +7796,7 @@
 
   case 618:
 /* Line 661 of lalr1.cc  */
-#line 5317 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5414 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7709,7 +7804,7 @@
 
   case 619:
 /* Line 661 of lalr1.cc  */
-#line 5321 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5418 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7717,7 +7812,7 @@
 
   case 620:
 /* Line 661 of lalr1.cc  */
-#line 5329 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5426 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnyKindTest( LOC((yyloc)) );
     }
@@ -7725,7 +7820,7 @@
 
   case 621:
 /* Line 661 of lalr1.cc  */
-#line 5336 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5433 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = NULL;
     }
@@ -7733,7 +7828,7 @@
 
   case 622:
 /* Line 661 of lalr1.cc  */
-#line 5343 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5440 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DocumentTest(LOC((yyloc)));
     }
@@ -7741,7 +7836,7 @@
 
   case 623:
 /* Line 661 of lalr1.cc  */
-#line 5347 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5444 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)));
     }
@@ -7749,7 +7844,7 @@
 
   case 624:
 /* Line 661 of lalr1.cc  */
-#line 5351 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5448 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node)));
     }
@@ -7757,7 +7852,7 @@
 
   case 625:
 /* Line 661 of lalr1.cc  */
-#line 5359 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5456 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new NamespaceTest(LOC((yyloc)));
     }
@@ -7765,7 +7860,7 @@
 
   case 626:
 /* Line 661 of lalr1.cc  */
-#line 5366 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5463 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new TextTest(LOC((yyloc)));
     }
@@ -7773,7 +7868,7 @@
 
   case 627:
 /* Line 661 of lalr1.cc  */
-#line 5374 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5471 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CommentTest(LOC((yyloc)));
     }
@@ -7781,7 +7876,7 @@
 
   case 628:
 /* Line 661 of lalr1.cc  */
-#line 5382 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5479 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new PITest( LOC((yyloc)), "" );
         }
@@ -7789,7 +7884,7 @@
 
   case 629:
 /* Line 661 of lalr1.cc  */
-#line 5386 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5483 "/Users/zorba/Code/zorba/release/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)) );
@@ -7798,7 +7893,7 @@
 
   case 630:
 /* Line 661 of lalr1.cc  */
-#line 5391 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5488 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
@@ -7806,7 +7901,7 @@
 
   case 631:
 /* Line 661 of lalr1.cc  */
-#line 5399 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5496 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
@@ -7814,7 +7909,7 @@
 
   case 632:
 /* Line 661 of lalr1.cc  */
-#line 5403 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5500 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AttributeTest(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
@@ -7824,7 +7919,7 @@
 
   case 633:
 /* Line 661 of lalr1.cc  */
-#line 5409 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5506 "/Users/zorba/Code/zorba/release/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))
@@ -7834,7 +7929,7 @@
 
   case 634:
 /* Line 661 of lalr1.cc  */
-#line 5415 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5512 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
@@ -7842,7 +7937,7 @@
 
   case 635:
 /* Line 661 of lalr1.cc  */
-#line 5419 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5516 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new AttributeTest(
                 LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
@@ -7852,7 +7947,7 @@
 
   case 636:
 /* Line 661 of lalr1.cc  */
-#line 5429 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5526 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
@@ -7860,7 +7955,7 @@
 
   case 637:
 /* Line 661 of lalr1.cc  */
-#line 5437 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5534 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
         }
@@ -7868,7 +7963,7 @@
 
   case 638:
 /* Line 661 of lalr1.cc  */
-#line 5441 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5538 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
@@ -7878,7 +7973,7 @@
 
   case 639:
 /* Line 661 of lalr1.cc  */
-#line 5447 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5544 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)),
@@ -7891,7 +7986,7 @@
 
   case 640:
 /* Line 661 of lalr1.cc  */
-#line 5456 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5553 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)),
@@ -7904,7 +7999,7 @@
 
   case 641:
 /* Line 661 of lalr1.cc  */
-#line 5465 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5562 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), NULL, NULL, true
@@ -7914,7 +8009,7 @@
 
   case 642:
 /* Line 661 of lalr1.cc  */
-#line 5471 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5568 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
@@ -7924,7 +8019,7 @@
 
   case 643:
 /* Line 661 of lalr1.cc  */
-#line 5477 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5574 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
@@ -7934,7 +8029,7 @@
 
   case 644:
 /* Line 661 of lalr1.cc  */
-#line 5487 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5584 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
@@ -7942,7 +8037,7 @@
 
   case 645:
 /* Line 661 of lalr1.cc  */
-#line 5493 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5590 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
@@ -7950,7 +8045,7 @@
 
   case 646:
 /* Line 661 of lalr1.cc  */
-#line 5500 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5597 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
         }
@@ -7958,7 +8053,7 @@
 
   case 647:
 /* Line 661 of lalr1.cc  */
-#line 5506 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5603 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
@@ -7966,7 +8061,7 @@
 
   case 648:
 /* Line 661 of lalr1.cc  */
-#line 5512 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5609 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7974,7 +8069,7 @@
 
   case 649:
 /* Line 661 of lalr1.cc  */
-#line 5516 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5613 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -7982,7 +8077,7 @@
 
   case 650:
 /* Line 661 of lalr1.cc  */
-#line 5524 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5621 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnyFunctionTest(LOC((yyloc)));
     }
@@ -7990,7 +8085,7 @@
 
   case 651:
 /* Line 661 of lalr1.cc  */
-#line 5532 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5629 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)), dynamic_cast<SequenceType *>((yysemantic_stack_[(5) - (5)].node)));
         }
@@ -7998,7 +8093,7 @@
 
   case 652:
 /* Line 661 of lalr1.cc  */
-#line 5536 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5633 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)),
               dynamic_cast<TypeList *>((yysemantic_stack_[(6) - (3)].node)),
@@ -8008,7 +8103,7 @@
 
   case 653:
 /* Line 661 of lalr1.cc  */
-#line 5547 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5644 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
            (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
@@ -8016,7 +8111,7 @@
 
   case 654:
 /* Line 661 of lalr1.cc  */
-#line 5553 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5650 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::strict_validation
@@ -8026,7 +8121,7 @@
 
   case 655:
 /* Line 661 of lalr1.cc  */
-#line 5559 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5656 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::lax_validation
@@ -8036,7 +8131,7 @@
 
   case 656:
 /* Line 661 of lalr1.cc  */
-#line 5565 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5662 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::skip_validation
@@ -8046,7 +8141,7 @@
 
   case 657:
 /* Line 661 of lalr1.cc  */
-#line 5575 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5672 "/Users/zorba/Code/zorba/release/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) );
         }
@@ -8054,7 +8149,7 @@
 
   case 658:
 /* Line 661 of lalr1.cc  */
-#line 5579 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5676 "/Users/zorba/Code/zorba/release/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)
@@ -8064,7 +8159,7 @@
 
   case 659:
 /* Line 661 of lalr1.cc  */
-#line 5585 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5682 "/Users/zorba/Code/zorba/release/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)
@@ -8074,7 +8169,7 @@
 
   case 660:
 /* Line 661 of lalr1.cc  */
-#line 5591 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5688 "/Users/zorba/Code/zorba/release/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) );
         }
@@ -8082,7 +8177,7 @@
 
   case 661:
 /* Line 661 of lalr1.cc  */
-#line 5595 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5692 "/Users/zorba/Code/zorba/release/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)
@@ -8092,7 +8187,7 @@
 
   case 662:
 /* Line 661 of lalr1.cc  */
-#line 5601 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5698 "/Users/zorba/Code/zorba/release/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) );
         }
@@ -8100,7 +8195,7 @@
 
   case 663:
 /* Line 661 of lalr1.cc  */
-#line 5605 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5702 "/Users/zorba/Code/zorba/release/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)
@@ -8110,7 +8205,7 @@
 
   case 664:
 /* Line 661 of lalr1.cc  */
-#line 5611 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5708 "/Users/zorba/Code/zorba/release/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)
@@ -8120,7 +8215,7 @@
 
   case 665:
 /* Line 661 of lalr1.cc  */
-#line 5617 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5714 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new InsertExpr(
                 LOC ((yyloc)),
@@ -8131,7 +8226,7 @@
 
   case 666:
 /* Line 661 of lalr1.cc  */
-#line 5624 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5721 "/Users/zorba/Code/zorba/release/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)
@@ -8141,7 +8236,7 @@
 
   case 667:
 /* Line 661 of lalr1.cc  */
-#line 5634 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5731 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -8149,7 +8244,7 @@
 
   case 668:
 /* Line 661 of lalr1.cc  */
-#line 5639 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5736 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -8157,7 +8252,7 @@
 
   case 669:
 /* Line 661 of lalr1.cc  */
-#line 5647 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5744 "/Users/zorba/Code/zorba/release/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)
@@ -8167,7 +8262,7 @@
 
   case 670:
 /* Line 661 of lalr1.cc  */
-#line 5653 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5750 "/Users/zorba/Code/zorba/release/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)
@@ -8177,7 +8272,7 @@
 
   case 671:
 /* Line 661 of lalr1.cc  */
-#line 5663 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5760 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new RenameExpr( LOC ((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
@@ -8185,7 +8280,7 @@
 
   case 672:
 /* Line 661 of lalr1.cc  */
-#line 5669 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5766 "/Users/zorba/Code/zorba/release/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) );
@@ -8194,7 +8289,7 @@
 
   case 673:
 /* Line 661 of lalr1.cc  */
-#line 5678 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5775 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       CopyVarList* lList = new CopyVarList(LOC((yyloc)));
       lList->push_back (dynamic_cast<VarBinding*> ((yysemantic_stack_[(1) - (1)].expr)));
@@ -8204,7 +8299,7 @@
 
   case 674:
 /* Line 661 of lalr1.cc  */
-#line 5684 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5781 "/Users/zorba/Code/zorba/release/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));
@@ -8215,7 +8310,7 @@
 
   case 675:
 /* Line 661 of lalr1.cc  */
-#line 5697 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5794 "/Users/zorba/Code/zorba/release/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));
     }
@@ -8223,7 +8318,7 @@
 
   case 676:
 /* Line 661 of lalr1.cc  */
-#line 5703 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5800 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new TryExpr( LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
@@ -8231,7 +8326,7 @@
 
   case 677:
 /* Line 661 of lalr1.cc  */
-#line 5710 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5807 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             CatchListExpr *cle = new CatchListExpr( LOC((yyloc)) );
             cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -8241,7 +8336,7 @@
 
   case 678:
 /* Line 661 of lalr1.cc  */
-#line 5716 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5813 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
             if ( cle )
@@ -8252,7 +8347,7 @@
 
   case 679:
 /* Line 661 of lalr1.cc  */
-#line 5726 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5823 "/Users/zorba/Code/zorba/release/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);
@@ -8261,7 +8356,7 @@
 
   case 680:
 /* Line 661 of lalr1.cc  */
-#line 5735 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5832 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -8269,7 +8364,7 @@
 
   case 681:
 /* Line 661 of lalr1.cc  */
-#line 5743 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5840 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             CatchExpr::NameTestList *ntl = new CatchExpr::NameTestList;
             ntl->push_back( static_cast<NameTest*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -8279,7 +8374,7 @@
 
   case 682:
 /* Line 661 of lalr1.cc  */
-#line 5749 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5846 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             CatchExpr::NameTestList *ntl =
                 static_cast<CatchExpr::NameTestList*>((yysemantic_stack_[(3) - (1)].name_test_list));
@@ -8290,7 +8385,7 @@
 
   case 683:
 /* Line 661 of lalr1.cc  */
-#line 5758 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5855 "/Users/zorba/Code/zorba/release/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);
@@ -8299,7 +8394,7 @@
 
   case 684:
 /* Line 661 of lalr1.cc  */
-#line 5766 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5863 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.pos_filter_list) = NULL;
         }
@@ -8307,7 +8402,7 @@
 
   case 685:
 /* Line 661 of lalr1.cc  */
-#line 5770 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5867 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.pos_filter_list) = (yysemantic_stack_[(1) - (1)].pos_filter_list);
         }
@@ -8315,7 +8410,7 @@
 
   case 686:
 /* Line 661 of lalr1.cc  */
-#line 5777 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5874 "/Users/zorba/Code/zorba/release/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)) );
@@ -8324,7 +8419,7 @@
 
   case 687:
 /* Line 661 of lalr1.cc  */
-#line 5782 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5879 "/Users/zorba/Code/zorba/release/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);
@@ -8333,7 +8428,7 @@
 
   case 688:
 /* Line 661 of lalr1.cc  */
-#line 5790 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5887 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8341,7 +8436,7 @@
 
   case 689:
 /* Line 661 of lalr1.cc  */
-#line 5794 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTOr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
@@ -8349,7 +8444,7 @@
 
   case 690:
 /* Line 661 of lalr1.cc  */
-#line 5801 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5898 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8357,7 +8452,7 @@
 
   case 691:
 /* Line 661 of lalr1.cc  */
-#line 5805 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5902 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnd( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
@@ -8365,7 +8460,7 @@
 
   case 692:
 /* Line 661 of lalr1.cc  */
-#line 5812 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5909 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8373,7 +8468,7 @@
 
   case 693:
 /* Line 661 of lalr1.cc  */
-#line 5816 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5913 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTMildNot( LOC((yyloc)), (yysemantic_stack_[(4) - (1)].node), (yysemantic_stack_[(4) - (4)].node) );
         }
@@ -8381,7 +8476,7 @@
 
   case 694:
 /* Line 661 of lalr1.cc  */
-#line 5823 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8389,7 +8484,7 @@
 
   case 695:
 /* Line 661 of lalr1.cc  */
-#line 5827 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnaryNot(
                 LOC((yyloc)), dynamic_cast<FTPrimaryWithOptions*>((yysemantic_stack_[(2) - (2)].node))
@@ -8399,7 +8494,7 @@
 
   case 696:
 /* Line 661 of lalr1.cc  */
-#line 5836 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5933 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTPrimaryWithOptions(
                 LOC((yyloc)),
@@ -8412,7 +8507,7 @@
 
   case 697:
 /* Line 661 of lalr1.cc  */
-#line 5848 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -8420,7 +8515,7 @@
 
   case 698:
 /* Line 661 of lalr1.cc  */
-#line 5852 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5949 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8428,7 +8523,7 @@
 
   case 699:
 /* Line 661 of lalr1.cc  */
-#line 5859 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5956 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -8436,7 +8531,7 @@
 
   case 700:
 /* Line 661 of lalr1.cc  */
-#line 5863 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5960 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8444,7 +8539,7 @@
 
   case 701:
 /* Line 661 of lalr1.cc  */
-#line 5871 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5968 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWeight( LOC((yyloc)), dynamic_cast<exprnode*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
@@ -8452,7 +8547,7 @@
 
   case 702:
 /* Line 661 of lalr1.cc  */
-#line 5879 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5976 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWordsTimes(
                 LOC((yyloc)),
@@ -8464,7 +8559,7 @@
 
   case 703:
 /* Line 661 of lalr1.cc  */
-#line 5887 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5984 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
@@ -8472,7 +8567,7 @@
 
   case 704:
 /* Line 661 of lalr1.cc  */
-#line 5891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5988 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8480,7 +8575,7 @@
 
   case 705:
 /* Line 661 of lalr1.cc  */
-#line 5898 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5995 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -8488,7 +8583,7 @@
 
   case 706:
 /* Line 661 of lalr1.cc  */
-#line 5902 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 5999 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8496,7 +8591,7 @@
 
   case 707:
 /* Line 661 of lalr1.cc  */
-#line 5910 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6007 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTExtensionSelection(
                 LOC((yyloc)),
@@ -8508,7 +8603,7 @@
 
   case 708:
 /* Line 661 of lalr1.cc  */
-#line 5921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -8516,7 +8611,7 @@
 
   case 709:
 /* Line 661 of lalr1.cc  */
-#line 5925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6022 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8524,7 +8619,7 @@
 
   case 710:
 /* Line 661 of lalr1.cc  */
-#line 5933 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6030 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWords(
                 LOC((yyloc)),
@@ -8536,7 +8631,7 @@
 
   case 711:
 /* Line 661 of lalr1.cc  */
-#line 5945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6042 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), static_cast<StringLiteral*>((yysemantic_stack_[(1) - (1)].expr)), NULL
@@ -8546,7 +8641,7 @@
 
   case 712:
 /* Line 661 of lalr1.cc  */
-#line 5951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6048 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), NULL, dynamic_cast<exprnode*>((yysemantic_stack_[(3) - (2)].expr))
@@ -8556,7 +8651,7 @@
 
   case 713:
 /* Line 661 of lalr1.cc  */
-#line 5960 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6057 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::any );
         }
@@ -8564,7 +8659,7 @@
 
   case 714:
 /* Line 661 of lalr1.cc  */
-#line 5964 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6061 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8572,7 +8667,7 @@
 
   case 715:
 /* Line 661 of lalr1.cc  */
-#line 5972 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6069 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
@@ -8580,7 +8675,7 @@
 
   case 716:
 /* Line 661 of lalr1.cc  */
-#line 5976 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6073 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
@@ -8588,7 +8683,7 @@
 
   case 717:
 /* Line 661 of lalr1.cc  */
-#line 5980 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6077 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
         }
@@ -8596,7 +8691,7 @@
 
   case 718:
 /* Line 661 of lalr1.cc  */
-#line 5987 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6084 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::any;
         }
@@ -8604,7 +8699,7 @@
 
   case 719:
 /* Line 661 of lalr1.cc  */
-#line 5991 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6088 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
         }
@@ -8612,7 +8707,7 @@
 
   case 720:
 /* Line 661 of lalr1.cc  */
-#line 5998 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6095 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::all;
         }
@@ -8620,7 +8715,7 @@
 
   case 721:
 /* Line 661 of lalr1.cc  */
-#line 6002 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6099 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
         }
@@ -8628,7 +8723,7 @@
 
   case 722:
 /* Line 661 of lalr1.cc  */
-#line 6010 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6107 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8636,7 +8731,7 @@
 
   case 723:
 /* Line 661 of lalr1.cc  */
-#line 6014 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6111 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8644,7 +8739,7 @@
 
   case 724:
 /* Line 661 of lalr1.cc  */
-#line 6018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6115 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8652,7 +8747,7 @@
 
   case 725:
 /* Line 661 of lalr1.cc  */
-#line 6022 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6119 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8660,7 +8755,7 @@
 
   case 726:
 /* Line 661 of lalr1.cc  */
-#line 6026 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6123 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8668,7 +8763,7 @@
 
   case 727:
 /* Line 661 of lalr1.cc  */
-#line 6034 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6131 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTOrder( LOC((yyloc)) );
         }
@@ -8676,7 +8771,7 @@
 
   case 728:
 /* Line 661 of lalr1.cc  */
-#line 6042 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6139 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWindow(
                 LOC((yyloc)),
@@ -8688,7 +8783,7 @@
 
   case 729:
 /* Line 661 of lalr1.cc  */
-#line 6054 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6151 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDistance(
                 LOC((yyloc)),
@@ -8700,7 +8795,7 @@
 
   case 730:
 /* Line 661 of lalr1.cc  */
-#line 6066 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6163 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::words );
         }
@@ -8708,7 +8803,7 @@
 
   case 731:
 /* Line 661 of lalr1.cc  */
-#line 6070 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6167 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::sentences );
         }
@@ -8716,7 +8811,7 @@
 
   case 732:
 /* Line 661 of lalr1.cc  */
-#line 6074 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6171 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::paragraphs );
         }
@@ -8724,7 +8819,7 @@
 
   case 733:
 /* Line 661 of lalr1.cc  */
-#line 6082 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6179 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             FTMatchOptions *mo = new FTMatchOptions( LOC((yyloc)) );
             mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -8734,7 +8829,7 @@
 
   case 734:
 /* Line 661 of lalr1.cc  */
-#line 6088 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6185 "/Users/zorba/Code/zorba/release/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)) );
@@ -8744,7 +8839,7 @@
 
   case 735:
 /* Line 661 of lalr1.cc  */
-#line 6098 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6195 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8752,7 +8847,7 @@
 
   case 736:
 /* Line 661 of lalr1.cc  */
-#line 6102 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6199 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8760,7 +8855,7 @@
 
   case 737:
 /* Line 661 of lalr1.cc  */
-#line 6106 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6203 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8768,7 +8863,7 @@
 
   case 738:
 /* Line 661 of lalr1.cc  */
-#line 6110 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6207 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8776,7 +8871,7 @@
 
   case 739:
 /* Line 661 of lalr1.cc  */
-#line 6114 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6211 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8784,7 +8879,7 @@
 
   case 740:
 /* Line 661 of lalr1.cc  */
-#line 6118 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6215 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8792,7 +8887,7 @@
 
   case 741:
 /* Line 661 of lalr1.cc  */
-#line 6122 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6219 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8800,7 +8895,7 @@
 
   case 742:
 /* Line 661 of lalr1.cc  */
-#line 6126 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6223 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8808,7 +8903,7 @@
 
   case 743:
 /* Line 661 of lalr1.cc  */
-#line 6134 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6231 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::sensitive );
         }
@@ -8816,7 +8911,7 @@
 
   case 744:
 /* Line 661 of lalr1.cc  */
-#line 6138 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6235 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::insensitive );
         }
@@ -8824,7 +8919,7 @@
 
   case 745:
 /* Line 661 of lalr1.cc  */
-#line 6142 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6239 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::lower );
         }
@@ -8832,7 +8927,7 @@
 
   case 746:
 /* Line 661 of lalr1.cc  */
-#line 6146 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6243 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::upper );
         }
@@ -8840,7 +8935,7 @@
 
   case 747:
 /* Line 661 of lalr1.cc  */
-#line 6154 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6251 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::sensitive
@@ -8850,7 +8945,7 @@
 
   case 748:
 /* Line 661 of lalr1.cc  */
-#line 6160 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6257 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::insensitive
@@ -8860,7 +8955,7 @@
 
   case 749:
 /* Line 661 of lalr1.cc  */
-#line 6170 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6267 "/Users/zorba/Code/zorba/release/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))
@@ -8870,7 +8965,7 @@
 
   case 750:
 /* Line 661 of lalr1.cc  */
-#line 6180 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6277 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::stemming );
         }
@@ -8878,7 +8973,7 @@
 
   case 751:
 /* Line 661 of lalr1.cc  */
-#line 6184 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6281 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::no_stemming );
         }
@@ -8886,7 +8981,7 @@
 
   case 752:
 /* Line 661 of lalr1.cc  */
-#line 6192 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6289 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = NULL;
             if ( (yysemantic_stack_[(2) - (2)].node) ) {
@@ -8900,7 +8995,7 @@
 
   case 753:
 /* Line 661 of lalr1.cc  */
-#line 6202 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6299 "/Users/zorba/Code/zorba/release/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) ) {
@@ -8915,7 +9010,7 @@
 
   case 754:
 /* Line 661 of lalr1.cc  */
-#line 6213 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6310 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTThesaurusOption( LOC((yyloc)), NULL, false, true );
         }
@@ -8923,7 +9018,7 @@
 
   case 755:
 /* Line 661 of lalr1.cc  */
-#line 6220 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6317 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8931,7 +9026,7 @@
 
   case 756:
 /* Line 661 of lalr1.cc  */
-#line 6224 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6321 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -8939,7 +9034,7 @@
 
   case 757:
 /* Line 661 of lalr1.cc  */
-#line 6231 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6328 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.thesaurus_id_list) = NULL;
         }
@@ -8947,7 +9042,7 @@
 
   case 758:
 /* Line 661 of lalr1.cc  */
-#line 6235 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6332 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(2) - (2)].thesaurus_id_list);
         }
@@ -8955,7 +9050,7 @@
 
   case 759:
 /* Line 661 of lalr1.cc  */
-#line 6242 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6339 "/Users/zorba/Code/zorba/release/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)) );
@@ -8964,7 +9059,7 @@
 
   case 760:
 /* Line 661 of lalr1.cc  */
-#line 6247 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6344 "/Users/zorba/Code/zorba/release/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);
@@ -8973,7 +9068,7 @@
 
   case 761:
 /* Line 661 of lalr1.cc  */
-#line 6256 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6353 "/Users/zorba/Code/zorba/release/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))
@@ -8983,7 +9078,7 @@
 
   case 762:
 /* Line 661 of lalr1.cc  */
-#line 6265 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6362 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.sval) = 0;
         }
@@ -8991,7 +9086,7 @@
 
   case 763:
 /* Line 661 of lalr1.cc  */
-#line 6269 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6366 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.sval) = (yysemantic_stack_[(2) - (2)].sval);
         }
@@ -8999,7 +9094,7 @@
 
   case 764:
 /* Line 661 of lalr1.cc  */
-#line 6276 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6373 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -9007,7 +9102,7 @@
 
   case 765:
 /* Line 661 of lalr1.cc  */
-#line 6280 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6377 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
@@ -9015,7 +9110,7 @@
 
   case 766:
 /* Line 661 of lalr1.cc  */
-#line 6288 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6385 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)),
@@ -9028,7 +9123,7 @@
 
   case 767:
 /* Line 661 of lalr1.cc  */
-#line 6297 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6394 "/Users/zorba/Code/zorba/release/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
@@ -9039,7 +9134,7 @@
 
   case 768:
 /* Line 661 of lalr1.cc  */
-#line 6304 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6401 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, NULL, ft_stop_words_mode::without
@@ -9049,7 +9144,7 @@
 
   case 769:
 /* Line 661 of lalr1.cc  */
-#line 6314 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6411 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), NULL );
         }
@@ -9057,7 +9152,7 @@
 
   case 770:
 /* Line 661 of lalr1.cc  */
-#line 6318 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6415 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), "", (yysemantic_stack_[(3) - (2)].strlist) );
         }
@@ -9065,7 +9160,7 @@
 
   case 771:
 /* Line 661 of lalr1.cc  */
-#line 6325 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6422 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             string_list_t *sl = new string_list_t;
             sl->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -9075,7 +9170,7 @@
 
   case 772:
 /* Line 661 of lalr1.cc  */
-#line 6331 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6428 "/Users/zorba/Code/zorba/release/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)) );
@@ -9085,7 +9180,7 @@
 
   case 773:
 /* Line 661 of lalr1.cc  */
-#line 6340 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6437 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.incl_excl_list) = NULL;
         }
@@ -9093,7 +9188,7 @@
 
   case 774:
 /* Line 661 of lalr1.cc  */
-#line 6344 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6441 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.incl_excl_list) = (yysemantic_stack_[(1) - (1)].incl_excl_list);
         }
@@ -9101,7 +9196,7 @@
 
   case 775:
 /* Line 661 of lalr1.cc  */
-#line 6351 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6448 "/Users/zorba/Code/zorba/release/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)) );
@@ -9110,7 +9205,7 @@
 
   case 776:
 /* Line 661 of lalr1.cc  */
-#line 6356 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6453 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             FTStopWordOption::incl_excl_list_t *iel = (yysemantic_stack_[(2) - (1)].incl_excl_list);
             if ( !iel )
@@ -9122,7 +9217,7 @@
 
   case 777:
 /* Line 661 of lalr1.cc  */
-#line 6368 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6465 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -9134,7 +9229,7 @@
 
   case 778:
 /* Line 661 of lalr1.cc  */
-#line 6376 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6473 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -9146,7 +9241,7 @@
 
   case 779:
 /* Line 661 of lalr1.cc  */
-#line 6388 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6485 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTLanguageOption( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
@@ -9154,7 +9249,7 @@
 
   case 780:
 /* Line 661 of lalr1.cc  */
-#line 6396 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6493 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::with );
         }
@@ -9162,7 +9257,7 @@
 
   case 781:
 /* Line 661 of lalr1.cc  */
-#line 6400 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6497 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::without );
         }
@@ -9170,7 +9265,7 @@
 
   case 782:
 /* Line 661 of lalr1.cc  */
-#line 6408 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6505 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_start );
         }
@@ -9178,7 +9273,7 @@
 
   case 783:
 /* Line 661 of lalr1.cc  */
-#line 6412 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6509 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_end );
         }
@@ -9186,7 +9281,7 @@
 
   case 784:
 /* Line 661 of lalr1.cc  */
-#line 6416 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6513 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::entire );
         }
@@ -9194,7 +9289,7 @@
 
   case 785:
 /* Line 661 of lalr1.cc  */
-#line 6424 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6521 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTTimes( LOC((yyloc)), dynamic_cast<FTRange*>((yysemantic_stack_[(3) - (2)].node)) );
         }
@@ -9202,7 +9297,7 @@
 
   case 786:
 /* Line 661 of lalr1.cc  */
-#line 6432 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6529 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::exactly, (yysemantic_stack_[(2) - (2)].expr) );
         }
@@ -9210,7 +9305,7 @@
 
   case 787:
 /* Line 661 of lalr1.cc  */
-#line 6436 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6533 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_least, (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -9218,7 +9313,7 @@
 
   case 788:
 /* Line 661 of lalr1.cc  */
-#line 6440 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6537 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_most, (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -9226,7 +9321,7 @@
 
   case 789:
 /* Line 661 of lalr1.cc  */
-#line 6444 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6541 "/Users/zorba/Code/zorba/release/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) );
         }
@@ -9234,7 +9329,7 @@
 
   case 790:
 /* Line 661 of lalr1.cc  */
-#line 6452 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6549 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -9246,7 +9341,7 @@
 
   case 791:
 /* Line 661 of lalr1.cc  */
-#line 6460 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6557 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -9258,7 +9353,7 @@
 
   case 792:
 /* Line 661 of lalr1.cc  */
-#line 6472 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6569 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::sentence );
         }
@@ -9266,7 +9361,7 @@
 
   case 793:
 /* Line 661 of lalr1.cc  */
-#line 6476 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6573 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::paragraph );
         }
@@ -9274,7 +9369,7 @@
 
   case 794:
 /* Line 661 of lalr1.cc  */
-#line 6484 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6581 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTIgnoreOption( LOC((yyloc)), static_cast<UnionExpr*>((yysemantic_stack_[(3) - (3)].expr)) );
         }
@@ -9282,7 +9377,7 @@
 
   case 795:
 /* Line 661 of lalr1.cc  */
-#line 6490 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6587 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), NULL );
         }
@@ -9290,7 +9385,7 @@
 
   case 796:
 /* Line 661 of lalr1.cc  */
-#line 6494 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6591 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
@@ -9298,7 +9393,7 @@
 
   case 797:
 /* Line 661 of lalr1.cc  */
-#line 6501 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6598 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, false);
         }
@@ -9306,7 +9401,7 @@
 
   case 798:
 /* Line 661 of lalr1.cc  */
-#line 6505 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6602 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), false);
         }
@@ -9314,7 +9409,7 @@
 
   case 799:
 /* Line 661 of lalr1.cc  */
-#line 6512 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6609 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, true);
         }
@@ -9322,7 +9417,7 @@
 
   case 800:
 /* Line 661 of lalr1.cc  */
-#line 6516 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6613 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), true);
         }
@@ -9330,7 +9425,7 @@
 
   case 801:
 /* Line 661 of lalr1.cc  */
-#line 6524 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6621 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONDirectObjectConstructor(LOC((yyloc)),
                                                dynamic_cast<JSONPairList*>((yysemantic_stack_[(3) - (2)].node)));
@@ -9339,7 +9434,7 @@
 
   case 802:
 /* Line 661 of lalr1.cc  */
-#line 6534 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6631 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           ERROR_IF_QNAME_NOT_NCNAME((yysemantic_stack_[(3) - (1)].expr), (yylocation_stack_[(3) - (1)]));
 
@@ -9355,7 +9450,7 @@
 
   case 803:
 /* Line 661 of lalr1.cc  */
-#line 6548 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6645 "/Users/zorba/Code/zorba/release/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)));
@@ -9365,7 +9460,7 @@
 
   case 804:
 /* Line 661 of lalr1.cc  */
-#line 6554 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6651 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (1)].node));
           assert(jpl);
@@ -9376,7 +9471,7 @@
 
   case 805:
 /* Line 661 of lalr1.cc  */
-#line 6563 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6660 "/Users/zorba/Code/zorba/release/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));
@@ -9389,7 +9484,7 @@
 
   case 806:
 /* Line 661 of lalr1.cc  */
-#line 6576 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6673 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectInsertExpr(LOC((yyloc)),
                                         (yysemantic_stack_[(5) - (3)].expr),
@@ -9399,7 +9494,7 @@
 
   case 807:
 /* Line 661 of lalr1.cc  */
-#line 6582 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6679 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (3)].node));
           (yyval.expr) = new JSONObjectInsertExpr(
@@ -9413,7 +9508,7 @@
 
   case 808:
 /* Line 661 of lalr1.cc  */
-#line 6592 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6689 "/Users/zorba/Code/zorba/release/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));
         }
@@ -9421,1632 +9516,1473 @@
 
   case 809:
 /* Line 661 of lalr1.cc  */
-#line 6599 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6696 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
-
-          driver.addCommonLanguageWarning((yylocation_stack_[(4) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
-          (yyval.expr) = new JSONObjectInsertExpr(LOC((yyloc)),
-                                        (yysemantic_stack_[(4) - (2)].expr),
-                                        (yysemantic_stack_[(4) - (4)].expr));
+          (yyval.expr) = new JSONArrayAppendExpr(LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr));
         }
     break;
 
   case 810:
 /* Line 661 of lalr1.cc  */
-#line 6607 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6703 "/Users/zorba/Code/zorba/release/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));
-          (yyval.expr) = new JSONObjectInsertExpr(
+          rchandle<exprnode> lTargetExpr;
+          rchandle<exprnode> lSelectorExpr;
+          string lError;
+          if (!convert_postfix_to_target_and_selector((yysemantic_stack_[(3) - (3)].expr), &lTargetExpr, &lSelectorExpr, &lError))
+          {
+            error((yylocation_stack_[(3) - (2)]), lError);
+            YYERROR;
+          }
+          (yyval.expr) = new JSONDeleteExpr(
               LOC((yyloc)),
-              new JSONDirectObjectConstructor(
-                  LOC((yyloc)),
-                  jpl),
-              (yysemantic_stack_[(4) - (4)].expr));
+              lTargetExpr,
+              lSelectorExpr);
         }
     break;
 
   case 811:
 /* Line 661 of lalr1.cc  */
-#line 6619 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6721 "/Users/zorba/Code/zorba/release/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));
+          rchandle<exprnode> lTargetExpr;
+          rchandle<exprnode> lSelectorExpr;
+          string lError;
+          if (!convert_postfix_to_target_and_selector(
+              (yysemantic_stack_[(5) - (3)].expr),
+              &lTargetExpr,
+              &lSelectorExpr,
+              &lError,
+              false))
+          {
+            error((yylocation_stack_[(5) - (3)]), lError);
+            delete (yysemantic_stack_[(5) - (5)].expr);
+            YYERROR;
+          }
+          (yyval.expr) = new JSONRenameExpr(
+                LOC((yyloc)),
+                lTargetExpr,
+                lSelectorExpr,
+                (yysemantic_stack_[(5) - (5)].expr));
         }
     break;
 
   case 812:
 /* Line 661 of lalr1.cc  */
-#line 6629 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6746 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = new JSONArrayAppendExpr(LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr));
+          rchandle<exprnode> lTargetExpr;
+          rchandle<exprnode> lSelectorExpr;
+          string lError;
+          if (!convert_postfix_to_target_and_selector((yysemantic_stack_[(7) - (5)].expr), &lTargetExpr, &lSelectorExpr, &lError))
+          {
+            error((yylocation_stack_[(7) - (5)]), lError);
+            delete (yysemantic_stack_[(7) - (7)].expr);
+            YYERROR;
+          }
+          (yyval.expr) = new JSONReplaceExpr(
+                LOC((yyloc)),
+                lTargetExpr,
+                lSelectorExpr,
+                (yysemantic_stack_[(7) - (7)].expr));
         }
     break;
 
   case 813:
 /* Line 661 of lalr1.cc  */
-#line 6636 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6766 "/Users/zorba/Code/zorba/release/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));
+          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonItem);
         }
     break;
 
   case 814:
 /* Line 661 of lalr1.cc  */
-#line 6646 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6770 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     {
-          rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
-          dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(3) - (3)].expr));
-
-          if (lDynamicFunctionInvocation == NULL)
-          {
-            error((yylocation_stack_[(3) - (3)]), "An object invocation is expected. A filter was found instead.");
-            YYERROR;
-          }
-
-          if (lDynamicFunctionInvocation->getArgList()->size() != 1)
-          {
-            error((yylocation_stack_[(3) - (3)]), "An object invocation with exactly one argument is expected. Zero or more than one argument were found.");
-            YYERROR;
-          }
-
-          (yyval.expr) = new JSONDeleteExpr(
-                LOC((yyloc)),
-                lDynamicFunctionInvocation->getPrimaryExpr(),
-                lDynamicFunctionInvocation->getArgList()->operator[](0));
+          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonArray);
         }
     break;
 
   case 815:
 /* Line 661 of lalr1.cc  */
-#line 6671 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    {
-
-          driver.addCommonLanguageWarning((yylocation_stack_[(2) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
-
-          rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
-          dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(2) - (2)].expr));
-
-          if (lDynamicFunctionInvocation == NULL)
-          {
-            error((yylocation_stack_[(2) - (2)]), "An object invocation is expected. A filter was found instead.");
-            YYERROR;
-          }
-
-          if (lDynamicFunctionInvocation->getArgList()->size() != 1)
-          {
-            error((yylocation_stack_[(2) - (2)]), "An object invocation with exactly one argument is expected. Zero or more than one argument were found.");
-            YYERROR;
-          }
-
-          (yyval.expr) = new JSONDeleteExpr(
-                LOC((yyloc)),
-                lDynamicFunctionInvocation->getPrimaryExpr(),
-                lDynamicFunctionInvocation->getArgList()->operator[](0));
-        }
-    break;
-
-  case 816:
-/* Line 661 of lalr1.cc  */
-#line 6700 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    {
-          rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
-          dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(5) - (3)].expr));
-
-          if(lDynamicFunctionInvocation == NULL)
-          {
-            error((yylocation_stack_[(5) - (3)]), "An object invocation is expected. A filter was found instead.");
-            delete (yysemantic_stack_[(5) - (5)].expr);
-            YYERROR;
-          }
-
-          if (lDynamicFunctionInvocation->getArgList()->size() != 1)
-          {
-            error((yylocation_stack_[(5) - (3)]), "An object invocation with exactly one argument is expected. Zero or more than one argument were found.");
-            delete (yysemantic_stack_[(5) - (5)].expr);
-            YYERROR;
-          }
-
-          (yyval.expr) = new JSONRenameExpr(
-                LOC((yyloc)),
-                lDynamicFunctionInvocation->getPrimaryExpr(),
-                lDynamicFunctionInvocation->getArgList()->operator[](0),
-                (yysemantic_stack_[(5) - (5)].expr));
-        }
-    break;
-
-  case 817:
-/* Line 661 of lalr1.cc  */
-#line 6728 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    {
-
-          driver.addCommonLanguageWarning((yylocation_stack_[(4) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
-
-          rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
-          dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(4) - (2)].expr));
-
-          if(lDynamicFunctionInvocation == NULL)
-          {
-            error((yylocation_stack_[(4) - (2)]), "An object invocation is expected. A filter was found instead.");
-            delete (yysemantic_stack_[(4) - (4)].expr);
-            YYERROR;
-          }
-
-          if (lDynamicFunctionInvocation->getArgList()->size() != 1)
-          {
-            error((yylocation_stack_[(4) - (2)]), "An object invocation with exactly one argument is expected. Zero or more than one argument were found.");
-            delete (yysemantic_stack_[(4) - (4)].expr);
-            YYERROR;
-          }
-
-          (yyval.expr) = new JSONRenameExpr(
-                LOC((yyloc)),
-                lDynamicFunctionInvocation->getPrimaryExpr(),
-                lDynamicFunctionInvocation->getArgList()->operator[](0),
-                (yysemantic_stack_[(4) - (4)].expr));
+#line 6774 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonObject);
         }
     break;
 
   case 818:
 /* Line 661 of lalr1.cc  */
-#line 6760 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    {
-          rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
-          dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(7) - (5)].expr));
-
-          if(lDynamicFunctionInvocation == NULL)
-          {
-            error((yylocation_stack_[(7) - (3)]), "An object invocation is expected. A filter was found instead.");
-            delete (yysemantic_stack_[(7) - (7)].expr);
-            YYERROR;
-          }
-
-          if (lDynamicFunctionInvocation->getArgList()->size() != 1)
-          {
-            error((yylocation_stack_[(7) - (3)]), "An object invocation with exactly one argument is expected. Zero or more than one argument were found.");
-            delete (yysemantic_stack_[(7) - (7)].expr);
-            YYERROR;
-          }
-
-          (yyval.expr) = new JSONReplaceExpr(
-                LOC((yyloc)),
-                lDynamicFunctionInvocation->getPrimaryExpr(),
-                lDynamicFunctionInvocation->getArgList()->operator[](0),
-                (yysemantic_stack_[(7) - (7)].expr));
-        }
+#line 6792 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
     break;
 
   case 819:
 /* Line 661 of lalr1.cc  */
-#line 6787 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    {
-
-          driver.addCommonLanguageWarning((yylocation_stack_[(6) - (2)]), ZED(ZWST0009_JSON_KEYWORD_OPTIONAL));
-
-          rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
-          dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(6) - (4)].expr));
-
-          if(lDynamicFunctionInvocation == NULL)
-          {
-            error((yylocation_stack_[(6) - (2)]), "An object invocation is expected. A filter was found instead.");
-            delete (yysemantic_stack_[(6) - (6)].expr);
-            YYERROR;
-          }
-
-          if (lDynamicFunctionInvocation->getArgList()->size() != 1)
-          {
-            error((yylocation_stack_[(6) - (2)]), "An object invocation with exactly one argument is expected. Zero or more than one argument were found.");
-            delete (yysemantic_stack_[(6) - (6)].expr);
-            YYERROR;
-          }
-
-          (yyval.expr) = new JSONReplaceExpr(
-                LOC((yyloc)),
-                lDynamicFunctionInvocation->getPrimaryExpr(),
-                lDynamicFunctionInvocation->getArgList()->operator[](0),
-                (yysemantic_stack_[(6) - (6)].expr));
-        }
+#line 6793 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("attribute"))); }
     break;
 
   case 820:
 /* Line 661 of lalr1.cc  */
-#line 6819 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonItem);
-        }
+#line 6794 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("comment"))); }
     break;
 
   case 821:
 /* Line 661 of lalr1.cc  */
-#line 6823 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonArray);
-        }
+#line 6795 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document-node"))); }
     break;
 
   case 822:
 /* Line 661 of lalr1.cc  */
-#line 6827 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonObject);
-        }
-    break;
-
-  case 825:
-/* Line 661 of lalr1.cc  */
-#line 6845 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
-    break;
-
-  case 826:
-/* Line 661 of lalr1.cc  */
-#line 6846 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("attribute"))); }
-    break;
-
-  case 827:
-/* Line 661 of lalr1.cc  */
-#line 6847 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("comment"))); }
-    break;
-
-  case 828:
-/* Line 661 of lalr1.cc  */
-#line 6848 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
-    { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document-node"))); }
-    break;
-
-  case 829:
-/* Line 661 of lalr1.cc  */
-#line 6849 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6796 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("namespace-node"))); }
     break;
 
-  case 830:
+  case 823:
 /* Line 661 of lalr1.cc  */
-#line 6850 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6797 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("element"))); }
     break;
 
-  case 831:
+  case 824:
 /* Line 661 of lalr1.cc  */
-#line 6851 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6798 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("item"))); }
     break;
 
-  case 832:
+  case 825:
 /* Line 661 of lalr1.cc  */
-#line 6852 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6799 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("if"))); }
     break;
 
-  case 833:
+  case 826:
 /* Line 661 of lalr1.cc  */
-#line 6853 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6800 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("node"))); }
     break;
 
-  case 834:
+  case 827:
 /* Line 661 of lalr1.cc  */
-#line 6854 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6801 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("processing-instruction"))); }
     break;
 
-  case 835:
+  case 828:
 /* Line 661 of lalr1.cc  */
-#line 6855 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6802 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-attribute"))); }
     break;
 
-  case 836:
+  case 829:
 /* Line 661 of lalr1.cc  */
-#line 6856 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6803 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-element"))); }
     break;
 
-  case 837:
+  case 830:
 /* Line 661 of lalr1.cc  */
-#line 6857 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6804 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("text"))); }
     break;
 
-  case 838:
+  case 831:
 /* Line 661 of lalr1.cc  */
-#line 6858 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6805 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("typeswitch"))); }
     break;
 
-  case 839:
+  case 832:
 /* Line 661 of lalr1.cc  */
-#line 6859 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6806 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("switch"))); }
     break;
 
-  case 840:
+  case 833:
 /* Line 661 of lalr1.cc  */
-#line 6860 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6807 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty-sequence"))); }
     break;
 
-  case 841:
+  case 834:
 /* Line 661 of lalr1.cc  */
-#line 6861 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6808 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("while"))); }
     break;
 
-  case 842:
+  case 835:
 /* Line 661 of lalr1.cc  */
-#line 6862 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6809 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("json"))); }
     break;
 
-  case 843:
+  case 836:
 /* Line 661 of lalr1.cc  */
-#line 6863 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6810 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("array"))); }
     break;
 
-  case 844:
+  case 837:
 /* Line 661 of lalr1.cc  */
-#line 6864 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6811 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("object"))); }
     break;
 
-  case 845:
+  case 838:
 /* Line 661 of lalr1.cc  */
-#line 6865 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6812 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("json-item"))); }
     break;
 
-  case 846:
+  case 839:
 /* Line 661 of lalr1.cc  */
-#line 6866 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6813 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("structured-item"))); }
     break;
 
-  case 848:
+  case 841:
 /* Line 661 of lalr1.cc  */
-#line 6871 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6818 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
     break;
 
-  case 849:
+  case 842:
 /* Line 661 of lalr1.cc  */
-#line 6872 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6819 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("xquery"))); }
     break;
 
-  case 850:
+  case 843:
 /* Line 661 of lalr1.cc  */
-#line 6873 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6820 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty"))); }
     break;
 
-  case 851:
+  case 844:
 /* Line 661 of lalr1.cc  */
-#line 6874 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6821 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("boundary-space"))); }
     break;
 
-  case 852:
+  case 845:
 /* Line 661 of lalr1.cc  */
-#line 6875 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6822 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ft-option"))); }
     break;
 
-  case 853:
+  case 846:
 /* Line 661 of lalr1.cc  */
-#line 6876 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6823 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("base-uri"))); }
     break;
 
-  case 854:
+  case 847:
 /* Line 661 of lalr1.cc  */
-#line 6877 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6824 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lax"))); }
     break;
 
-  case 855:
+  case 848:
 /* Line 661 of lalr1.cc  */
-#line 6878 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6825 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strict"))); }
     break;
 
-  case 856:
+  case 849:
 /* Line 661 of lalr1.cc  */
-#line 6879 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6826 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("idiv"))); }
     break;
 
-  case 857:
+  case 850:
 /* Line 661 of lalr1.cc  */
-#line 6880 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6827 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document"))); }
     break;
 
-  case 858:
+  case 851:
 /* Line 661 of lalr1.cc  */
-#line 6881 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6828 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ftnot"))); }
     break;
 
-  case 859:
+  case 852:
 /* Line 661 of lalr1.cc  */
-#line 6882 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6829 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("not"))); }
     break;
 
-  case 860:
+  case 853:
 /* Line 661 of lalr1.cc  */
-#line 6883 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6830 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sensitive"))); }
     break;
 
-  case 861:
+  case 854:
 /* Line 661 of lalr1.cc  */
-#line 6884 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6831 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("insensitive"))); }
     break;
 
-  case 862:
+  case 855:
 /* Line 661 of lalr1.cc  */
-#line 6885 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6832 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("diacritics"))); }
     break;
 
-  case 863:
+  case 856:
 /* Line 661 of lalr1.cc  */
-#line 6886 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6833 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("without"))); }
     break;
 
-  case 864:
+  case 857:
 /* Line 661 of lalr1.cc  */
-#line 6887 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6834 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stemming"))); }
     break;
 
-  case 865:
+  case 858:
 /* Line 661 of lalr1.cc  */
-#line 6888 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6835 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("thesaurus"))); }
     break;
 
-  case 866:
+  case 859:
 /* Line 661 of lalr1.cc  */
-#line 6889 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6836 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stop"))); }
     break;
 
-  case 867:
+  case 860:
 /* Line 661 of lalr1.cc  */
-#line 6890 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6837 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("wildcards"))); }
     break;
 
-  case 868:
+  case 861:
 /* Line 661 of lalr1.cc  */
-#line 6891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6838 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("entire"))); }
     break;
 
-  case 869:
+  case 862:
 /* Line 661 of lalr1.cc  */
-#line 6892 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6839 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("content"))); }
     break;
 
-  case 870:
+  case 863:
 /* Line 661 of lalr1.cc  */
-#line 6893 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6840 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("word"))); }
     break;
 
-  case 871:
+  case 864:
 /* Line 661 of lalr1.cc  */
-#line 6894 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6841 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("start"))); }
     break;
 
-  case 872:
+  case 865:
 /* Line 661 of lalr1.cc  */
-#line 6895 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6842 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("end"))); }
     break;
 
-  case 873:
+  case 866:
 /* Line 661 of lalr1.cc  */
-#line 6896 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6843 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("most"))); }
     break;
 
-  case 874:
+  case 867:
 /* Line 661 of lalr1.cc  */
-#line 6897 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6844 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("skip"))); }
     break;
 
-  case 875:
+  case 868:
 /* Line 661 of lalr1.cc  */
-#line 6898 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6845 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("copy"))); }
     break;
 
-  case 876:
+  case 869:
 /* Line 661 of lalr1.cc  */
-#line 6899 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6846 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("general"))); }
     break;
 
-  case 877:
+  case 870:
 /* Line 661 of lalr1.cc  */
-#line 6900 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6847 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("value"))); }
     break;
 
-  case 878:
+  case 871:
 /* Line 661 of lalr1.cc  */
-#line 6901 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6848 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("eq"))); }
     break;
 
-  case 879:
+  case 872:
 /* Line 661 of lalr1.cc  */
-#line 6902 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6849 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ne"))); }
     break;
 
-  case 880:
+  case 873:
 /* Line 661 of lalr1.cc  */
-#line 6903 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6850 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lt"))); }
     break;
 
-  case 881:
+  case 874:
 /* Line 661 of lalr1.cc  */
-#line 6904 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6851 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("le"))); }
     break;
 
-  case 882:
+  case 875:
 /* Line 661 of lalr1.cc  */
-#line 6905 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6852 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("gt"))); }
     break;
 
-  case 883:
+  case 876:
 /* Line 661 of lalr1.cc  */
-#line 6906 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6853 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ge"))); }
     break;
 
-  case 884:
+  case 877:
 /* Line 661 of lalr1.cc  */
-#line 6907 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6854 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("at"))); }
     break;
 
-  case 885:
+  case 878:
 /* Line 661 of lalr1.cc  */
-#line 6908 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6855 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("context"))); }
     break;
 
-  case 886:
+  case 879:
 /* Line 661 of lalr1.cc  */
-#line 6909 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6856 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("variable"))); }
     break;
 
-  case 887:
+  case 880:
 /* Line 661 of lalr1.cc  */
-#line 6910 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6857 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("return"))); }
     break;
 
-  case 888:
+  case 881:
 /* Line 661 of lalr1.cc  */
-#line 6911 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6858 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("for"))); }
     break;
 
-  case 889:
+  case 882:
 /* Line 661 of lalr1.cc  */
-#line 6912 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6859 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("from"))); }
     break;
 
-  case 890:
+  case 883:
 /* Line 661 of lalr1.cc  */
-#line 6913 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6860 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("allowing"))); }
     break;
 
-  case 891:
+  case 884:
 /* Line 661 of lalr1.cc  */
-#line 6914 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6861 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sliding"))); }
     break;
 
-  case 892:
+  case 885:
 /* Line 661 of lalr1.cc  */
-#line 6915 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6862 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("tumbling"))); }
     break;
 
-  case 893:
+  case 886:
 /* Line 661 of lalr1.cc  */
-#line 6916 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6863 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("previous"))); }
     break;
 
-  case 894:
+  case 887:
 /* Line 661 of lalr1.cc  */
-#line 6917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6864 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("next"))); }
     break;
 
-  case 895:
+  case 888:
 /* Line 661 of lalr1.cc  */
-#line 6918 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6865 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("only"))); }
     break;
 
-  case 896:
+  case 889:
 /* Line 661 of lalr1.cc  */
-#line 6919 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6866 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("when"))); }
     break;
 
-  case 897:
+  case 890:
 /* Line 661 of lalr1.cc  */
-#line 6920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6867 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("count"))); }
     break;
 
-  case 898:
+  case 891:
 /* Line 661 of lalr1.cc  */
-#line 6921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6868 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("in"))); }
     break;
 
-  case 899:
+  case 892:
 /* Line 661 of lalr1.cc  */
-#line 6922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6869 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("let"))); }
     break;
 
-  case 900:
+  case 893:
 /* Line 661 of lalr1.cc  */
-#line 6923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6870 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("where"))); }
     break;
 
-  case 901:
+  case 894:
 /* Line 661 of lalr1.cc  */
-#line 6924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6871 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("by"))); }
     break;
 
-  case 902:
+  case 895:
 /* Line 661 of lalr1.cc  */
-#line 6925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6872 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("group"))); }
     break;
 
-  case 903:
+  case 896:
 /* Line 661 of lalr1.cc  */
-#line 6926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6873 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("order"))); }
     break;
 
-  case 904:
+  case 897:
 /* Line 661 of lalr1.cc  */
-#line 6927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6874 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stable"))); }
     break;
 
-  case 905:
+  case 898:
 /* Line 661 of lalr1.cc  */
-#line 6928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6875 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ascending"))); }
     break;
 
-  case 906:
+  case 899:
 /* Line 661 of lalr1.cc  */
-#line 6929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6876 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("descending"))); }
     break;
 
-  case 907:
+  case 900:
 /* Line 661 of lalr1.cc  */
-#line 6930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6877 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("greatest"))); }
     break;
 
-  case 908:
+  case 901:
 /* Line 661 of lalr1.cc  */
-#line 6931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6878 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("least"))); }
     break;
 
-  case 909:
+  case 902:
 /* Line 661 of lalr1.cc  */
-#line 6932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6879 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("collation"))); }
     break;
 
-  case 910:
+  case 903:
 /* Line 661 of lalr1.cc  */
-#line 6933 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6880 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("some"))); }
     break;
 
-  case 911:
+  case 904:
 /* Line 661 of lalr1.cc  */
-#line 6934 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6881 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("every"))); }
     break;
 
-  case 912:
+  case 905:
 /* Line 661 of lalr1.cc  */
-#line 6935 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6882 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("satisfies"))); }
     break;
 
-  case 913:
+  case 906:
 /* Line 661 of lalr1.cc  */
-#line 6936 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6883 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("case"))); }
     break;
 
-  case 914:
+  case 907:
 /* Line 661 of lalr1.cc  */
-#line 6937 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6884 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("as"))); }
     break;
 
-  case 915:
+  case 908:
 /* Line 661 of lalr1.cc  */
-#line 6938 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6885 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("then"))); }
     break;
 
-  case 916:
+  case 909:
 /* Line 661 of lalr1.cc  */
-#line 6939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6886 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("else"))); }
     break;
 
-  case 917:
+  case 910:
 /* Line 661 of lalr1.cc  */
-#line 6940 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6887 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("or"))); }
     break;
 
-  case 918:
+  case 911:
 /* Line 661 of lalr1.cc  */
-#line 6941 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6888 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("and"))); }
     break;
 
-  case 919:
+  case 912:
 /* Line 661 of lalr1.cc  */
-#line 6942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6889 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("instance"))); }
     break;
 
-  case 920:
+  case 913:
 /* Line 661 of lalr1.cc  */
-#line 6943 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6890 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("of"))); }
     break;
 
-  case 921:
+  case 914:
 /* Line 661 of lalr1.cc  */
-#line 6944 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6891 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("castable"))); }
     break;
 
-  case 922:
+  case 915:
 /* Line 661 of lalr1.cc  */
-#line 6945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6892 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("to"))); }
     break;
 
-  case 923:
+  case 916:
 /* Line 661 of lalr1.cc  */
-#line 6946 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6893 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("div"))); }
     break;
 
-  case 924:
+  case 917:
 /* Line 661 of lalr1.cc  */
-#line 6947 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6894 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("mod"))); }
     break;
 
-  case 925:
+  case 918:
 /* Line 661 of lalr1.cc  */
-#line 6948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6895 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("union"))); }
     break;
 
-  case 926:
+  case 919:
 /* Line 661 of lalr1.cc  */
-#line 6949 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6896 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("intersect"))); }
     break;
 
-  case 927:
+  case 920:
 /* Line 661 of lalr1.cc  */
-#line 6950 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6897 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("except"))); }
     break;
 
-  case 928:
+  case 921:
 /* Line 661 of lalr1.cc  */
-#line 6951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6898 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("validate"))); }
     break;
 
-  case 929:
+  case 922:
 /* Line 661 of lalr1.cc  */
-#line 6952 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6899 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("type"))); }
     break;
 
-  case 930:
+  case 923:
 /* Line 661 of lalr1.cc  */
-#line 6953 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6900 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("cast"))); }
     break;
 
-  case 931:
+  case 924:
 /* Line 661 of lalr1.cc  */
-#line 6954 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6901 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("treat"))); }
     break;
 
-  case 932:
+  case 925:
 /* Line 661 of lalr1.cc  */
-#line 6955 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6902 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("is"))); }
     break;
 
-  case 933:
+  case 926:
 /* Line 661 of lalr1.cc  */
-#line 6956 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6903 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("preserve"))); }
     break;
 
-  case 934:
+  case 927:
 /* Line 661 of lalr1.cc  */
-#line 6957 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6904 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strip"))); }
     break;
 
-  case 935:
+  case 928:
 /* Line 661 of lalr1.cc  */
-#line 6958 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6905 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("namespace"))); }
     break;
 
-  case 936:
+  case 929:
 /* Line 661 of lalr1.cc  */
-#line 6959 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6906 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("external"))); }
     break;
 
-  case 937:
+  case 930:
 /* Line 661 of lalr1.cc  */
-#line 6960 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6907 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("encoding"))); }
     break;
 
-  case 938:
+  case 931:
 /* Line 661 of lalr1.cc  */
-#line 6961 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6908 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("no-preserve"))); }
     break;
 
-  case 939:
+  case 932:
 /* Line 661 of lalr1.cc  */
-#line 6962 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6909 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("inherit"))); }
     break;
 
-  case 940:
+  case 933:
 /* Line 661 of lalr1.cc  */
-#line 6963 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6910 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("no-inherit"))); }
     break;
 
-  case 941:
+  case 934:
 /* Line 661 of lalr1.cc  */
-#line 6964 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6911 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("declare"))); }
     break;
 
-  case 942:
+  case 935:
 /* Line 661 of lalr1.cc  */
-#line 6965 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6912 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("construction"))); }
     break;
 
-  case 943:
+  case 936:
 /* Line 661 of lalr1.cc  */
-#line 6966 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6913 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ordering"))); }
     break;
 
-  case 944:
+  case 937:
 /* Line 661 of lalr1.cc  */
-#line 6967 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6914 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("default"))); }
     break;
 
-  case 945:
+  case 938:
 /* Line 661 of lalr1.cc  */
-#line 6968 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6915 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("copy-namespaces"))); }
     break;
 
-  case 946:
+  case 939:
 /* Line 661 of lalr1.cc  */
-#line 6969 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6916 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("option"))); }
     break;
 
-  case 947:
+  case 940:
 /* Line 661 of lalr1.cc  */
-#line 6970 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6917 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("version"))); }
     break;
 
-  case 948:
+  case 941:
 /* Line 661 of lalr1.cc  */
-#line 6971 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6918 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("import"))); }
     break;
 
-  case 949:
+  case 942:
 /* Line 661 of lalr1.cc  */
-#line 6972 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6919 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema"))); }
     break;
 
-  case 950:
+  case 943:
 /* Line 661 of lalr1.cc  */
-#line 6973 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6920 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("module"))); }
     break;
 
-  case 951:
+  case 944:
 /* Line 661 of lalr1.cc  */
-#line 6974 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6921 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("function"))); }
     break;
 
-  case 952:
+  case 945:
 /* Line 661 of lalr1.cc  */
-#line 6975 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6922 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("score"))); }
     break;
 
-  case 953:
+  case 946:
 /* Line 661 of lalr1.cc  */
-#line 6976 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6923 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("contains"))); }
     break;
 
-  case 954:
+  case 947:
 /* Line 661 of lalr1.cc  */
-#line 6977 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6924 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("weight"))); }
     break;
 
-  case 955:
+  case 948:
 /* Line 661 of lalr1.cc  */
-#line 6978 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6925 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("window"))); }
     break;
 
-  case 956:
+  case 949:
 /* Line 661 of lalr1.cc  */
-#line 6979 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6926 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("distance"))); }
     break;
 
-  case 957:
+  case 950:
 /* Line 661 of lalr1.cc  */
-#line 6980 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6927 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("occurs"))); }
     break;
 
-  case 958:
+  case 951:
 /* Line 661 of lalr1.cc  */
-#line 6981 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6928 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("times"))); }
     break;
 
-  case 959:
+  case 952:
 /* Line 661 of lalr1.cc  */
-#line 6982 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6929 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("same"))); }
     break;
 
-  case 960:
+  case 953:
 /* Line 661 of lalr1.cc  */
-#line 6983 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6930 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("different"))); }
     break;
 
-  case 961:
+  case 954:
 /* Line 661 of lalr1.cc  */
-#line 6984 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6931 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lowercase"))); }
     break;
 
-  case 962:
+  case 955:
 /* Line 661 of lalr1.cc  */
-#line 6985 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6932 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("uppercase"))); }
     break;
 
-  case 963:
+  case 956:
 /* Line 661 of lalr1.cc  */
-#line 6986 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6933 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("relationship"))); }
     break;
 
-  case 964:
+  case 957:
 /* Line 661 of lalr1.cc  */
-#line 6987 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6934 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("levels"))); }
     break;
 
-  case 965:
+  case 958:
 /* Line 661 of lalr1.cc  */
-#line 6988 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6935 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("language"))); }
     break;
 
-  case 966:
+  case 959:
 /* Line 661 of lalr1.cc  */
-#line 6989 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6936 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("any"))); }
     break;
 
-  case 967:
+  case 960:
 /* Line 661 of lalr1.cc  */
-#line 6990 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6937 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("all"))); }
     break;
 
-  case 968:
+  case 961:
 /* Line 661 of lalr1.cc  */
-#line 6991 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6938 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("exactly"))); }
     break;
 
-  case 969:
+  case 962:
 /* Line 661 of lalr1.cc  */
-#line 6992 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6939 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("words"))); }
     break;
 
-  case 970:
+  case 963:
 /* Line 661 of lalr1.cc  */
-#line 6993 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6940 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sentences"))); }
     break;
 
-  case 971:
+  case 964:
 /* Line 661 of lalr1.cc  */
-#line 6994 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6941 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sentence"))); }
     break;
 
-  case 972:
+  case 965:
 /* Line 661 of lalr1.cc  */
-#line 6995 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6942 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("phrase"))); }
     break;
 
-  case 973:
+  case 966:
 /* Line 661 of lalr1.cc  */
-#line 6996 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6943 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("paragraph"))); }
     break;
 
-  case 974:
+  case 967:
 /* Line 661 of lalr1.cc  */
-#line 6997 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6944 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("paragraphs"))); }
     break;
 
-  case 975:
+  case 968:
 /* Line 661 of lalr1.cc  */
-#line 6998 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6945 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("modify"))); }
     break;
 
-  case 976:
+  case 969:
 /* Line 661 of lalr1.cc  */
-#line 6999 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6946 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("first"))); }
     break;
 
-  case 977:
+  case 970:
 /* Line 661 of lalr1.cc  */
-#line 7000 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6947 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("append"))); }
     break;
 
-  case 978:
+  case 971:
 /* Line 661 of lalr1.cc  */
-#line 7001 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6948 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("insert"))); }
     break;
 
-  case 979:
+  case 972:
 /* Line 661 of lalr1.cc  */
-#line 7002 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6949 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("replace"))); }
     break;
 
-  case 980:
+  case 973:
 /* Line 661 of lalr1.cc  */
-#line 7003 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6950 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("rename"))); }
     break;
 
-  case 981:
+  case 974:
 /* Line 661 of lalr1.cc  */
-#line 7004 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6951 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("delete"))); }
     break;
 
-  case 982:
+  case 975:
 /* Line 661 of lalr1.cc  */
-#line 7005 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6952 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("before"))); }
     break;
 
-  case 983:
+  case 976:
 /* Line 661 of lalr1.cc  */
-#line 7006 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6953 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("after"))); }
     break;
 
-  case 984:
+  case 977:
 /* Line 661 of lalr1.cc  */
-#line 7007 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6954 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("revalidation"))); }
     break;
 
-  case 985:
+  case 978:
 /* Line 661 of lalr1.cc  */
-#line 7008 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6955 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("with"))); }
     break;
 
-  case 986:
+  case 979:
 /* Line 661 of lalr1.cc  */
-#line 7009 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6956 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("nodes"))); }
     break;
 
-  case 987:
+  case 980:
 /* Line 661 of lalr1.cc  */
-#line 7010 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6957 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("last"))); }
     break;
 
-  case 988:
+  case 981:
 /* Line 661 of lalr1.cc  */
-#line 7011 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6958 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("into"))); }
     break;
 
-  case 989:
+  case 982:
 /* Line 661 of lalr1.cc  */
-#line 7012 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6959 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("simple"))); }
     break;
 
-  case 990:
+  case 983:
 /* Line 661 of lalr1.cc  */
-#line 7013 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6960 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sequential"))); }
     break;
 
-  case 991:
+  case 984:
 /* Line 661 of lalr1.cc  */
-#line 7014 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6961 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("updating"))); }
     break;
 
-  case 992:
+  case 985:
 /* Line 661 of lalr1.cc  */
-#line 7015 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6962 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ordered"))); }
     break;
 
-  case 993:
+  case 986:
 /* Line 661 of lalr1.cc  */
-#line 7016 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6963 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("unordered"))); }
     break;
 
-  case 994:
+  case 987:
 /* Line 661 of lalr1.cc  */
-#line 7017 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6964 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("returning"))); }
     break;
 
-  case 995:
+  case 988:
 /* Line 661 of lalr1.cc  */
-#line 7018 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6965 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("exit"))); }
     break;
 
-  case 996:
+  case 989:
 /* Line 661 of lalr1.cc  */
-#line 7019 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6966 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("loop"))); }
     break;
 
-  case 997:
+  case 990:
 /* Line 661 of lalr1.cc  */
-#line 7020 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6967 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("break"))); }
     break;
 
-  case 998:
+  case 991:
 /* Line 661 of lalr1.cc  */
-#line 7021 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6968 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("continue"))); }
     break;
 
-  case 999:
+  case 992:
 /* Line 661 of lalr1.cc  */
-#line 7022 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6969 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("try"))); }
     break;
 
-  case 1000:
+  case 993:
 /* Line 661 of lalr1.cc  */
-#line 7023 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6970 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("catch"))); }
     break;
 
-  case 1001:
+  case 994:
 /* Line 661 of lalr1.cc  */
-#line 7024 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6971 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("using"))); }
     break;
 
-  case 1002:
+  case 995:
 /* Line 661 of lalr1.cc  */
-#line 7025 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6972 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("set"))); }
     break;
 
-  case 1003:
+  case 996:
 /* Line 661 of lalr1.cc  */
-#line 7026 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6973 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("index"))); }
     break;
 
-  case 1004:
+  case 997:
 /* Line 661 of lalr1.cc  */
-#line 7027 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6974 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("unique"))); }
     break;
 
-  case 1005:
+  case 998:
 /* Line 661 of lalr1.cc  */
-#line 7028 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6975 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("non"))); }
     break;
 
-  case 1006:
+  case 999:
 /* Line 661 of lalr1.cc  */
-#line 7029 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6976 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("on"))); }
     break;
 
-  case 1007:
+  case 1000:
 /* Line 661 of lalr1.cc  */
-#line 7030 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6977 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("range"))); }
     break;
 
-  case 1008:
+  case 1001:
 /* Line 661 of lalr1.cc  */
-#line 7031 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6978 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("equality"))); }
     break;
 
-  case 1009:
+  case 1002:
 /* Line 661 of lalr1.cc  */
-#line 7032 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6979 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("manually"))); }
     break;
 
-  case 1010:
+  case 1003:
 /* Line 661 of lalr1.cc  */
-#line 7033 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6980 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("automatically"))); }
     break;
 
-  case 1011:
+  case 1004:
 /* Line 661 of lalr1.cc  */
-#line 7034 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6981 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("maintained"))); }
     break;
 
-  case 1012:
+  case 1005:
 /* Line 661 of lalr1.cc  */
-#line 7035 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6982 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("decimal-format"))); }
     break;
 
-  case 1013:
+  case 1006:
 /* Line 661 of lalr1.cc  */
-#line 7036 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6983 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("decimal-separator"))); }
     break;
 
-  case 1014:
+  case 1007:
 /* Line 661 of lalr1.cc  */
-#line 7037 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6984 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("grouping-separator"))); }
     break;
 
-  case 1015:
+  case 1008:
 /* Line 661 of lalr1.cc  */
-#line 7038 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6985 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("infinity"))); }
     break;
 
-  case 1016:
+  case 1009:
 /* Line 661 of lalr1.cc  */
-#line 7039 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6986 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("minus-sign"))); }
     break;
 
-  case 1017:
+  case 1010:
 /* Line 661 of lalr1.cc  */
-#line 7040 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6987 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("NaN"))); }
     break;
 
-  case 1018:
+  case 1011:
 /* Line 661 of lalr1.cc  */
-#line 7041 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6988 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("percent"))); }
     break;
 
-  case 1019:
+  case 1012:
 /* Line 661 of lalr1.cc  */
-#line 7042 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6989 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("per-mille"))); }
     break;
 
-  case 1020:
+  case 1013:
 /* Line 661 of lalr1.cc  */
-#line 7043 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6990 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("zero-digit"))); }
     break;
 
-  case 1021:
+  case 1014:
 /* Line 661 of lalr1.cc  */
-#line 7044 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6991 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("digit"))); }
     break;
 
-  case 1022:
+  case 1015:
 /* Line 661 of lalr1.cc  */
-#line 7045 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6992 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("pattern-separator"))); }
     break;
 
-  case 1023:
+  case 1016:
 /* Line 661 of lalr1.cc  */
-#line 7046 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6993 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("collection"))); }
     break;
 
-  case 1024:
+  case 1017:
 /* Line 661 of lalr1.cc  */
-#line 7047 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6994 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("const"))); }
     break;
 
-  case 1025:
+  case 1018:
 /* Line 661 of lalr1.cc  */
-#line 7048 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6995 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("append-only"))); }
     break;
 
-  case 1026:
+  case 1019:
 /* Line 661 of lalr1.cc  */
-#line 7049 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6996 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("queue"))); }
     break;
 
-  case 1027:
+  case 1020:
 /* Line 661 of lalr1.cc  */
-#line 7050 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6997 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("mutable"))); }
     break;
 
-  case 1028:
+  case 1021:
 /* Line 661 of lalr1.cc  */
-#line 7051 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6998 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("read-only"))); }
     break;
 
-  case 1029:
+  case 1022:
 /* Line 661 of lalr1.cc  */
-#line 7052 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 6999 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("integrity"))); }
     break;
 
-  case 1030:
+  case 1023:
 /* Line 661 of lalr1.cc  */
-#line 7053 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7000 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("constraint"))); }
     break;
 
-  case 1031:
+  case 1024:
 /* Line 661 of lalr1.cc  */
-#line 7054 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7001 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("check"))); }
     break;
 
-  case 1032:
+  case 1025:
 /* Line 661 of lalr1.cc  */
-#line 7055 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7002 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("key"))); }
     break;
 
-  case 1033:
+  case 1026:
 /* Line 661 of lalr1.cc  */
-#line 7056 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7003 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("foreach"))); }
     break;
 
-  case 1034:
+  case 1027:
 /* Line 661 of lalr1.cc  */
-#line 7057 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7004 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("foreign"))); }
     break;
 
-  case 1035:
+  case 1028:
 /* Line 661 of lalr1.cc  */
-#line 7058 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7005 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("keys"))); }
     break;
 
-  case 1036:
+  case 1029:
 /* Line 661 of lalr1.cc  */
-#line 7059 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7006 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ancestor"))); }
     break;
 
-  case 1037:
+  case 1030:
 /* Line 661 of lalr1.cc  */
-#line 7060 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7007 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("child"))); }
     break;
 
-  case 1038:
+  case 1031:
 /* Line 661 of lalr1.cc  */
-#line 7061 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7008 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("descendant"))); }
     break;
 
-  case 1039:
+  case 1032:
 /* Line 661 of lalr1.cc  */
-#line 7062 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7009 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("parent"))); }
     break;
 
-  case 1040:
+  case 1033:
 /* Line 661 of lalr1.cc  */
-#line 7063 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7010 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("preceding"))); }
     break;
 
-  case 1041:
+  case 1034:
 /* Line 661 of lalr1.cc  */
-#line 7064 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7011 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("self"))); }
     break;
 
-  case 1042:
+  case 1035:
 /* Line 661 of lalr1.cc  */
-#line 7065 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7012 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("following"))); }
     break;
 
-  case 1043:
+  case 1036:
 /* Line 661 of lalr1.cc  */
-#line 7066 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7013 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ancestor-or-self"))); }
     break;
 
-  case 1044:
+  case 1037:
 /* Line 661 of lalr1.cc  */
-#line 7067 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7014 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("descendant-or-self"))); }
     break;
 
-  case 1045:
+  case 1038:
 /* Line 661 of lalr1.cc  */
-#line 7068 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7015 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("following-sibling"))); }
     break;
 
-  case 1046:
+  case 1039:
 /* Line 661 of lalr1.cc  */
-#line 7069 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7016 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("preceding-sibling"))); }
     break;
 
-  case 1047:
+  case 1040:
 /* Line 661 of lalr1.cc  */
-#line 7070 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7017 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("position"))); }
     break;
 
-  case 1048:
+  case 1041:
 /* Line 661 of lalr1.cc  */
-#line 7072 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7019 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("null"))); }
     break;
 
-  case 1049:
+  case 1042:
 /* Line 661 of lalr1.cc  */
-#line 7073 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7020 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("true"))); }
     break;
 
-  case 1050:
+  case 1043:
 /* Line 661 of lalr1.cc  */
-#line 7074 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7021 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("false"))); }
     break;
 
-  case 1051:
+  case 1044:
 /* Line 661 of lalr1.cc  */
-#line 7075 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7022 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("select"))); }
     break;
 
-  case 1052:
+  case 1045:
 /* Line 661 of lalr1.cc  */
-#line 7076 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7023 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("jsoniq"))); }
     break;
 
-  case 1053:
+  case 1046:
 /* Line 661 of lalr1.cc  */
-#line 7082 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
+#line 7029 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), true); }
     break;
 
 
 /* Line 661 of lalr1.cc  */
-#line 11050 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
+#line 10986 "/Users/zorba/Code/zorba/release/src/compiler/parser/jsoniq_parser.cpp"
 	default:
           break;
       }
@@ -11320,200 +11256,198 @@
 
   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
      STATE-NUM.  */
-  const short int jsoniq_parser::yypact_ninf_ = -1566;
+  const short int jsoniq_parser::yypact_ninf_ = -1540;
   const short int
   jsoniq_parser::yypact_[] =
   {
-      5342, -1566, -1566, -1566, -1566,  6294,  6294,  6294,  6294, -1566,
-   -1566,    23,    48, -1566,   127,   261, -1566, -1566, -1566,   476,
-   -1566, -1566, -1566,   201,   298,   756,  4827,   472,   548,   840,
-   -1566,   -26, -1566,   573, -1566, -1566, -1566, -1566, -1566,   829,
-   -1566,   605,   619, -1566, -1566, -1566, -1566,   685, -1566,   834,
-   -1566,   729,   799, -1566,   314, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,   839,
-     862, -1566, -1566, -1566, -1566,   703, 15458, -1566, -1566, -1566,
-     867, -1566, -1566, -1566,   876, -1566,   873,   875, -1566, -1566,
-   20328, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,   896,
-   -1566, -1566,   894,   899, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566,  6294,  8822,  9138, 20328, -1566, -1566,   870, -1566, -1566,
-   -1566, -1566,   874, -1566, -1566,   908, 20328, -1566, 17006,   912,
-     915, -1566, -1566, -1566, -1566,   925, -1566, -1566, 13246, -1566,
-   -1566, -1566, -1566, -1566, -1566,   895, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566,   147, -1566,   833, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, 21238,   898,
-   16090, -1566, 21540,   -78, -1566, -1566, -1566, -1566, -1566, -1566,
-     934, -1566,   807,   810,   811, -1566, -1566,   900,   905, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566,  5054, -1566, 13878, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566,  9454,  9770, -1566, 14194, -1566, -1566, -1566, -1566,
-   -1566,  5660,  6610,  1061, -1566,  6926, -1566, -1566,   740,    95,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566,   101, -1566, -1566, -1566, -1566, -1566,
-   -1566,   588, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-    6294, -1566, -1566, -1566, -1566,    37, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566,   125, -1566,   872, -1566, -1566,
-   -1566,   725, -1566,   434, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566,   897,   974, -1566, -1566,  1079,   814,   970,   670,   554,
-     566,   700, -1566,  1021,   879,   972,   973, 11034, -1566,   880,
-   -1566, -1566,    11, -1566, -1566, 13562, -1566,   789, -1566,   916,
-   15458, -1566,   916, 15458, -1566, -1566, -1566,    42, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566,   920, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566,   794, -1566, -1566, -1566, -1566, -1566,   892,
-   -1566,  6294,   902,   903,   914,  6294,    93,    93,  1052,   270,
-     276,   454, 21838, 20328,   437,  1036, 20328,   931,   978,   672,
-   20328,   777,   848, 20328, 20328,   791,   828,    44, -1566, -1566,
-   -1566, 20328,  6294,   917,  6294,   394, 11350, 17308, 20328,   489,
-     947, 11350,  1102,   374,   363, 20328,   985,   963,  1000, -1566,
-     921, 11350, 17610, 20328, 20328, 20328,  6294,   923, 11350, 11350,
-   20328,  6294,   957,   958, -1566, -1566, -1566, 11350, 17912,   956,
-   -1566,   959, -1566, -1566, -1566, -1566,   960, -1566,   961, -1566,
-   -1566, -1566, -1566, -1566,   962, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, 20328, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,   977,
-   20328, -1566, -1566,   937,  5978,   993,   382,  1002,   968,   975,
-     979, 20328,  6294, -1566,   976,   142, -1566,   725, -1566,   139,
-    1092, 11350, 11350, -1566,   203, -1566, -1566,  1113, -1566, -1566,
-   -1566, -1566, 11350,   922, -1566,  1105,   981,   984,   986,   987,
-     990, 11350, 12614, 20936,    42,   794, 14510, 15142, 14826,   -18,
-     340, 11350, 20936,   628, 11350,   909,   904, 20328,   940,   955,
-   11350, 11350,  6294,   907, 20328, -1566, -1566,    64, -1566,    65,
-   14826,   910,  6610, -1566, -1566, -1566, -1566, -1566,   127,   840,
-     113,   115,  1145,  7242,  3541,  7558,  3868,   876, -1566, -1566,
-     176,   876, -1566, 11350,  4500, -1566,  1032,   784,   -26,   992,
-     982,   991, -1566, -1566, 11350,   819, -1566, -1566,  6294, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566,   878,   883, 20328,  1044,
-   11666, 11666, 11982, -1566, 11982, 11982, -1566, 11982, -1566, 11982,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, 11982, 11982,  1093,
-   11982, 11982, 11982, 11982, 11982, 11982, 11982, 11982, 11982, 11982,
-   11982, 11982,   930,  1074,  1081,  1082, -1566, -1566, -1566, 12930,
-    6294, -1566, -1566, 13246, 13246, 11350,   916, -1566, -1566,   916,
-   -1566, 16393, 10086,  8190,   916,   995,  1023,  8506, -1566, -1566,
-   -1566, -1566,    13, -1566,    36, -1566, -1566, -1566, -1566, -1566,
-   -1566,  1071,  1073,   472,  1155, -1566, -1566, 21838,  1355,   736,
-   20328,  1024,  1026,  1355,  1052,  1062,  1056, -1566, -1566, -1566,
-     473,   941,  1097,   889, 20328,  1051, 11350,  1077, 20328, 20328,
-   -1566,  1063,  1013, -1566,  1020,   959,   619, -1566,  1018,  1019,
-     195, -1566,   324,   335,  1103, -1566,    39, 20328,  1115,   338,
-   -1566,  6294, -1566,   146, -1566, 20328,  1117,  1170, 20328,  1052,
-    1119,   349, 20328, 11350,   -26, -1566,   267,  1029, -1566,  1030,
-    1031,  1035,    25, -1566,    66,  1040, -1566,   151,   159,  1065,
-   -1566,  1041,  6294,  6294,   375, -1566,   347,   468,   649, 11350,
-      29, -1566, -1566, 11350, 11350, -1566, 11350, 11350, 11350, 11350,
-   -1566, 11350, -1566, 11350, -1566, 20328,  1092, -1566,   317,   377,
-     402, -1566, -1566, -1566,   406, -1566,    17, -1566, -1566,    42,
-     264,   307,   306,   342, 11350, 11350,  1132,   687, 11350,   988,
-   20634,   996,   114, -1566,  1085, -1566, -1566,  1038,   161,  5978,
-     409, 15774,   907, -1566,  1103, -1566, -1566,   998, 11350, -1566,
-     740,   750,  1201,   632, -1566, -1566,   123, -1566, -1566, -1566,
-     128, -1566,   199, -1566, -1566, -1566, -1566, -1566,  4184, -1566,
-   -1566, -1566, 20328,  1064, 11350, 12298, -1566, -1566, -1566, -1566,
-   -1566,  1103, 20328,    28,   974, -1566, -1566, -1566, -1566, -1566,
-   11982, -1566, -1566, -1566,    79, -1566,   554,   554,    20,   566,
-     566,   566,   566,   700,   700, -1566, -1566, 19422, 19422, 20328,
-   20328, -1566,  1054, -1566, -1566,   259, -1566, 10402, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566,   478, -1566, -1566, -1566,   485,
-      93, -1566, -1566,   624,   625,    53, -1566,   472, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,  1355, -1566,
-    1106, 19724,  1098, 11350, -1566, -1566, -1566,  1146,  1052,  1052,
-    1355, -1566,   871,  1052,   692, 20328,   679,   682,  1215, -1566,
-   -1566,   954,   701, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566,   473,    41,  1014,   642, 11350, -1566,
-   20328,  1153,   944,  1052, -1566, -1566, -1566, -1566,  1096, 20328,
-   -1566, 20328, -1566, 20026,  1123, 19422,  1134, 11350,   -41,  1107,
-      45,  1146, 19422,  1135,  1160,  1072,  1060,  1127,  1052,  1100,
-    1129,  1167,  1052, 11350,   -56, -1566, -1566, -1566,  1110, -1566,
-   -1566, -1566, -1566,  1147, 11350, 11350,  1118, -1566,  1168,  1169,
-    6294, -1566,  1086,  1087,  1121, 20328, -1566, 20328, -1566, 11350,
-    1130,  1088, 11350, -1566,  1150,  1158, -1566,   182,   186,   194,
-    1243, -1566,   492, -1566,   698,  1138, -1566, -1566,  1252, -1566,
-     431, 11350, 11350, 11350,   626, 11350, 11350, 11350, 11350, 11350,
-    1193, -1566, 11350, 11350, -1566, 11350, 11350,   355, 20936,  1178,
-   11350, 11350, -1566,  7874,   137,  1048, -1566,   285, -1566, 11350,
-   -1566,   134,   359,   199,  7558,  3868,  7558,  1220, -1566, -1566,
-   11350,   800,  1198, -1566, 20328,  1194,  1204, -1566,   514,  1049,
-   -1566, -1566,   757,    28, -1566, 11350,    79,   525,   316, -1566,
-    1022,    82,  1057,  1050, -1566, -1566,   848, -1566,  1042,   677,
-    1162,  1164, 18214,  1166,  1173,  1174,  1176,  1177, -1566,   673,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-    1172, -1566, -1566, -1566, -1566, -1566,   224, 10718, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566,   761, -1566,  1295,
-   19724,   841, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566,  1045, -1566, -1566,  1297, -1566, -1566, -1566, -1566, -1566,
-     712,  1298, -1566,    96, -1566, -1566, -1566,   956,   298,   573,
-     960,   605,   961,   962, -1566,  1173,  1174,  1176, -1566,   673,
-     673, 12930,  1043,  1027, -1566,  1146,    41,  1108,  1151,  6294,
-    1154,  1156,  1200,  1159,  1163, 20328, -1566,   530, -1566, 20328,
-   -1566, 11350,  1199, 11350,  1223, 11350,   -21,  1206, -1566, -1566,
-   -1566, 19422, -1566,  6294,  1052,  1245, -1566, -1566, -1566,  1052,
-    1245, -1566, 11350,  1212,  6294, 20328, -1566, -1566, 11350, 11350,
-     634, -1566,   414,   805, -1566, 18516,   822, -1566,   831, -1566,
-    1175, -1566, -1566,  6294,  1171,  1179, -1566, 11350, -1566, -1566,
-   11350, 11350,  1182,  1168,  1257, -1566,  1229, -1566,   869, -1566,
-   -1566,  1357, -1566, -1566,  6294, 20328, -1566,   969, -1566, -1566,
-   -1566,  6294,  1183,  1137,  1139, -1566, -1566, -1566,  1140,  1144,
-   -1566, -1566, -1566,  1269, -1566,  1046, -1566, -1566, -1566,  1131,
-   11350,   444, 20328,   650, -1566,  1226,  1227,  1230,  1234, -1566,
-     872,   725, 15774,  1048, -1566,  7874, 15774, -1566, -1566,  1201,
-     420, -1566, -1566, -1566,  1198, -1566,  1052, -1566,   877, -1566,
-     630,  1283, -1566, 11350,   666,  1052, -1566, 12298, 11350,  1244,
-   -1566,  1273,  1277, 11350, 20328,   890,  1319, -1566, -1566, -1566,
-     425,  1210, -1566,    79,  1143, -1566, -1566,   -61, -1566,   180,
-     289,  1149,    79,   180, 11982, -1566,   131, -1566, -1566, -1566,
-   -1566, -1566, -1566,    79,  1251,  1120,   941,   289, -1566, -1566,
-    1122,  1331, -1566, -1566, -1566, 16695,  1225, -1566,  1228,  1231,
-    1232,  1233,  1238,  1240, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,  1385,    10,
-    1388,    10,  1152,  1314, -1566, -1566,  1259, 20328,  1184, -1566,
-   -1566, 12930, -1566,  1246, -1566, -1566, -1566, -1566, -1566, -1566,
-   11350,  1284, -1566, -1566, 11350, -1566,   560, -1566, 11350,  1299,
-   11350, -1566,  1304,  1321,  1353,  1052,  1245, -1566, 11350,  1266,
-   -1566, -1566, -1566,   650, -1566,   414, 11350,  6294,   650,   414,
-   -1566, 20328,   480, -1566, 18818,   465, -1566, 19120,   650, -1566,
-   -1566,  1267, -1566, -1566, -1566, -1566, -1566, 11350,   832,  1243,
-   20328,  1053, -1566,  1270,  1243, 20328, -1566,  1271, -1566, 11350,
-   11350, 11350, 11350,  1141, 11350, 11350, -1566, 11350, -1566, 11350,
-   11350, 11350, 11350,  7874,   526, -1566, -1566, -1566, -1566, -1566,
-    1283, -1566, -1566, -1566, 11350,  1310, -1566, -1566, -1566, 11350,
-   20328, 20328, -1566,   823, -1566, 11350, -1566, -1566, -1566,  1272,
-   11982, -1566, -1566, -1566, -1566, -1566,    89, 11982, 11982,   610,
-   -1566,  1057, -1566,   413, -1566,  1050,    79,  1305, -1566, -1566,
-    1180, -1566, -1566, -1566, -1566,  1364,  1279, -1566,   511, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566,    54,    54, -1566,
-      10, -1566, -1566,   512, -1566,  1431,   304,  1368,  1280, 12930,
-     -40,  1181,  1300, -1566, -1566, 11350, -1566, 11350,  1320, -1566,
-   11350, -1566,  7874, 11350,  1052, -1566, -1566, -1566, 11350, 11350,
-   -1566, -1566, -1566,  7874,  7874,  1375, 19422,  6294, 20328,   480,
-   20328, 11350, 20328,   480,  7874, -1566,   534,    52,  1243, 20328,
-   -1566,  1276,  1243, -1566, -1566, -1566, -1566, -1566, 11350, -1566,
-   -1566, -1566, -1566,   234,   250,   254, 11350, -1566, -1566,  1194,
-   11350, -1566, -1566,  1418, -1566, -1566, -1566,   566, 11982, 11982,
-      20,   721, -1566, -1566, -1566, -1566, -1566, -1566, 11350, -1566,
-   19422, -1566, 19422,  1381, -1566, -1566, -1566,  1447, -1566, -1566,
-   -1566,  1207,  1372, -1566, -1566,  1373, -1566,   847, 20328,  1363,
-    1253, 20328, 12930, -1566, -1566, 11350, -1566, -1566, -1566,  1245,
-   -1566, -1566, 19422, -1566, -1566, -1566,  1390, 11350,   650, -1566,
-    1391,  7874, -1566, 20328,   470,   645, -1566,  1288,  1243, -1566,
-    1289, -1566,  1292,  1168,  1169,   426, -1566,  1194,  1370,    20,
-      20, 11982,   429, -1566, -1566, 19422, -1566, -1566,  1368, 12930,
-   -1566,  1283,  1185, 20328,  1374,  1263,  1373, -1566,   480, 19422,
-    6294, 19422,   650, -1566, -1566,  1389,   587, -1566, -1566, -1566,
-   -1566,  1311,   669, -1566, -1566, -1566,  1301, -1566,  7874,   836,
-   -1566, -1566, 20328,    20, -1566, -1566, -1566, -1566, -1566, 11350,
-    1190, 20328,  1383,  6294,   480, -1566, -1566,   480, 11350, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566,  1384, -1566, -1566,  1205,
-    1195, 20328, -1566, -1566, 11350,  7874, 20328,  1196, 11350,  1197,
-     650, 12930, -1566, 12930,  7874, -1566,  1306,  1217, 20328,  1274,
-    1392, 20328,  1202, 12930, -1566
+      5105, -1540, -1540, -1540, -1540,  6057,  6057,  6057,  6057, -1540,
+   -1540,   243,   270, -1540,    78,   294, -1540, -1540, -1540,   844,
+   -1540, -1540, -1540,   311,   477,   845,  4590,   539,   563,   792,
+   -1540,    94, -1540,   600, -1540, -1540, -1540, -1540, -1540,   874,
+   -1540,   619,   707, -1540, -1540, -1540, -1540,   524, -1540,   876,
+   -1540,   757,   872, -1540,   333, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,   643,
+     787, -1540, -1540, -1540, -1540,   788, 13641, -1540, -1540, -1540,
+     812, -1540, -1540, -1540,   584, -1540,   923,   944, -1540, -1540,
+   18194, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,   951,
+   -1540, -1540,   947,   948, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540,  6057,  8585,  8901, 18194, -1540, -1540,   919, -1540, -1540,
+   -1540, -1540,   921, -1540, -1540,   953, 18194, -1540, 14872,   957,
+     958, -1540, -1540, -1540, -1540,   959, -1540, -1540, 12693, -1540,
+   -1540, -1540, -1540, -1540, -1540,   931, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540,    66, -1540,   856, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,   -77,   930,
+     186, -1540,   191,   -31, -1540, -1540, -1540, -1540, -1540, -1540,
+     972, -1540,   850,   852,   846, -1540, -1540,   934,   943, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540,  4817, -1540, 13325, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540,  9217,  9533, -1540,   780, -1540, -1540, -1540, -1540,
+   -1540,  5423,  6373,  1101, -1540,  6689, -1540, -1540,   847,   109,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540,   128, -1540, -1540, -1540, -1540, -1540,
+   -1540,   506, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+    6057, -1540, -1540, -1540, -1540,   280, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540,   176, -1540,   910, -1540, -1540,
+   -1540,   659, -1540,   762, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540,   938,  1016, -1540, -1540,   807,   857,  1010,    29,   598,
+     271,   441, -1540,  1065,   914,  1015,  1017, 10797, -1540,   924,
+   -1540, -1540,   306, -1540, -1540, 13009, -1540,   798, -1540,   965,
+   13641, -1540,   965, 13641, -1540, -1540, -1540,   736, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540,   964, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540,   467, -1540, -1540, -1540, -1540, -1540,   939,
+   -1540,  6057,   940,   945,   946,  6057,   304,   304,  1093,   678,
+     756,   609, 18794, 18194,    12,  1082, 18194,   978,  1014,   638,
+   18194,   816,   883, 18194, 18194,   826,   833,    96, -1540, -1540,
+   -1540, 18194,  6057,   949,  6057,   408, 11113, 15174, 18194,   305,
+     986, 11113,  1141,    84,   443, 18194,  1024,  1001,  1039, -1540,
+     960, 11113, 15476, 18194, 18194, 18194,  6057,   961, 11113, 11113,
+   18194,  6057,   995,   996, -1540, -1540, -1540, 11113, 15778,   994,
+   -1540,   999, -1540, -1540, -1540, -1540,  1000, -1540,  1002, -1540,
+   -1540, -1540, -1540, -1540,  1004, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, 18194, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,  1009,
+   18194, -1540, -1540,   980,  5741,  1036,   407,  1040,  1006,  1008,
+    1011, 18194,  6057, -1540,  1012,   106, -1540,   659, -1540,   119,
+    1136, 11113, 11113, -1540,   114, -1540, -1540,  1156, -1540, -1540,
+   -1540, -1540, 11113,   962, -1540,  1144, 11113, 11113, 18500, 11113,
+   11113, 11113, 11113, 18500, 11113,   942, 18194,   983,   984, 11113,
+   11113,  6057,   926, 18194, -1540, -1540,    58, -1540,    55, 11113,
+    6373, -1540, -1540, -1540, -1540, -1540,    78,   792,   129,   137,
+    1178,  7005,  3304,  7321,  3631,   584, -1540, -1540,   369,   584,
+   -1540, 11113,  4263, -1540,  1063,   690,    94,  1018,  1013,  1019,
+   -1540, -1540, 11113,   706, -1540, -1540,  6057, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540,   895,   896, 18194,  1069, 11429, 11429,
+   11745, -1540, 11745, 11745, -1540, 11745, -1540, 11745, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, 11745, 11745,  1118, 11745, 11745,
+   11745, 11745, 11745, 11745, 11745, 11745, 11745, 11745, 11745, 11745,
+     954,  1097,  1098,  1099, -1540, -1540, -1540, 12377,  6057, -1540,
+   -1540, 12693, 12693, 11113,   965, -1540, -1540,   965, -1540, 14259,
+    9849,  7953,   965,  1007,  1045,  8269, -1540, -1540, -1540, -1540,
+     288, -1540,   331, -1540, -1540, -1540, -1540, -1540, -1540,  1089,
+    1090,   539,  1170, -1540, -1540, 18794,   937,   746, 18194,  1041,
+    1042,   937,  1093,  1072,  1068, -1540, -1540, -1540,   403,   955,
+    1110,   901, 18194,  1064, 11113,  1091, 18194, 18194, -1540,  1075,
+    1026, -1540,  1027,   999,   707, -1540,  1025,  1028,   125, -1540,
+     473,   486,  1106, -1540,    52, 18194,  1120,   489, -1540,  6057,
+   -1540,   130, -1540, 18194,  1121,  1172, 18194,  1093,  1122,   353,
+   18194, 11113,    94, -1540,   255,  1032, -1540,  1033,  1034,  1035,
+     319, -1540,   326,  1043, -1540,   139,   147,  1070, -1540,  1046,
+    6057,  6057,   269, -1540,   518,   546,   507, 11113,   335, -1540,
+   -1540, 11113, 11113, -1540, 11113, 11113, 11113, 11113, -1540, 11113,
+   -1540, 11113, -1540, 18194,  1136, -1540,   496,   296,   361, -1540,
+   -1540, -1540,   381, -1540,   287, -1540, -1540,  1071,  1077,  1078,
+    1079,  1080,   736,   467,   323,   428,   277,   118,  1129,   719,
+     993,   210,     9, -1540,  1083, -1540, -1540,  1048,   156,  5741,
+     402, 13957,   926, -1540,  1106, -1540, -1540,   998, -1540,   847,
+     773,  1205,   178, -1540, -1540,   140, -1540, -1540, -1540,   149,
+   -1540,   105, -1540, -1540, -1540, -1540, -1540,  3947, -1540, -1540,
+   -1540, 18194,  1073, 11113, 12061, -1540, -1540, -1540, -1540, -1540,
+    1106, 18194,    43,  1016, -1540, -1540, -1540, -1540, -1540, 11745,
+   -1540, -1540, -1540,   312, -1540,   598,   598,   635,   271,   271,
+     271,   271,   441,   441, -1540, -1540, 17288, 17288, 18194, 18194,
+   -1540,  1056, -1540, -1540,   150, -1540, 10165, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540,   549, -1540, -1540, -1540,   560,   304,
+   -1540, -1540,   734,   747,   789, -1540,   539, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540,   937, -1540,  1108,
+   17590,  1102, 11113, -1540, -1540, -1540,  1148,  1093,  1093,   937,
+   -1540,   920,  1093,   722, 18194,   459,   603,  1215, -1540, -1540,
+     956,   641, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540,   403,    41,  1020,   -90, 11113, -1540, 18194,
+    1152,   950,  1093, -1540, -1540, -1540, -1540,  1094, 18194, -1540,
+   18194, -1540, 17892,  1123, 17288,  1131, 11113,   -12,  1105,    47,
+    1148, 17288,  1132,  1161,  1074,  1057,  1124,  1093,  1100,  1126,
+    1164,  1093, 11113,    79, -1540, -1540, -1540,  1113, -1540, -1540,
+   -1540, -1540,  1150, 11113, 11113,  1128, -1540,  1171,  1174,  6057,
+   -1540,  1086,  1088,  1125, 18194, -1540, 18194, -1540, 11113,  1139,
+    1092, 11113, -1540,  1163,  1165, -1540,   160,   163,   166,  1254,
+   -1540,   552, -1540,   184,  1135, -1540, -1540,  1262, -1540,   723,
+   11113, 11113, 11113,   808, 11113, 11113, 11113, 11113, 11113, 11113,
+   11113, 11113, 11113, 18500,  1175, 11113, 11113, -1540,  7637,   133,
+    1044, -1540,    17, -1540, 11113,   154,   146,   105,  7321,  3631,
+    7321,  1213, -1540, -1540, 11113,   813,  1188, -1540, 18194,  1192,
+    1193, -1540,   513,  1047, -1540, -1540,   860,    43, -1540, 11113,
+     312,   693,   592, -1540,  1021,   421,  1038,  1049, -1540, -1540,
+     883, -1540,  1031,   720,  1142,  1151, 16080,  1153,  1155,  1158,
+    1160,  1162, -1540,   291, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540,  1173, -1540, -1540, -1540, -1540, -1540,
+     172, 10481, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540,   793, -1540,  1276, 17590,   865, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540,  1029, -1540, -1540,  1280, -1540,
+   -1540, -1540, -1540, -1540,   716,  1293, -1540,   753, -1540, -1540,
+   -1540,   994,   477,   600,  1000,   619,  1002,  1004, -1540,  1155,
+    1158,  1160, -1540,   291,   291, 12377,  1050,  1022, -1540,  1148,
+      41,  1095,  1133,  6057,  1138,  1143,  1181,  1147,  1149, 18194,
+   -1540,   545, -1540, 18194, -1540, 11113,  1180, 11113,  1207, 11113,
+     242,  1190, -1540, -1540, -1540, 17288, -1540,  6057,  1093,  1232,
+   -1540, -1540, -1540,  1093,  1232, -1540, 11113,  1197,  6057, 18194,
+   -1540, -1540, 11113, 11113,   696, -1540,    64,   697, -1540, 16382,
+     855, -1540,   864, -1540,  1157, -1540, -1540,  6057,  1167,  1169,
+   -1540, 11113, -1540, -1540, 11113, 11113,  1146,  1171,  1243, -1540,
+    1214, -1540,   440, -1540, -1540,  1342, -1540, -1540,  6057, 18194,
+   -1540,   743, -1540, -1540, -1540,  6057,  1176,  1111,  1114, -1540,
+   -1540, -1540,  1127,  1134, -1540, -1540, -1540,  1255, -1540, -1540,
+   -1540, -1540,  1116,   380, 18194,   851, -1540,  1206,  1209,  1212,
+    1216, -1540,   910,   659, 13957,  1044, -1540,  7637, 13957, -1540,
+   -1540,  1205,   531, -1540, -1540, -1540,  1188, -1540,  1093, -1540,
+     922, -1540,    92,  1269, -1540, 11113,   575,  1093, -1540, 12061,
+   11113,  1231, -1540,  1263,  1264, 11113, 18194,   974,  1303, -1540,
+   -1540, -1540,   424,  1198, -1540,   312,  1140, -1540, -1540,   -32,
+   -1540,   714,   123,  1145,   312,   714, 11745, -1540,   574, -1540,
+   -1540, -1540, -1540, -1540, -1540,   312,  1238,  1103,   955,   123,
+   -1540, -1540,  1096,  1310, -1540, -1540, -1540, 14561,  1202, -1540,
+    1204,  1210,  1211,  1218,  1219,  1220, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+    1364,    22,  1365,    22,  1137,  1289, -1540, -1540,  1229, 18194,
+    1154, -1540, -1540, 12377, -1540,  1224, -1540, -1540, -1540, -1540,
+   -1540, -1540, 11113,  1261, -1540, -1540, 11113, -1540,   547, -1540,
+   11113,  1266, 11113, -1540,  1275,  1285,  1319,  1093,  1232, -1540,
+   11113,  1233, -1540, -1540, -1540,   851, -1540,    64, 11113,  6057,
+     851,    64, -1540, 18194,    20, -1540, 16684,   527, -1540, 16986,
+     851, -1540, -1540,  1234, -1540, -1540, -1540, -1540, -1540, 11113,
+     866,  1254, 18194,   778, -1540,  1235,  1254, 18194, -1540,  1236,
+   -1540, 11113, 11113, 11113, 11113,  1104, 11113, 11113, -1540, 11113,
+   11113, 11113, 11113,  7637,   452, -1540, -1540, -1540, -1540, -1540,
+    1269, -1540, -1540, -1540, 11113,  1279, -1540, -1540, -1540, 11113,
+   18194, 18194, -1540,   398, -1540, 11113, -1540, -1540, -1540,  1239,
+   11745, -1540, -1540, -1540, -1540, -1540,   122, 11745, 11745,   -80,
+   -1540,  1038, -1540,   230, -1540,  1049,   312,  1272, -1540, -1540,
+    1159, -1540, -1540, -1540, -1540,  1333,  1247, -1540,   561, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540,    73,    73, -1540,
+      22, -1540, -1540,   568, -1540,  1401,    -5,  1339,  1249, 12377,
+     -28,  1166,  1267, -1540, -1540, 11113, -1540, 11113,  1290, -1540,
+   11113, -1540,  7637, 11113,  1093, -1540, -1540, -1540, 11113, 11113,
+   -1540, -1540, -1540,  7637,  7637,  1347, 17288,  6057, 18194,    20,
+   18194, 11113, 18194,    20,  7637, -1540,   579,    75,  1254, 18194,
+   -1540,  1244,  1254, -1540, -1540, -1540, -1540, -1540, 11113, -1540,
+   -1540, -1540,   207,   241,   248, 11113, -1540, -1540,  1192, 11113,
+   -1540, -1540,  1390, -1540, -1540, -1540,   271, 11745, 11745,   635,
+     709, -1540, -1540, -1540, -1540, -1540, -1540, 11113, -1540, 17288,
+   -1540, 17288,  1353, -1540, -1540, -1540,  1419, -1540, -1540, -1540,
+    1179,  1343, -1540, -1540,  1344, -1540,   822, 18194,  1334,  1225,
+   18194, 12377, -1540, -1540, 11113, -1540, -1540, -1540,  1232, -1540,
+   -1540, 17288, -1540, -1540, -1540,  1360, 11113,   851, -1540,  1362,
+    7637, -1540, 18194,   577,   485, -1540,  1259,  1254, -1540,  1268,
+   -1540,  1260,  1171,  1174,   444, -1540,  1192,  1346,   635,   635,
+   11745,   481, -1540, -1540, 17288, -1540, -1540,  1339, 12377, -1540,
+    1269,  1168, 18194,  1349,  1241,  1344, -1540,    20, 17288,  6057,
+   17288,   851, -1540, -1540,  1376,   608, -1540, -1540, -1540, -1540,
+    1291,   595, -1540, -1540, -1540,  1274, -1540,  7637,   869, -1540,
+   -1540, 18194,   635, -1540, -1540, -1540, -1540, -1540, 11113,  1177,
+   18194,  1355,  6057,    20, -1540, -1540,    20, 11113, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540,  1357, -1540, -1540,  1182,  1184,
+   18194, -1540, -1540, 11113,  7637, 18194,  1185, 11113,  1186,   851,
+   12377, -1540, 12377,  7637, -1540,  1277,  1187, 18194,  1251,  1366,
+   18194,  1189, 12377, -1540
   };
 
   /* YYDEFACT[S] -- default reduction number in state S.  Performed when
@@ -11522,33 +11456,33 @@
   const unsigned short int
   jsoniq_parser::yydefact_[] =
   {
-       165,   473,   474,   825,   475,   168,   168,   168,     0,   848,
-    1053,   120,   122,   647,   941,   950,   890,   853,   851,   827,
-     942,   945,   897,   857,   828,   830,     0,   951,   832,   948,
-     919,   899,   873,   829,   894,   895,   946,   943,   893,   834,
-     949,   835,   836,   990,  1002,   989,   891,   910,   904,   837,
-     892,   839,   838,   991,   928,   929,   896,   870,  1012,  1013,
-    1014,  1015,  1016,  1017,  1018,  1019,  1020,  1021,  1022,  1036,
-    1043,   918,   914,   905,   884,   826,     0,   913,   921,   930,
-    1037,   909,   505,   885,   886,   944,  1038,  1044,   906,   923,
-       0,   511,   462,   507,   916,   850,   907,   908,   937,   911,
-     927,   936,  1042,  1045,   856,   898,   939,   506,   926,   932,
-     831,   168,     0,     0,     0,   409,   924,   935,   940,   938,
-     917,   903,   992,   901,   902,  1039,     0,   408,     0,  1040,
-    1046,   933,   887,   912,  1051,  1041,   211,   440,     0,   472,
-     934,   915,   922,   931,   925,   993,   878,   883,   882,   881,
-     880,   879,   840,   900,     0,   849,  1052,   947,   871,  1048,
-    1049,  1050,   983,   982,   984,   855,   854,   874,   981,   833,
-     978,   986,   980,   979,   877,   920,   976,   988,   987,   975,
-     875,   985,   997,   998,   995,   996,   994,   841,   999,  1000,
-    1001,   967,   966,   953,   869,   862,   960,   956,   872,   868,
-     968,     0,   858,   859,   852,   861,   965,   964,   961,   957,
-     973,   974,   972,   963,   959,   952,   860,   971,   970,   864,
-     866,   865,   958,   962,   954,   867,   955,   863,   969,  1023,
-    1024,  1025,  1026,  1027,  1028,  1004,  1005,  1003,  1009,  1010,
-    1011,  1006,  1007,  1008,   876,  1029,  1030,  1031,  1032,  1033,
-    1034,  1035,     0,     0,   842,   977,  1047,   844,   843,   845,
-     846,   165,   165,     0,     2,   165,     9,    11,    23,     0,
+       165,   473,   474,   818,   475,   168,   168,   168,     0,   841,
+    1046,   120,   122,   647,   934,   943,   883,   846,   844,   820,
+     935,   938,   890,   850,   821,   823,     0,   944,   825,   941,
+     912,   892,   866,   822,   887,   888,   939,   936,   886,   827,
+     942,   828,   829,   983,   995,   982,   884,   903,   897,   830,
+     885,   832,   831,   984,   921,   922,   889,   863,  1005,  1006,
+    1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,  1015,  1029,
+    1036,   911,   907,   898,   877,   819,     0,   906,   914,   923,
+    1030,   902,   505,   878,   879,   937,  1031,  1037,   899,   916,
+       0,   511,   462,   507,   909,   843,   900,   901,   930,   904,
+     920,   929,  1035,  1038,   849,   891,   932,   506,   919,   925,
+     824,   168,     0,     0,     0,   409,   917,   928,   933,   931,
+     910,   896,   985,   894,   895,  1032,     0,   408,     0,  1033,
+    1039,   926,   880,   905,  1044,  1034,   211,   440,     0,   472,
+     927,   908,   915,   924,   918,   986,   871,   876,   875,   874,
+     873,   872,   833,   893,     0,   842,  1045,   940,   864,  1041,
+    1042,  1043,   976,   975,   977,   848,   847,   867,   974,   826,
+     971,   979,   973,   972,   870,   913,   969,   981,   980,   968,
+     868,   978,   990,   991,   988,   989,   987,   834,   992,   993,
+     994,   960,   959,   946,   862,   855,   953,   949,   865,   861,
+     961,     0,   851,   852,   845,   854,   958,   957,   954,   950,
+     966,   967,   965,   956,   952,   945,   853,   964,   963,   857,
+     859,   858,   951,   955,   947,   860,   948,   856,   962,  1016,
+    1017,  1018,  1019,  1020,  1021,   997,   998,   996,  1002,  1003,
+    1004,   999,  1000,  1001,   869,  1022,  1023,  1024,  1025,  1026,
+    1027,  1028,     0,     0,   835,   970,  1040,   837,   836,   838,
+     839,   165,   165,     0,     2,   165,     9,    11,    23,     0,
       28,    31,    36,    37,    38,    39,    40,    41,    42,    32,
       58,    59,    33,    34,     0,    76,    79,    80,    35,    81,
       82,     0,   118,    83,    84,    85,    86,    18,   162,   163,
@@ -11564,1904 +11498,1532 @@
      577,   578,   579,   468,   619,     0,   610,   618,   617,   616,
      615,   612,   614,   611,   613,   504,    43,   223,   224,   226,
      225,   227,   219,   500,   501,   502,   499,   229,   232,   228,
-     230,   231,   470,   824,   847,   941,   950,   948,  1052,     0,
+     230,   231,   470,   817,   840,   934,   943,   941,  1045,     0,
      166,   167,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,   126,   128,
      129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,   280,   281,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   464,   467,   454,     0,     0,   827,
-     857,   830,   888,   951,   832,   899,   834,   910,   837,   839,
-     838,   928,  1036,  1043,   826,  1037,   886,  1038,  1044,   911,
-    1042,  1045,   935,   992,  1039,  1040,  1046,  1041,   993,   981,
-     978,   980,   979,   875,   997,   998,   995,   841,   999,   889,
-     859,   977,   460,   824,   452,     0,   192,   453,   456,   827,
-     828,   830,   829,   834,   835,   836,   837,   826,   833,   508,
-       0,   458,   457,     0,     0,   212,     0,   470,   832,   839,
-     838,     0,   168,   795,   999,     0,   220,     0,   509,     0,
+       0,     0,     0,     0,   464,   467,   454,     0,     0,   820,
+     850,   823,   881,   944,   825,   892,   827,   903,   830,   832,
+     831,   921,  1029,  1036,   819,  1030,   879,  1031,  1037,   904,
+    1035,  1038,   928,   985,  1032,  1033,  1039,  1034,   986,   974,
+     971,   973,   972,   868,   990,   991,   988,   834,   992,   882,
+     852,   970,   460,   817,   452,     0,   192,   453,   456,   820,
+     821,   823,   822,   827,   828,   829,   830,   819,   826,   508,
+       0,   458,   457,     0,     0,   212,     0,   470,   825,   832,
+     831,     0,   168,   795,   992,     0,   220,     0,   509,     0,
      540,     0,     0,   463,     0,   434,   435,     0,   466,   465,
      455,   438,     0,     0,   569,     0,     0,     0,     0,     0,
-       0,     0,   986,     0,   815,     0,   833,   986,   842,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   363,   797,     0,   799,     0,
-     842,     0,   165,     3,     4,     1,    10,    12,     0,     0,
-       0,     0,     6,   165,     0,   165,     0,     0,   119,   172,
-       0,     0,   190,     0,     0,   199,     0,     0,     0,     0,
-       0,     0,   235,   236,     0,     0,   204,   233,     0,   254,
-     250,   256,   251,   253,   252,   260,     0,     0,     0,     0,
-       0,     0,     0,   425,     0,     0,   423,     0,   369,     0,
-     424,   417,   422,   421,   420,   419,   418,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   411,   410,   407,     0,
-     168,   432,   437,     0,     0,     0,   447,   486,   450,   449,
-     461,     0,     0,     0,   477,     0,     0,     0,   581,   583,
-     587,   589,     0,   124,     0,   823,    47,    44,    45,    48,
-      49,     0,     0,     0,     0,    50,    51,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   654,   655,   656,
-       0,   103,   142,     0,     0,   112,     0,     0,     0,     0,
-     127,     0,     0,   627,     0,     0,     0,   622,     0,     0,
-       0,   637,     0,     0,   258,   263,     0,     0,   134,     0,
-     138,   168,   523,     0,    60,     0,    69,     0,     0,     0,
-      61,     0,     0,     0,     0,   625,     0,     0,   628,     0,
-       0,     0,     0,   329,     0,     0,   626,     0,     0,     0,
-     645,     0,     0,     0,     0,   631,     0,     0,   194,     0,
-       0,   188,   187,     0,     0,   801,     0,     0,     0,     0,
-     508,     0,   796,     0,   510,   541,   540,   537,     0,     0,
-       0,   571,   570,   433,     0,   568,     0,   667,   668,   814,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   363,   797,     0,   799,     0,     0,
+     165,     3,     4,     1,    10,    12,     0,     0,     0,     0,
+       6,   165,     0,   165,     0,     0,   119,   172,     0,     0,
+     190,     0,     0,   199,     0,     0,     0,     0,     0,     0,
+     235,   236,     0,     0,   204,   233,     0,   254,   250,   256,
+     251,   253,   252,   260,     0,     0,     0,     0,     0,     0,
+       0,   425,     0,     0,   423,     0,   369,     0,   424,   417,
+     422,   421,   420,   419,   418,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   411,   410,   407,     0,   168,   432,
+     437,     0,     0,     0,   447,   486,   450,   449,   461,     0,
+       0,     0,   477,     0,     0,     0,   581,   583,   587,   589,
+       0,   124,     0,   816,    47,    44,    45,    48,    49,     0,
+       0,     0,     0,    50,    51,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   654,   655,   656,     0,   103,
+     142,     0,     0,   112,     0,     0,     0,     0,   127,     0,
+       0,   627,     0,     0,     0,   622,     0,     0,     0,   637,
+       0,     0,   258,   263,     0,     0,   134,     0,   138,   168,
+     523,     0,    60,     0,    69,     0,     0,     0,    61,     0,
+       0,     0,     0,   625,     0,     0,   628,     0,     0,     0,
+       0,   329,     0,     0,   626,     0,     0,     0,   645,     0,
+       0,     0,     0,   631,     0,     0,   194,     0,     0,   188,
+     187,     0,     0,   801,     0,     0,     0,     0,   508,     0,
+     796,     0,   510,   541,   540,   537,     0,     0,     0,   571,
+     570,   433,     0,   568,     0,   667,   668,     0,     0,     0,
+       0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,   673,     0,   202,   203,     0,     0,     0,
-       0,     0,   207,   208,   259,   798,   800,     0,     0,     5,
-      24,     0,    25,     0,     7,    29,     0,    15,     8,    30,
-       0,    19,   941,    77,    16,    78,    20,   193,     0,   191,
-     213,   214,     0,     0,     0,     0,   298,   205,   234,   237,
-     238,   257,     0,     0,   359,   361,   367,   373,   372,   371,
-       0,   368,   365,   366,     0,   377,   384,   383,   381,   387,
-     388,   389,   386,   391,   392,   395,   394,     0,     0,     0,
-       0,   416,     0,   442,   443,     0,   487,     0,   484,   485,
-     481,   480,   516,   478,   518,     0,   620,   522,   514,     0,
-       0,   121,   123,     0,     0,     0,   102,     0,    92,    94,
-      95,    96,    97,    99,   100,   101,    93,    98,    88,    89,
-       0,     0,   108,     0,   104,   106,   107,   114,     0,     0,
-      87,    46,     0,     0,     0,     0,     0,     0,     0,   745,
-     750,     0,     0,   746,   780,   733,   735,   736,   737,   739,
-     741,   740,   738,   742,     0,     0,     0,     0,     0,   111,
-       0,   144,     0,     0,   586,   580,   623,   624,     0,     0,
-     641,     0,   638,     0,     0,     0,     0,     0,     0,     0,
-       0,   140,     0,     0,   135,     0,     0,     0,     0,     0,
-       0,    62,     0,     0,     0,   279,   285,   282,     0,   630,
-     629,   636,   644,     0,     0,     0,     0,   585,     0,     0,
-       0,   426,     0,     0,     0,     0,   634,     0,   632,     0,
-     195,     0,     0,   803,     0,   470,   802,     0,     0,     0,
-     540,   538,     0,   529,     0,     0,   512,   513,     0,    13,
+       0,     0,   207,   208,   259,   798,   800,     0,     5,    24,
+       0,    25,     0,     7,    29,     0,    15,     8,    30,     0,
+      19,   934,    77,    16,    78,    20,   193,     0,   191,   213,
+     214,     0,     0,     0,     0,   298,   205,   234,   237,   238,
+     257,     0,     0,   359,   361,   367,   373,   372,   371,     0,
+     368,   365,   366,     0,   377,   384,   383,   381,   387,   388,
+     389,   386,   391,   392,   395,   394,     0,     0,     0,     0,
+     416,     0,   442,   443,     0,   487,     0,   484,   485,   481,
+     480,   516,   478,   518,     0,   620,   522,   514,     0,     0,
+     121,   123,     0,     0,     0,   102,     0,    92,    94,    95,
+      96,    97,    99,   100,   101,    93,    98,    88,    89,     0,
+       0,   108,     0,   104,   106,   107,   114,     0,     0,    87,
+      46,     0,     0,     0,     0,     0,     0,     0,   745,   750,
+       0,     0,   746,   780,   733,   735,   736,   737,   739,   741,
+     740,   738,   742,     0,     0,     0,     0,     0,   111,     0,
+     144,     0,     0,   586,   580,   623,   624,     0,     0,   641,
+       0,   638,     0,     0,     0,     0,     0,     0,     0,     0,
+     140,     0,     0,   135,     0,     0,     0,     0,     0,     0,
+      62,     0,     0,     0,   279,   285,   282,     0,   630,   629,
+     636,   644,     0,     0,     0,     0,   585,     0,     0,     0,
+     426,     0,     0,     0,     0,   634,     0,   632,     0,   195,
+       0,     0,   803,     0,   470,   802,     0,     0,     0,   540,
+     538,     0,   529,     0,     0,   512,   513,     0,    13,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     809,   810,     0,     0,   817,     0,     0,     0,     0,     0,
-       0,     0,   200,     0,     0,     0,   681,     0,   209,     0,
-     813,     0,     0,     0,   165,     0,   165,     0,   173,   246,
-       0,   313,   309,   311,     0,   306,   299,   300,     0,     0,
-     239,   240,     0,   245,   370,     0,     0,     0,     0,   711,
-     378,   684,   688,   690,   692,   694,   697,   704,   705,   713,
-     951,   831,     0,   840,   844,   843,   845,   846,   397,   592,
-     599,   600,   603,   648,   649,   604,   605,   608,   399,   401,
-     404,   609,   403,   430,   488,   482,     0,     0,   479,   515,
-     125,    56,    57,    54,    55,   131,   130,     0,    90,     0,
-       0,     0,   109,   110,   115,    74,    75,    52,    53,    73,
-     751,     0,   754,   781,     0,   744,   743,   748,   747,   779,
-       0,     0,   756,     0,   752,   755,   734,     0,     0,     0,
-       0,     0,     0,     0,   621,     0,     0,     0,   143,   146,
-     148,     0,     0,     0,   113,   116,     0,     0,     0,   168,
-       0,     0,   645,     0,     0,     0,   265,     0,   591,     0,
-     266,     0,     0,     0,     0,     0,     0,     0,   141,   136,
-     139,     0,   189,     0,     0,    71,    65,    68,    67,     0,
-      63,   283,     0,     0,   168,     0,   327,   331,     0,     0,
-       0,   334,     0,     0,   340,     0,     0,   347,     0,   351,
-       0,   428,   427,   168,     0,     0,   196,     0,   198,   328,
-       0,     0,     0,     0,     0,   541,     0,   531,     0,   564,
-     561,     0,   565,   566,     0,     0,   560,     0,   535,   563,
-     562,     0,     0,     0,     0,   660,   661,   657,     0,     0,
-     665,   666,   662,   806,   807,     0,   671,   816,   669,     0,
-       0,     0,     0,     0,   675,   832,   839,   838,   999,   201,
-       0,     0,     0,   676,   677,     0,     0,   210,   812,    26,
-       0,    17,    21,    22,   310,   322,     0,   323,     0,   314,
-     315,   316,   317,     0,   508,     0,   307,     0,     0,     0,
-     241,     0,     0,     0,     0,   292,     0,   289,   294,   244,
-       0,     0,   695,   708,     0,   375,   379,     0,   727,     0,
-       0,     0,     0,     0,     0,   683,   685,   686,   722,   723,
-     724,   726,   725,     0,     0,   699,   698,     0,   702,   706,
-     720,   718,   717,   710,   714,     0,     0,   595,     0,     0,
-       0,     0,     0,     0,   596,   598,   597,   593,   405,   483,
-     517,   519,   133,   132,    91,   105,   768,   749,     0,   773,
-       0,   773,   762,   757,   147,   149,     0,     0,     0,   117,
-     145,     0,    27,     0,   642,   643,   646,   639,   640,   264,
-       0,     0,   278,   270,     0,   274,     0,   268,     0,     0,
-       0,   137,     0,     0,    70,     0,    64,   284,     0,     0,
-     330,   332,   337,     0,   335,     0,     0,     0,     0,     0,
-     341,     0,     0,   355,     0,     0,   348,     0,     0,   352,
-     429,     0,   635,   633,   197,   804,   805,     0,     0,   540,
-       0,     0,   572,     0,   540,     0,   536,     0,    14,     0,
-       0,     0,     0,     0,     0,     0,   819,     0,   674,     0,
+       0,     0,     0,     0,     0,     0,     0,   200,     0,     0,
+       0,   681,     0,   209,     0,     0,     0,     0,   165,     0,
+     165,     0,   173,   246,     0,   313,   309,   311,     0,   306,
+     299,   300,     0,     0,   239,   240,     0,   245,   370,     0,
+       0,     0,     0,   711,   378,   684,   688,   690,   692,   694,
+     697,   704,   705,   713,   944,   824,     0,   833,   837,   836,
+     838,   839,   397,   592,   599,   600,   603,   648,   649,   604,
+     605,   608,   399,   401,   404,   609,   403,   430,   488,   482,
+       0,     0,   479,   515,   125,    56,    57,    54,    55,   131,
+     130,     0,    90,     0,     0,     0,   109,   110,   115,    74,
+      75,    52,    53,    73,   751,     0,   754,   781,     0,   744,
+     743,   748,   747,   779,     0,     0,   756,     0,   752,   755,
+     734,     0,     0,     0,     0,     0,     0,     0,   621,     0,
+       0,     0,   143,   146,   148,     0,     0,     0,   113,   116,
+       0,     0,     0,   168,     0,     0,   645,     0,     0,     0,
+     265,     0,   591,     0,   266,     0,     0,     0,     0,     0,
+       0,     0,   141,   136,   139,     0,   189,     0,     0,    71,
+      65,    68,    67,     0,    63,   283,     0,     0,   168,     0,
+     327,   331,     0,     0,     0,   334,     0,     0,   340,     0,
+       0,   347,     0,   351,     0,   428,   427,   168,     0,     0,
+     196,     0,   198,   328,     0,     0,     0,     0,     0,   541,
+       0,   531,     0,   564,   561,     0,   565,   566,     0,     0,
+     560,     0,   535,   563,   562,     0,     0,     0,     0,   660,
+     661,   657,     0,     0,   665,   666,   662,   806,   807,   671,
+     811,   669,     0,     0,     0,     0,   675,   825,   832,   831,
+     992,   201,     0,     0,     0,   676,   677,     0,     0,   210,
+     809,    26,     0,    17,    21,    22,   310,   322,     0,   323,
+       0,   314,   315,   316,   317,     0,   508,     0,   307,     0,
+       0,     0,   241,     0,     0,     0,     0,   292,     0,   289,
+     294,   244,     0,     0,   695,   708,     0,   375,   379,     0,
+     727,     0,     0,     0,     0,     0,     0,   683,   685,   686,
+     722,   723,   724,   726,   725,     0,     0,   699,   698,     0,
+     702,   706,   720,   718,   717,   710,   714,     0,     0,   595,
+       0,     0,     0,     0,     0,     0,   596,   598,   597,   593,
+     405,   483,   517,   519,   133,   132,    91,   105,   768,   749,
+       0,   773,     0,   773,   762,   757,   147,   149,     0,     0,
+       0,   117,   145,     0,    27,     0,   642,   643,   646,   639,
+     640,   264,     0,     0,   278,   270,     0,   274,     0,   268,
+       0,     0,     0,   137,     0,     0,    70,     0,    64,   284,
+       0,     0,   330,   332,   337,     0,   335,     0,     0,     0,
+       0,     0,   341,     0,     0,   355,     0,     0,   348,     0,
+       0,   352,   429,     0,   635,   633,   197,   804,   805,     0,
+       0,   540,     0,     0,   572,     0,   540,     0,   536,     0,
+      14,     0,     0,     0,     0,     0,     0,     0,   674,     0,
        0,     0,     0,     0,     0,   678,   682,   326,   324,   325,
      318,   319,   320,   312,     0,     0,   308,   301,   287,     0,
        0,     0,   243,   290,   293,     0,   712,   703,   709,     0,
        0,   782,   783,   793,   792,   791,     0,     0,     0,     0,
      784,   689,   790,     0,   687,   691,     0,     0,   696,   700,
        0,   721,   716,   719,   715,     0,     0,   606,     0,   601,
-     653,   594,   822,   821,   820,   602,   769,     0,     0,   767,
+     653,   594,   815,   814,   813,   602,   769,     0,     0,   767,
      774,   775,   771,     0,   766,     0,   764,     0,     0,     0,
        0,     0,     0,   582,   267,     0,   276,     0,     0,   272,
        0,   275,     0,     0,     0,    66,   286,   588,     0,     0,
      338,   342,   336,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,   584,     0,     0,   540,     0,
-     567,     0,   540,   590,   658,   659,   663,   664,     0,   811,
-     670,   818,   672,     0,     0,     0,     0,   679,   321,   302,
-       0,   288,   296,   297,   291,   242,   707,   794,     0,     0,
-     786,     0,   732,   731,   730,   729,   728,   693,     0,   785,
-       0,   650,     0,     0,   778,   777,   776,     0,   770,   763,
-     761,     0,   758,   759,   753,   150,   152,   154,     0,     0,
-       0,     0,     0,   271,   269,     0,   277,   206,   357,    72,
-     333,   339,     0,   356,   353,   349,     0,     0,     0,   343,
-       0,     0,   345,     0,   550,   544,   539,     0,   540,   530,
-       0,   808,     0,     0,     0,     0,   305,   303,     0,   788,
-     787,     0,     0,   651,   607,     0,   772,   765,     0,     0,
-     156,   155,     0,     0,     0,     0,   151,   273,     0,     0,
-       0,     0,     0,   558,   552,     0,   551,   553,   559,   556,
-     546,     0,   545,   547,   557,   532,     0,   533,     0,     0,
-     680,   304,     0,   789,   701,   652,   760,   153,   157,     0,
-       0,     0,     0,     0,     0,   346,   344,     0,     0,   543,
-     554,   555,   542,   548,   549,   534,     0,   295,   158,     0,
-       0,     0,   354,   350,     0,     0,     0,     0,     0,     0,
-       0,     0,   160,     0,     0,   159,     0,     0,     0,     0,
-       0,     0,     0,     0,   161
+     567,     0,   540,   590,   658,   659,   663,   664,     0,   670,
+     812,   672,     0,     0,     0,     0,   679,   321,   302,     0,
+     288,   296,   297,   291,   242,   707,   794,     0,     0,   786,
+       0,   732,   731,   730,   729,   728,   693,     0,   785,     0,
+     650,     0,     0,   778,   777,   776,     0,   770,   763,   761,
+       0,   758,   759,   753,   150,   152,   154,     0,     0,     0,
+       0,     0,   271,   269,     0,   277,   206,   357,    72,   333,
+     339,     0,   356,   353,   349,     0,     0,     0,   343,     0,
+       0,   345,     0,   550,   544,   539,     0,   540,   530,     0,
+     808,     0,     0,     0,     0,   305,   303,     0,   788,   787,
+       0,     0,   651,   607,     0,   772,   765,     0,     0,   156,
+     155,     0,     0,     0,     0,   151,   273,     0,     0,     0,
+       0,     0,   558,   552,     0,   551,   553,   559,   556,   546,
+       0,   545,   547,   557,   532,     0,   533,     0,     0,   680,
+     304,     0,   789,   701,   652,   760,   153,   157,     0,     0,
+       0,     0,     0,     0,   346,   344,     0,     0,   543,   554,
+     555,   542,   548,   549,   534,     0,   295,   158,     0,     0,
+       0,   354,   350,     0,     0,     0,     0,     0,     0,     0,
+       0,   160,     0,     0,   159,     0,     0,     0,     0,     0,
+       0,     0,     0,   161
   };
 
   /* YYPGOTO[NTERM-NUM].  */
   const short int
   jsoniq_parser::yypgoto_[] =
   {
-     -1566, -1566,  -216,  -199, -1566,  1247,  1248, -1566,  1249,  -570,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1024, -1566, -1566, -1566, -1566,  -225,  -607, -1566,   752,   -55,
-   -1566, -1566, -1566, -1566, -1566,   287,   517, -1566, -1566,    -3,
-    -159,  1083, -1566,  1059, -1566, -1566,  -664, -1566,   459, -1566,
-     247, -1566,  -238,  -284, -1566,  -585, -1566,    12,    92,    -4,
-    -260,  -179, -1566,  -902, -1566, -1566,  -465, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566,   637, -1566,   -83,
-    1698,     0, -1566, -1566,  -231, -1566, -1566,   353, -1566, -1566,
-    -311, -1566,    16, -1566, -1566,     4,  -971,  -769,  -752, -1566,
-   -1566,   716, -1566, -1566,   -72,   108, -1566, -1566, -1566,   117,
-   -1278, -1566,   378,   122, -1566, -1566,   129, -1341, -1566,   980,
-     226, -1566, -1566,   222, -1047, -1566, -1566,   223, -1566, -1566,
-   -1289, -1276, -1566,   217, -1434, -1566, -1566,   868,  -157, -1566,
-   -1566,  -567,   849, -1566, -1566,  -691,   269,  -670,   318,   302,
-   -1566, -1566, -1566,   590, -1566, -1566,  1208, -1566, -1566, -1566,
-   -1566, -1566,  -913,  -339,  -694, -1566,   -84, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566,    -9,  -835, -1566,  -140,   631,   235,
-   -1566,  -422, -1566,   820, -1566, -1566, -1566, -1566, -1566,   815,
-   -1566, -1566, -1566, -1566, -1065, -1566,   206, -1566,   705,  -830,
-   -1566, -1566, -1566, -1566, -1566,  -276,  -269, -1262,  -922, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-    -791,  -906,  -235,  -895, -1566, -1566, -1566,  -726, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566,  1094,  1099,  -207,
-     515,  -686, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-   -1566, -1566, -1566,   181, -1566, -1566,   169, -1566,   173, -1112,
-   -1566, -1566, -1566,   130,   116,   -59,   393, -1566, -1566, -1566,
-   -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566, -1566,
-     133, -1566, -1566, -1566,   -52,   387,   540, -1566, -1566, -1566,
-   -1566, -1566,   322, -1566, -1566, -1565, -1566, -1566, -1566,  -606,
-   -1566,    85, -1566,   -73, -1566, -1566, -1566, -1566, -1370, -1566,
-     138, -1566, -1566, -1566, -1566, -1566,  -113, -1566, -1566, -1566,
-   -1566, -1566,  -959,  -396,   919,   243, -1566
+     -1540, -1540,  -236,  -208, -1540,  1221,  1222, -1540,  1223,  -565,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1024, -1540, -1540, -1540, -1540,  -248,  -598, -1540,   732,    -2,
+   -1540, -1540, -1540, -1540, -1540,   274,   493, -1540, -1540,   -10,
+    -170,  1053, -1540,  1051, -1540, -1540,  -654, -1540,   447, -1540,
+     232, -1540,  -245,  -295, -1540,  -555, -1540,     7,    67,    34,
+    -289,  -187, -1540,  -909, -1540, -1540,   203, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540,   618, -1540,   -55,
+    1482,     0, -1540, -1540,  -239, -1540, -1540,   345, -1540, -1540,
+    -311, -1540,    16, -1540, -1540,  -432,  -952,  -758,  -735, -1540,
+   -1540,   701, -1540, -1540,   -79,   102, -1540, -1540, -1540,   112,
+   -1539, -1540,   368,   120, -1540, -1540,   121, -1331, -1540,   963,
+     215, -1540, -1540,   212, -1059, -1540, -1540,   213, -1540, -1540,
+   -1281, -1267, -1540,   205, -1445, -1540, -1540,   853,  -152, -1540,
+   -1540,  -577,   834, -1540, -1540,  -672,   365,  -663,   360,   362,
+   -1540, -1540, -1540,   576, -1540, -1540,  1183, -1540, -1540, -1540,
+   -1540, -1540,  -865,  -335,  -692, -1540,  -111, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540,   -13,  -835, -1540,  -548,   680,   272,
+   -1540,  -434, -1540,   810, -1540, -1540, -1540, -1540, -1540,   801,
+   -1540, -1540, -1540, -1540, -1043, -1540,   195, -1540,   687,  -816,
+   -1540, -1540, -1540, -1540, -1540,  -278,  -271, -1213,  -829, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+    -774,  -876,  -195,  -877, -1540, -1540, -1540,  -711, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540,  1076,  1081,  -180,
+     497,  -685, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+   -1540, -1540, -1540,   174, -1540, -1540,   161, -1540,   168, -1096,
+   -1540, -1540, -1540,   116,   110,   -62,   386, -1540, -1540, -1540,
+   -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540, -1540,
+     124, -1540, -1540, -1540,   -54,   378,   530, -1540, -1540, -1540,
+   -1540, -1540,   317, -1540, -1540, -1535, -1540, -1540, -1540,  -563,
+   -1540,    82, -1540,   -74, -1540, -1540, -1540, -1540, -1350, -1540,
+     132, -1540, -1540, -1540, -1540, -1540,   966, -1540, -1540, -1540,
+   -1540, -1540,  -955,  -429,   979,   318, -1540
   };
 
   /* YYDEFGOTO[NTERM-NUM].  */
   const short int
   jsoniq_parser::yydefgoto_[] =
   {
-        -1,   263,   654,   264,   265,   266,   267,   268,   269,   270,
+        -1,   263,   642,   264,   265,   266,   267,   268,   269,   270,
      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
-    1305,   809,   281,   282,   283,   284,   285,   286,   998,   999,
-    1000,   287,   288,   289,  1004,  1005,  1006,   290,   456,   291,
-     292,   742,   293,   458,   459,   460,   470,   799,   800,   294,
-    1268,   295,  1755,  1756,   296,   297,   298,   563,   299,   300,
-     301,   302,   303,   802,   304,   305,   546,   306,   307,   308,
-     309,   310,   311,   666,   312,   313,   892,   893,   314,   315,
-     316,   576,   318,   667,  1691,   679,  1172,  1173,   319,   669,
-     320,   671,   577,   322,   323,   794,   795,  1425,   477,   324,
-     478,   479,   933,  1426,  1427,  1428,   672,   673,  1166,  1167,
-    1416,   674,  1162,  1163,  1409,  1410,  1411,  1412,   325,   822,
-     823,   326,  1320,  1321,  1535,   327,  1323,  1324,   328,   329,
-    1326,  1327,  1328,  1329,  1542,   330,   331,   332,   333,   334,
-     940,   335,   336,  1435,   337,   338,   339,   340,   341,   342,
-     343,   344,   345,  1209,   346,   347,   348,   349,   697,   698,
+    1289,   797,   281,   282,   283,   284,   285,   286,   987,   988,
+     989,   287,   288,   289,   993,   994,   995,   290,   456,   291,
+     292,   730,   293,   458,   459,   460,   470,   787,   788,   294,
+    1252,   295,  1734,  1735,   296,   297,   298,   563,   299,   300,
+     301,   302,   303,   790,   304,   305,   546,   306,   307,   308,
+     309,   310,   311,   654,   312,   313,   882,   883,   314,   315,
+     316,   576,   318,   655,  1671,   667,  1156,  1157,   319,   657,
+     320,   659,   577,   322,   323,   782,   783,  1407,   477,   324,
+     478,   479,   922,  1408,  1409,  1410,   660,   661,  1150,  1151,
+    1398,   662,  1146,  1147,  1391,  1392,  1393,  1394,   325,   810,
+     811,   326,  1304,  1305,  1517,   327,  1307,  1308,   328,   329,
+    1310,  1311,  1312,  1313,  1524,   330,   331,   332,   333,   334,
+     929,   335,   336,  1417,   337,   338,   339,   340,   341,   342,
+     343,   344,   345,  1193,   346,   347,   348,   349,   685,   686,
      350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
-     360,   361,   362,   363,   364,   365,   366,   367,   734,   727,
-     368,   369,   370,   371,   372,   373,   374,   375,   376,   975,
-     377,   378,   379,   380,   381,   382,  1357,   856,   857,   858,
-    1786,  1831,  1832,  1825,  1826,  1833,  1827,  1358,  1359,   383,
-     384,  1360,   385,   386,   387,   388,   389,   390,   391,   392,
-    1060,  1543,  1477,  1199,  1638,  1200,  1210,   393,   394,   395,
-     396,   397,   398,   399,   400,   401,   402,   403,   404,   829,
-    1281,   405,  1202,  1203,  1204,  1205,   406,   407,   408,   409,
-     410,   411,   882,   883,   412,  1393,  1394,  1717,  1147,  1180,
-    1445,  1446,  1181,  1182,  1183,  1184,  1185,  1455,  1628,  1629,
-    1186,  1458,  1187,  1609,  1188,  1189,  1463,  1464,  1634,  1632,
-    1447,  1448,  1449,  1450,  1735,   771,  1025,  1026,  1027,  1028,
-    1029,  1030,  1254,  1658,  1752,  1255,  1656,  1750,  1031,  1491,
-    1653,  1649,  1650,  1651,  1032,  1033,  1451,  1459,  1619,  1452,
-    1615,  1436,   413,   414,   415,   416,   566,   417,   418,   419,
-     420,   421,  1206,  1306,   422,   423,   424
+     360,   361,   362,   363,   364,   365,   366,   367,   722,   715,
+     368,   369,   370,   371,   372,   373,   374,   375,   376,   964,
+     377,   378,   379,   380,   381,   382,  1341,   844,   845,   846,
+    1765,  1810,  1811,  1804,  1805,  1812,  1806,  1342,  1343,   383,
+     384,  1344,   385,   386,   387,   388,   389,   390,   391,   392,
+    1049,  1525,  1459,  1183,  1618,  1184,  1194,   393,   394,   395,
+     396,   397,   398,   399,   400,   401,   402,   403,   404,   817,
+    1265,   405,  1186,  1187,  1188,  1189,   406,   407,   408,   409,
+     410,   411,   872,   873,   412,  1375,  1376,  1696,  1132,  1164,
+    1427,  1428,  1165,  1166,  1167,  1168,  1169,  1437,  1608,  1609,
+    1170,  1440,  1171,  1589,  1172,  1173,  1445,  1446,  1614,  1612,
+    1429,  1430,  1431,  1432,  1714,   759,  1014,  1015,  1016,  1017,
+    1018,  1019,  1238,  1638,  1731,  1239,  1636,  1729,  1020,  1473,
+    1633,  1629,  1630,  1631,  1021,  1022,  1433,  1441,  1599,  1434,
+    1595,  1418,   413,   414,   415,   416,   566,   417,   418,   419,
+     420,   421,  1190,  1290,   422,   423,   424
   };
 
   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
      positive, shift that token.  If negative, reduce the rule which
      number is the opposite.  If YYTABLE_NINF_, syntax error.  */
-  const short int jsoniq_parser::yytable_ninf_ = -890;
+  const short int jsoniq_parser::yytable_ninf_ = -883;
   const short int
   jsoniq_parser::yytable_[] =
   {
-       317,   431,   431,   431,   435,   317,   317,   317,   317,   623,
-     670,   457,   948,   721,   743,   743,   321,   429,   432,   433,
-    1074,   321,   321,   321,   321,   961,  1112,  1058,   604,   575,
-     579,  1178,   613,  1086,   949,   950,   951,   952,   913,   915,
-     649,  1322,   746,   641,  1059,   969,   625,  1100,  1310,  1356,
-    1546,  1198,  1208,   644,   591,  1558,  1146,   610,   907,   911,
-     914,   916,   633,   634,  1431,   642,   642,   542,   646,  1591,
-    1592,    11,    12,   905,   909,  1054,  1270,   806,   810,  1758,
-    1257,  1294,  1286,  1226,  1169,  1258,   785,  1630,  1312,   985,
-     668,   442,  1753,   475,  1259,  1566,   642,   430,   430,   430,
-     434,  1260,   642,  1261,   786,   843,  1231,   564,  1291,    13,
-    1689,   317,  1262,  1693,   642,   936,   642,   937,   938,   445,
-     939,   980,   941,    13,   642,  -169,   642,   321,  1518,   642,
-     942,   943,   648,  1083,  1055,   642,  1056,  1083,   642,  1263,
-     642,  1728,  1056,   642,   980,   651,  1784,   642,  1647,  1288,
-    1118,  1488,   642,   614,    11,    12,  1299,   777,   615,  1611,
-     642,  1055,   642,   731,   438,   439,   720,   440,   441,   627,
-     629,   649,   653,   653,   442,   649,  -170,   642,   593,  1437,
-     701,   436,   917,   642,   443,   444,   919,   642,  1057,   128,
-      82,  1759,  1225,  1251,  1295,   642,   642,   702,   732,  1612,
-     733,   981,   445,   430,    82,    93,   437,   446,   801,  1119,
-    1252,   861,  1490,  1648,  1084,  1085,  1234,   650,  1102,    93,
-    1729,   874,  1139,   476,   982,   642,    11,    12,  1437,   652,
-     107,  1201,  1201,   653,  1175,   642,  1785,  1176,   476,   447,
-     448,   449,   616,  1846,   107,   653,   442,   653,  1170,  1718,
-     653,   642,  1438,   476,   653,   642,   443,   128,   476,   653,
-     642,   317,   317,  1178,  1178,   317,   670,   653,   642,   653,
-    1298,   722,  1264,  1760,   445,  1201,  1539,   321,   321,   446,
-    1346,   321,  1546,  1356,   653,  1526,  1751,   643,  1171,   450,
-     653,  1296,  1356,   645,   653,   913,   915,  1468,   648,  1566,
-     317,  1438,   653,   653,   649,   900,  1292,   902,  1297,  1269,
-    -169,   447,   448,  1157,  1509,  1154,   321,  1270,   476,   543,
-    1156,  1608,  1313,  1227,   476,  1483,  1399,   854,   852,  1201,
-     905,   909,   653,   543,  1066,  1468,  1201,   778,  1818,  1088,
-    1439,  1440,   653,  1441,  1177,   779,   853,  1089,   650,  1143,
-    1442,   728,   650,   451,   730,  1140,   464,   543,   653,  1120,
-    1443,  -170,   653,   594,  1265,  1266,  1267,   653,  1011,   543,
-    1342,   543,  1444,  1174,  1343,   653,   642,  1419,   642,   862,
-    1048,   895,  1344,   790,   896,  1854,  1616,  1857,   803,  1439,
-    1440,   490,  1441,   745,   452,  1521,   438,   439,   816,   440,
-     441,  1616,  1124,   642,   745,   827,   828,   642,   927,  1443,
-     642,   605,  1479,  1071,   834,   605,  1810,   444,   906,   910,
-     453,  1444,  1792,   461,   901,   903,   642,   642,   454,   843,
-     642,   317,  1049,   899,   918,   317,   455,   675,  1793,   785,
-    1395,  1796,  1794,  1051,  1055,  1214,  1063,   321,   844,  1113,
-     844,   321,  1078,   747,  1613,  1095,   465,   786,   435,   749,
-     435,  1614,   317,   869,   317,   761,  1201,   762,   748,   491,
-    1848,  1433,   877,  1400,   750,  1823,   731,   807,   321,  1349,
-     321,   650,   435,   653,  1499,   653,   317,   435,  1121,  1122,
-     844,   317,   453,  1073,   128,   873,  1356,  1396,   859,   860,
-     454,   676,   321,  1123,  1201,  1839,   677,   321,   455,   864,
-     653,   732,  1050,   733,   653,  1536,  1114,   653,  1511,  1841,
-    1178,   450,  1179,  1052,   935,   808,  1064,   764,  1014,  1178,
-    1015,  1125,  1126,   653,   653,  1096,   805,   653,   888,   890,
-    1178,   492,   493,  1484,  1519,  1128,  1127,   913,   915,   913,
-    1269,  1617,  1618,   678,   782,    13,   784,  1146,  1220,  1637,
-    1094,  1586,  1115,  1546,   317,   731,  1617,   845,   431,  1401,
-    1402,  1403,   317,   701,  1016,  1201,  1097,  1496,   825,   875,
-     321,  1129,   787,   831,  1690,   451,  1217,  1116,   321,   765,
-     702,  1117,  1823,  1217,  1145,  1352,  1349,  1353,  1380,  1201,
-     732,   662,   733,   543,   663,  1824,   543,   755,   797,  1055,
-    1606,  1840,  1235,  1236,  1844,    11,    12,  1239,   889,  1742,
-    1747,   751,   317,  1595,  1347,  1354,   452,  1056,   894,   649,
-     469,   462,   317,   908,   463,   457,    82,   752,   321,   963,
-     964,   756,   965,   317,   317,   317,   317,  1278,   321,   965,
-    1769,    93,   662,  1783,  1349,   663,  1098,  1056,  1158,   321,
-     321,   321,   321,  1418,   430,  1153,  1218,   662,   317,  1363,
-     663,  1364,   704,  1219,  1829,  1151,   107,   798,  1349,  1510,
-    1175,  1716,   931,  1176,   321,   753,   543,  1577,  1732,   543,
-    1155,  1348,  1686,   543,   903,  1733,   543,   543,  1829,  1743,
-    1748,   647,   705,   128,   543,  1734,   471,  1349,  1350,  1667,
-     543,   543,  1352,  1178,  1353,   706,   431,   761,   543,   762,
-     317,   662,  1860,   878,   663,   543,   543,   543,   543,  1697,
-    1017,   480,   962,   543,  1701,  1319,   321,  1406,  

References