← Back to team overview

zorba-coders team mailing list archive

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

 

Matthias Brantner has proposed merging lp:~zorba-coders/zorba/feature-jsoniq_parser into lp:zorba.

Commit message:
JSONiq parser extensions

Requested reviews:
  Matthias Brantner (matthias-brantner)

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

- added true, false, null as literals into the jsoniq parser
- FROM as a synonym to FOR
- SELECT as a synonym to RETURN
- JSONLookupExpr ::= FilterExpr ("." ( ParenthesizedExpr | StringLiteral | NCName | "*" ))*
-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~zorba-coders/zorba/feature-jsoniq_parser/+merge/154232
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-03-16 02:00:18 +0000
+++ src/compiler/parser/jsoniq_parser.cpp	2013-03-20 01:08:21 +0000
@@ -73,7 +73,7 @@
 /* User implementation prologue.  */
 
 /* Line 299 of lalr1.cc  */
-#line 908 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 
 // HACK to trigger rchandle release: rchandles are freed when refcount == 0
 // (not <= 0); but Bison never increments the refcount, so we do it manually...
@@ -85,7 +85,7 @@
 }
 
 /* Line 299 of lalr1.cc  */
-#line 1039 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1051 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 
 #include "compiler/parser/jsoniq_scanner.h"
 
@@ -282,7 +282,7 @@
         case 112: /* "\"'DECIMAL'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 906 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 911 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->decval); };
 
 /* Line 480 of lalr1.cc  */
@@ -291,7 +291,7 @@
       case 126: /* "\"'DOUBLE'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 905 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 910 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->dval); };
 
 /* Line 480 of lalr1.cc  */
@@ -300,2473 +300,2473 @@
       case 151: /* "\"'INTEGER'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 904 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 909 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->ival); };
 
 /* Line 480 of lalr1.cc  */
 #line 308 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 340: /* "VersionDecl" */
+      case 344: /* "VersionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 317 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 341: /* "MainModule" */
+      case 345: /* "MainModule" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 326 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 342: /* "LibraryModule" */
+      case 346: /* "LibraryModule" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 335 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 343: /* "ModuleDecl" */
+      case 347: /* "ModuleDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 344 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 344: /* "SIND_DeclList" */
+      case 348: /* "SIND_DeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 353 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 345: /* "SIND_Decl" */
+      case 349: /* "SIND_Decl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 362 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 346: /* "Setter" */
+      case 350: /* "Setter" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 371 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 347: /* "BoundarySpaceDecl" */
+      case 351: /* "BoundarySpaceDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 380 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 348: /* "DefaultCollationDecl" */
+      case 352: /* "DefaultCollationDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 389 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 349: /* "BaseURIDecl" */
+      case 353: /* "BaseURIDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 398 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 350: /* "ConstructionDecl" */
+      case 354: /* "ConstructionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 407 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 351: /* "OrderingModeDecl" */
+      case 355: /* "OrderingModeDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 416 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 352: /* "EmptyOrderDecl" */
+      case 356: /* "EmptyOrderDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 425 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 353: /* "CopyNamespacesDecl" */
+      case 357: /* "CopyNamespacesDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 434 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 354: /* "Import" */
+      case 358: /* "Import" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 443 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 355: /* "SchemaImport" */
+      case 359: /* "SchemaImport" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 452 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 356: /* "URILiteralList" */
+      case 360: /* "URILiteralList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 461 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 357: /* "SchemaPrefix" */
+      case 361: /* "SchemaPrefix" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 470 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 358: /* "ModuleImport" */
+      case 362: /* "ModuleImport" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 479 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 359: /* "NamespaceDecl" */
+      case 363: /* "NamespaceDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 488 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 360: /* "DefaultNamespaceDecl" */
+      case 364: /* "DefaultNamespaceDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 497 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 361: /* "VFO_DeclList" */
+      case 365: /* "VFO_DeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 506 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 362: /* "VFO_Decl" */
+      case 366: /* "VFO_Decl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 515 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 363: /* "DecimalFormatDecl" */
+      case 367: /* "DecimalFormatDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 524 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 364: /* "DecimalFormatParamList" */
+      case 368: /* "DecimalFormatParamList" */
 
 /* Line 480 of lalr1.cc  */
-#line 938 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->vstrpair); };
 
 /* Line 480 of lalr1.cc  */
 #line 533 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 365: /* "DecimalFormatParam" */
+      case 369: /* "DecimalFormatParam" */
 
 /* Line 480 of lalr1.cc  */
-#line 938 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->strpair); };
 
 /* Line 480 of lalr1.cc  */
 #line 542 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 367: /* "OptionDecl" */
+      case 371: /* "OptionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 551 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 368: /* "FTOptionDecl" */
+      case 372: /* "FTOptionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 560 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 369: /* "CtxItemDecl" */
+      case 373: /* "CtxItemDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 569 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 370: /* "CtxItemDecl2" */
+      case 374: /* "CtxItemDecl2" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 578 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 371: /* "CtxItemDecl3" */
+      case 375: /* "CtxItemDecl3" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 587 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 372: /* "CtxItemDecl4" */
+      case 376: /* "CtxItemDecl4" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 596 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 373: /* "VarDecl" */
+      case 377: /* "VarDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 605 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 374: /* "VarNameAndType" */
+      case 378: /* "VarNameAndType" */
 
 /* Line 480 of lalr1.cc  */
-#line 938 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->varnametype); };
 
 /* Line 480 of lalr1.cc  */
 #line 614 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 375: /* "AnnotationList" */
+      case 379: /* "AnnotationList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 623 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 376: /* "Annotation" */
+      case 380: /* "Annotation" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 632 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 377: /* "AnnotationLiteralList" */
+      case 381: /* "AnnotationLiteralList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 641 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 378: /* "FunctionDecl" */
+      case 382: /* "FunctionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 650 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 379: /* "FunctionDecl2" */
+      case 383: /* "FunctionDecl2" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 659 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 380: /* "FunctionDeclSimple" */
+      case 384: /* "FunctionDeclSimple" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 668 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 381: /* "FunctionDeclUpdating" */
+      case 385: /* "FunctionDeclUpdating" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 677 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 382: /* "FunctionSig" */
+      case 386: /* "FunctionSig" */
 
 /* Line 480 of lalr1.cc  */
-#line 938 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->fnsig); };
 
 /* Line 480 of lalr1.cc  */
 #line 686 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 383: /* "ParamList" */
+      case 387: /* "ParamList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 695 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 384: /* "Param" */
+      case 388: /* "Param" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 704 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 385: /* "CollectionDecl" */
+      case 389: /* "CollectionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 713 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 387: /* "IndexDecl" */
+      case 391: /* "IndexDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 722 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 388: /* "IndexKeyList" */
+      case 392: /* "IndexKeyList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 731 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 389: /* "IndexKeySpec" */
+      case 393: /* "IndexKeySpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 740 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 390: /* "IntegrityConstraintDecl" */
+      case 394: /* "IntegrityConstraintDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 749 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 391: /* "QueryBody" */
+      case 395: /* "QueryBody" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 758 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 392: /* "StatementsAndOptionalExprTop" */
+      case 396: /* "StatementsAndOptionalExprTop" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 767 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 393: /* "StatementsAndOptionalExpr" */
+      case 397: /* "StatementsAndOptionalExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 776 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 394: /* "StatementsAndExpr" */
+      case 398: /* "StatementsAndExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 785 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 395: /* "Statements" */
+      case 399: /* "Statements" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 794 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 396: /* "Statement" */
+      case 400: /* "Statement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 803 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 397: /* "BlockStatement" */
+      case 401: /* "BlockStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 812 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 398: /* "BlockExpr" */
+      case 402: /* "BlockExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 821 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 399: /* "EnclosedStatementsAndOptionalExpr" */
+      case 403: /* "EnclosedStatementsAndOptionalExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 830 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 400: /* "VarDeclStatement" */
+      case 404: /* "VarDeclStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 839 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 403: /* "AssignStatement" */
+      case 407: /* "AssignStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 848 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 404: /* "ApplyStatement" */
+      case 408: /* "ApplyStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 857 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 405: /* "ExitStatement" */
+      case 409: /* "ExitStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 866 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 406: /* "WhileStatement" */
+      case 410: /* "WhileStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 875 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 407: /* "FlowCtlStatement" */
+      case 411: /* "FlowCtlStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 884 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 408: /* "FLWORStatement" */
+      case 412: /* "FLWORStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 893 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 409: /* "ReturnStatement" */
+      case 413: /* "ReturnStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 902 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 410: /* "IfStatement" */
+      case 414: /* "IfStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 911 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 411: /* "TryStatement" */
+      case 415: /* "TryStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 920 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 412: /* "CatchListStatement" */
+      case 416: /* "CatchListStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 929 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 413: /* "CatchStatement" */
+      case 417: /* "CatchStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 938 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 414: /* "Expr" */
+      case 418: /* "Expr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 947 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 415: /* "ExprSingle" */
+      case 419: /* "ExprSingle" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 956 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 416: /* "ExprSimple" */
+      case 420: /* "ExprSimple" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 965 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 417: /* "FLWORExpr" */
+      case 421: /* "FLWORExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 974 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 418: /* "ReturnExpr" */
+      case 422: /* "ReturnExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 983 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 421: /* "FLWORWinCond" */
+      case 425: /* "FLWORWinCond" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 992 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 422: /* "WindowClause" */
+      case 426: /* "WindowClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1001 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 423: /* "CountClause" */
+      case 427: /* "CountClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1010 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 424: /* "ForLetWinClause" */
+      case 428: /* "ForLetWinClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1019 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 426: /* "FLWORClauseList" */
+      case 430: /* "FLWORClauseList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1028 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 427: /* "ForClause" */
+      case 431: /* "ForClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1037 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 428: /* "VarInDeclList" */
+      case 433: /* "VarInDeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1046 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 429: /* "VarInDecl" */
+      case 434: /* "VarInDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1055 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 430: /* "PositionalVar" */
+      case 435: /* "PositionalVar" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1064 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 431: /* "FTScoreVar" */
+      case 436: /* "FTScoreVar" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1073 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 432: /* "LetClause" */
+      case 437: /* "LetClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1082 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 433: /* "VarGetsDeclList" */
+      case 438: /* "VarGetsDeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1091 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 434: /* "VarGetsDecl" */
+      case 439: /* "VarGetsDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1100 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 435: /* "WindowVarDecl" */
+      case 440: /* "WindowVarDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1109 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 436: /* "WindowVars" */
+      case 441: /* "WindowVars" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1118 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 437: /* "WindowVars3" */
+      case 442: /* "WindowVars3" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1127 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 438: /* "WindowVars2" */
+      case 443: /* "WindowVars2" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1136 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 439: /* "WhereClause" */
+      case 444: /* "WhereClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1145 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 440: /* "GroupByClause" */
+      case 445: /* "GroupByClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1154 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 441: /* "GroupSpecList" */
+      case 446: /* "GroupSpecList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1163 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 442: /* "GroupSpec" */
+      case 447: /* "GroupSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1172 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 443: /* "GroupCollationSpec" */
+      case 448: /* "GroupCollationSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1181 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 444: /* "OrderByClause" */
+      case 449: /* "OrderByClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1190 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 445: /* "OrderSpecList" */
+      case 450: /* "OrderSpecList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1199 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 446: /* "OrderSpec" */
+      case 451: /* "OrderSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1208 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 447: /* "OrderModifier" */
+      case 452: /* "OrderModifier" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1217 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 448: /* "OrderDirSpec" */
+      case 453: /* "OrderDirSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1226 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 449: /* "OrderEmptySpec" */
+      case 454: /* "OrderEmptySpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1235 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 450: /* "OrderCollationSpec" */
+      case 455: /* "OrderCollationSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1244 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 451: /* "QuantifiedExpr" */
+      case 456: /* "QuantifiedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1253 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 452: /* "QVarInDeclList" */
+      case 457: /* "QVarInDeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1262 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 453: /* "QVarInDecl" */
+      case 458: /* "QVarInDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1271 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 454: /* "SwitchExpr" */
+      case 459: /* "SwitchExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1280 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 455: /* "SwitchCaseClauseList" */
+      case 460: /* "SwitchCaseClauseList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1289 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 456: /* "SwitchCaseClause" */
+      case 461: /* "SwitchCaseClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1298 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 457: /* "SwitchCaseOperandList" */
+      case 462: /* "SwitchCaseOperandList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1307 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 458: /* "SwitchStatement" */
+      case 463: /* "SwitchStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1316 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 461: /* "TypeswitchExpr" */
+      case 466: /* "TypeswitchExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1325 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 462: /* "TypeswitchStatement" */
+      case 467: /* "TypeswitchStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1334 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 463: /* "CaseClauseList" */
+      case 468: /* "CaseClauseList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1343 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 464: /* "CaseClause" */
+      case 469: /* "CaseClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1352 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 467: /* "SequenceTypeList" */
+      case 472: /* "SequenceTypeList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1361 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 468: /* "IfExpr" */
+      case 473: /* "IfExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1370 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 469: /* "OrExpr" */
+      case 474: /* "OrExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1379 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 470: /* "AndExpr" */
+      case 475: /* "AndExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1388 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 471: /* "ComparisonExpr" */
+      case 476: /* "ComparisonExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1397 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 473: /* "FTContainsExpr" */
+      case 478: /* "FTContainsExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1406 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 474: /* "StringConcatExpr" */
+      case 479: /* "StringConcatExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1415 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 475: /* "opt_FTIgnoreOption" */
+      case 480: /* "opt_FTIgnoreOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1424 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 476: /* "RangeExpr" */
+      case 481: /* "RangeExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1433 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 477: /* "AdditiveExpr" */
+      case 482: /* "AdditiveExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1442 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 478: /* "MultiplicativeExpr" */
+      case 483: /* "MultiplicativeExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1451 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 479: /* "UnionExpr" */
+      case 484: /* "UnionExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1460 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 480: /* "IntersectExceptExpr" */
+      case 485: /* "IntersectExceptExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1469 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 481: /* "InstanceofExpr" */
+      case 486: /* "InstanceofExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1478 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 482: /* "TreatExpr" */
+      case 487: /* "TreatExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1487 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 483: /* "CastableExpr" */
+      case 488: /* "CastableExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1496 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 484: /* "CastExpr" */
+      case 489: /* "CastExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1505 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 485: /* "SingleType" */
+      case 490: /* "SingleType" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1514 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 486: /* "UnaryExpr" */
+      case 491: /* "UnaryExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1523 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 487: /* "SignList" */
+      case 492: /* "SignList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1532 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 488: /* "ValueExpr" */
+      case 493: /* "ValueExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1541 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 489: /* "SimpleMapExpr" */
+      case 494: /* "SimpleMapExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1550 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 490: /* "ValueComp" */
+      case 495: /* "ValueComp" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1559 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 491: /* "NodeComp" */
+      case 496: /* "NodeComp" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1568 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 492: /* "ValidateExpr" */
+      case 497: /* "ValidateExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1577 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 493: /* "ExtensionExpr" */
+      case 498: /* "ExtensionExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1586 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 494: /* "Pragma_list" */
+      case 499: /* "Pragma_list" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1595 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 495: /* "Pragma" */
+      case 500: /* "Pragma" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1604 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 496: /* "PathExpr" */
+      case 501: /* "PathExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1613 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 497: /* "RelativePathExpr" */
+      case 502: /* "RelativePathExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1622 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 498: /* "StepExpr" */
+      case 503: /* "StepExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1631 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 499: /* "NameTest" */
+      case 504: /* "NameTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1640 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 500: /* "Wildcard" */
+      case 505: /* "Wildcard" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1649 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 501: /* "FilterExpr" */
+      case 506: /* "FilterExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1658 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 502: /* "PredicateList" */
+      case 507: /* "PredicateList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1667 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 503: /* "Predicate" */
+      case 508: /* "Predicate" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1676 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 504: /* "PrimaryExpr" */
+      case 509: /* "PrimaryExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1685 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 505: /* "Literal" */
+      case 510: /* "Literal" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1694 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 506: /* "NumericLiteral" */
+      case 511: /* "NumericLiteral" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1703 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 507: /* "VarRef" */
+      case 513: /* "VarRef" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1712 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 508: /* "ParenthesizedExpr" */
+      case 514: /* "ParenthesizedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1721 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 509: /* "ContextItemExpr" */
+      case 515: /* "ContextItemExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1730 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 510: /* "OrderedExpr" */
+      case 516: /* "OrderedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1739 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 511: /* "UnorderedExpr" */
+      case 517: /* "UnorderedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1748 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 512: /* "FunctionCall" */
+      case 518: /* "FunctionCall" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1757 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 513: /* "ArgList" */
+      case 519: /* "ArgList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1766 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 514: /* "Constructor" */
+      case 520: /* "Constructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1775 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 515: /* "DirectConstructor" */
+      case 521: /* "DirectConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1784 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 516: /* "DirElemConstructor" */
+      case 522: /* "DirElemConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1793 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 517: /* "DirElemContentList" */
+      case 523: /* "DirElemContentList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1802 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 518: /* "DirAttributeList" */
+      case 524: /* "DirAttributeList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1811 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 519: /* "DirAttr" */
+      case 525: /* "DirAttr" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1820 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 521: /* "DirAttributeValue" */
+      case 527: /* "DirAttributeValue" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1829 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 522: /* "opt_QuoteAttrContentList" */
+      case 528: /* "opt_QuoteAttrContentList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1838 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 523: /* "QuoteAttrContentList" */
+      case 529: /* "QuoteAttrContentList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1847 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 524: /* "opt_AposAttrContentList" */
+      case 530: /* "opt_AposAttrContentList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1856 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 525: /* "AposAttrContentList" */
+      case 531: /* "AposAttrContentList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1865 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 526: /* "QuoteAttrValueContent" */
+      case 532: /* "QuoteAttrValueContent" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1874 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 527: /* "AposAttrValueContent" */
+      case 533: /* "AposAttrValueContent" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1883 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 528: /* "DirElemContent" */
+      case 534: /* "DirElemContent" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1892 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 529: /* "CommonContent" */
+      case 535: /* "CommonContent" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1901 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 530: /* "DirCommentConstructor" */
+      case 536: /* "DirCommentConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1910 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 531: /* "DirPIConstructor" */
+      case 537: /* "DirPIConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1919 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 532: /* "CDataSection" */
+      case 538: /* "CDataSection" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1928 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 533: /* "ComputedConstructor" */
+      case 539: /* "ComputedConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1937 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 534: /* "CompDocConstructor" */
+      case 540: /* "CompDocConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1946 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 535: /* "CompElemConstructor" */
+      case 541: /* "CompElemConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1955 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 536: /* "CompAttrConstructor" */
+      case 542: /* "CompAttrConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1964 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 537: /* "CompTextConstructor" */
+      case 543: /* "CompTextConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1973 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 538: /* "CompCommentConstructor" */
+      case 544: /* "CompCommentConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1982 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 539: /* "CompPIConstructor" */
+      case 545: /* "CompPIConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 1991 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 540: /* "CompNamespaceConstructor" */
+      case 546: /* "CompNamespaceConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2000 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 541: /* "TypeDeclaration" */
+      case 547: /* "TypeDeclaration" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2009 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 542: /* "SequenceType" */
+      case 548: /* "SequenceType" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2018 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 543: /* "OccurrenceIndicator" */
+      case 549: /* "OccurrenceIndicator" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2027 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 544: /* "ItemType" */
+      case 550: /* "ItemType" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2036 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 545: /* "TypeList" */
+      case 551: /* "TypeList" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2045 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 546: /* "GeneralizedAtomicType" */
+      case 552: /* "GeneralizedAtomicType" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2054 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 547: /* "SimpleType" */
+      case 553: /* "SimpleType" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2063 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 548: /* "KindTest" */
+      case 554: /* "KindTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2072 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 549: /* "AnyKindTest" */
+      case 555: /* "AnyKindTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2081 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 550: /* "DocumentTest" */
+      case 556: /* "DocumentTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2090 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 551: /* "NamespaceTest" */
+      case 557: /* "NamespaceTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2099 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 552: /* "TextTest" */
+      case 558: /* "TextTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2108 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 553: /* "CommentTest" */
+      case 559: /* "CommentTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2117 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 554: /* "PITest" */
+      case 560: /* "PITest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2126 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 555: /* "AttributeTest" */
+      case 561: /* "AttributeTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2135 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 556: /* "SchemaAttributeTest" */
+      case 562: /* "SchemaAttributeTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2144 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 557: /* "ElementTest" */
+      case 563: /* "ElementTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2153 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 558: /* "SchemaElementTest" */
+      case 564: /* "SchemaElementTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2162 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 559: /* "TypeName" */
+      case 565: /* "TypeName" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2171 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 560: /* "TypeName_WITH_HOOK" */
+      case 566: /* "TypeName_WITH_HOOK" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2180 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 561: /* "StringLiteral" */
+      case 567: /* "StringLiteral" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2189 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 566: /* "AnyFunctionTest" */
+      case 572: /* "AnyFunctionTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2198 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 567: /* "TypedFunctionTest" */
+      case 573: /* "TypedFunctionTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2207 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 570: /* "InsertExpr" */
+      case 576: /* "InsertExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2216 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 571: /* "DeleteExpr" */
+      case 577: /* "DeleteExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2225 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 572: /* "ReplaceExpr" */
+      case 578: /* "ReplaceExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2234 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 573: /* "RenameExpr" */
+      case 579: /* "RenameExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2243 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 574: /* "TransformExpr" */
+      case 580: /* "TransformExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2252 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 575: /* "VarNameList" */
+      case 581: /* "VarNameList" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2261 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 576: /* "VarNameDecl" */
+      case 582: /* "VarNameDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2270 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 577: /* "TryExpr" */
+      case 583: /* "TryExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2279 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 578: /* "CatchListExpr" */
+      case 584: /* "CatchListExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2288 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 579: /* "CatchExpr" */
+      case 585: /* "CatchExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2297 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 580: /* "BracedExpr" */
+      case 586: /* "BracedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2306 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 581: /* "NameTestList" */
+      case 587: /* "NameTestList" */
 
 /* Line 480 of lalr1.cc  */
-#line 938 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ delete (yyvaluep->name_test_list); };
 
 /* Line 480 of lalr1.cc  */
 #line 2315 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 582: /* "FTSelection" */
+      case 588: /* "FTSelection" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2324 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 585: /* "FTOr" */
+      case 591: /* "FTOr" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2333 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 586: /* "FTAnd" */
+      case 592: /* "FTAnd" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2342 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 587: /* "FTMildNot" */
+      case 593: /* "FTMildNot" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2351 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 588: /* "FTUnaryNot" */
+      case 594: /* "FTUnaryNot" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2360 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 589: /* "FTPrimaryWithOptions" */
+      case 595: /* "FTPrimaryWithOptions" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2369 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 590: /* "opt_FTMatchOptions" */
+      case 596: /* "opt_FTMatchOptions" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2378 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 592: /* "FTWeight" */
+      case 598: /* "FTWeight" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2387 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 593: /* "FTPrimary" */
+      case 599: /* "FTPrimary" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2396 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 594: /* "opt_FTTimes" */
+      case 600: /* "opt_FTTimes" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2405 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 595: /* "FTExtensionSelection" */
+      case 601: /* "FTExtensionSelection" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2414 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 597: /* "FTWords" */
+      case 603: /* "FTWords" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2423 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 598: /* "FTWordsValue" */
+      case 604: /* "FTWordsValue" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2432 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 600: /* "FTAnyallOption" */
+      case 606: /* "FTAnyallOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2441 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 603: /* "FTPosFilter" */
+      case 609: /* "FTPosFilter" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2450 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 604: /* "FTOrder" */
+      case 610: /* "FTOrder" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2459 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 605: /* "FTWindow" */
+      case 611: /* "FTWindow" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2468 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 606: /* "FTDistance" */
+      case 612: /* "FTDistance" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2477 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 607: /* "FTUnit" */
+      case 613: /* "FTUnit" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2486 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 608: /* "FTMatchOptions" */
+      case 614: /* "FTMatchOptions" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2495 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 609: /* "FTMatchOption" */
+      case 615: /* "FTMatchOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2504 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 610: /* "FTCaseOption" */
+      case 616: /* "FTCaseOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2513 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 611: /* "FTDiacriticsOption" */
+      case 617: /* "FTDiacriticsOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2522 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 612: /* "FTExtensionOption" */
+      case 618: /* "FTExtensionOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2531 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 613: /* "FTStemOption" */
+      case 619: /* "FTStemOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2540 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 614: /* "FTThesaurusOption" */
+      case 620: /* "FTThesaurusOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2549 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 618: /* "FTThesaurusID" */
+      case 624: /* "FTThesaurusID" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2558 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 621: /* "FTStopWordOption" */
+      case 627: /* "FTStopWordOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2567 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 622: /* "FTStopWords" */
+      case 628: /* "FTStopWords" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2576 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 626: /* "FTStopWordsInclExcl" */
+      case 632: /* "FTStopWordsInclExcl" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2585 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 627: /* "FTLanguageOption" */
+      case 633: /* "FTLanguageOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2594 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 628: /* "FTWildCardOption" */
+      case 634: /* "FTWildCardOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2603 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 629: /* "FTContent" */
+      case 635: /* "FTContent" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2612 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 630: /* "FTTimes" */
+      case 636: /* "FTTimes" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2621 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 631: /* "FTRange" */
+      case 637: /* "FTRange" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2630 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 632: /* "FTScope" */
+      case 638: /* "FTScope" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2639 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 633: /* "FTBigUnit" */
+      case 639: /* "FTBigUnit" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2648 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 634: /* "FTIgnoreOption" */
+      case 640: /* "FTIgnoreOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2657 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 635: /* "JSONArrayConstructor" */
+      case 641: /* "JSONArrayConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2666 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 636: /* "JSONSimpleObjectUnion" */
+      case 642: /* "JSONSimpleObjectUnion" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2675 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 637: /* "JSONAccumulatorObjectUnion" */
+      case 643: /* "JSONAccumulatorObjectUnion" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2684 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 638: /* "JSONObjectConstructor" */
+      case 644: /* "JSONObjectConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2693 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 639: /* "JSONPairList" */
+      case 645: /* "JSONPairList" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2702 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 640: /* "JSONInsertExpr" */
+      case 646: /* "JSONInsertExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2711 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 641: /* "JSONAppendExpr" */
+      case 647: /* "JSONAppendExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2720 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 642: /* "JSONDeleteExpr" */
+      case 648: /* "JSONDeleteExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2729 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 643: /* "JSONRenameExpr" */
+      case 649: /* "JSONRenameExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2738 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 644: /* "JSONReplaceExpr" */
+      case 650: /* "JSONReplaceExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2747 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 651: /* "QNAME" */
+      case 657: /* "QNAME" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2756 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 652: /* "FUNCTION_NAME" */
+      case 658: /* "FUNCTION_NAME" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
 #line 2765 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	break;
-      case 653: /* "EQNAME" */
+      case 659: /* "EQNAME" */
 
 /* Line 480 of lalr1.cc  */
-#line 935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
@@ -2986,7 +2986,7 @@
 	  case 3:
 
 /* Line 690 of lalr1.cc  */
-#line 1057 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1069 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -2995,7 +2995,7 @@
   case 4:
 
 /* Line 690 of lalr1.cc  */
-#line 1061 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1073 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -3004,7 +3004,7 @@
   case 5:
 
 /* Line 690 of lalr1.cc  */
-#line 1065 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1077 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       }
@@ -3013,7 +3013,7 @@
   case 6:
 
 /* Line 690 of lalr1.cc  */
-#line 1073 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1085 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL;
       }
@@ -3022,7 +3022,7 @@
   case 7:
 
 /* Line 690 of lalr1.cc  */
-#line 1079 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1091 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
@@ -3031,7 +3031,7 @@
   case 8:
 
 /* Line 690 of lalr1.cc  */
-#line 1083 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1095 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
@@ -3040,7 +3040,7 @@
   case 9:
 
 /* Line 690 of lalr1.cc  */
-#line 1092 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1104 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3050,7 +3050,7 @@
   case 10:
 
 /* Line 690 of lalr1.cc  */
-#line 1098 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1110 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       MainModule* mm = dynamic_cast<MainModule*>((yysemantic_stack_[(2) - (2)].node));
       mm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
@@ -3062,7 +3062,7 @@
   case 11:
 
 /* Line 690 of lalr1.cc  */
-#line 1106 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1118 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3072,7 +3072,7 @@
   case 12:
 
 /* Line 690 of lalr1.cc  */
-#line 1112 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1124 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LibraryModule* lm = dynamic_cast<LibraryModule*>((yysemantic_stack_[(2) - (2)].node));
       lm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
@@ -3084,7 +3084,7 @@
   case 13:
 
 /* Line 690 of lalr1.cc  */
-#line 1123 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1135 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), "utf-8" );
     }
@@ -3093,7 +3093,7 @@
   case 14:
 
 /* Line 690 of lalr1.cc  */
-#line 1128 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1140 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
     }
@@ -3102,7 +3102,7 @@
   case 15:
 
 /* Line 690 of lalr1.cc  */
-#line 1136 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1148 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (1)].node)), NULL);
 
@@ -3113,7 +3113,7 @@
   case 16:
 
 /* Line 690 of lalr1.cc  */
-#line 1143 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1155 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (1)].node)));
 
@@ -3124,7 +3124,7 @@
   case 17:
 
 /* Line 690 of lalr1.cc  */
-#line 1150 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1162 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (1)].node)),
@@ -3137,7 +3137,7 @@
   case 18:
 
 /* Line 690 of lalr1.cc  */
-#line 1159 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1171 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new MainModule( LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(1) - (1)].expr)), NULL );
     }
@@ -3146,7 +3146,7 @@
   case 19:
 
 /* Line 690 of lalr1.cc  */
-#line 1166 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1178 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr); // to prevent the Bison warning
       (yylocation_stack_[(3) - (1)]).step();
@@ -3158,7 +3158,7 @@
   case 20:
 
 /* Line 690 of lalr1.cc  */
-#line 1174 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1186 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr); // to prevent the Bison warning
       (yylocation_stack_[(3) - (1)]).step();
@@ -3170,7 +3170,7 @@
   case 21:
 
 /* Line 690 of lalr1.cc  */
-#line 1182 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1194 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(5) - (1)].node); (yyval.node) = (yysemantic_stack_[(5) - (3)].node); (yyval.node) = (yysemantic_stack_[(5) - (5)].expr); // to prevent the Bison warning
       (yylocation_stack_[(5) - (3)]).step();
@@ -3182,7 +3182,7 @@
   case 22:
 
 /* Line 690 of lalr1.cc  */
-#line 1190 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1202 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(5) - (1)].node); (yyval.node) = (yysemantic_stack_[(5) - (3)].node); (yyval.node) = (yysemantic_stack_[(5) - (5)].expr); // to prevent the Bison warning
       (yylocation_stack_[(5) - (1)]).step();
@@ -3194,7 +3194,7 @@
   case 23:
 
 /* Line 690 of lalr1.cc  */
-#line 1201 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1213 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(1) - (1)].node)), NULL);
     }
@@ -3203,7 +3203,7 @@
   case 24:
 
 /* Line 690 of lalr1.cc  */
-#line 1206 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1218 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (2)].node)), NULL);
 
@@ -3214,7 +3214,7 @@
   case 25:
 
 /* Line 690 of lalr1.cc  */
-#line 1213 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1225 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (2)].node)));
 
@@ -3225,7 +3225,7 @@
   case 26:
 
 /* Line 690 of lalr1.cc  */
-#line 1220 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1232 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (2)].node)),
@@ -3238,7 +3238,7 @@
   case 27:
 
 /* Line 690 of lalr1.cc  */
-#line 1232 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1244 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
 
@@ -3249,7 +3249,7 @@
   case 28:
 
 /* Line 690 of lalr1.cc  */
-#line 1242 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1254 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       SIND_DeclList *sdl = new SIND_DeclList( LOC((yyloc)) );
       sdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3260,7 +3260,7 @@
   case 29:
 
 /* Line 690 of lalr1.cc  */
-#line 1249 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1261 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ((SIND_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -3270,7 +3270,7 @@
   case 30:
 
 /* Line 690 of lalr1.cc  */
-#line 1256 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1268 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       // error
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
@@ -3283,7 +3283,7 @@
   case 44:
 
 /* Line 690 of lalr1.cc  */
-#line 1291 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1303 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::preserve_space);
     }
@@ -3292,7 +3292,7 @@
   case 45:
 
 /* Line 690 of lalr1.cc  */
-#line 1296 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1308 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::strip_space);
     }
@@ -3301,7 +3301,7 @@
   case 46:
 
 /* Line 690 of lalr1.cc  */
-#line 1304 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1316 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultCollationDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)) );
     }
@@ -3310,7 +3310,7 @@
   case 47:
 
 /* Line 690 of lalr1.cc  */
-#line 1312 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1324 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new BaseURIDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
@@ -3319,7 +3319,7 @@
   case 48:
 
 /* Line 690 of lalr1.cc  */
-#line 1320 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1332 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_preserve);
     }
@@ -3328,7 +3328,7 @@
   case 49:
 
 /* Line 690 of lalr1.cc  */
-#line 1325 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1337 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_strip);
     }
@@ -3337,7 +3337,7 @@
   case 50:
 
 /* Line 690 of lalr1.cc  */
-#line 1333 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1345 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::ordered);
     }
@@ -3346,7 +3346,7 @@
   case 51:
 
 /* Line 690 of lalr1.cc  */
-#line 1338 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1350 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::unordered);
     }
@@ -3355,7 +3355,7 @@
   case 52:
 
 /* Line 690 of lalr1.cc  */
-#line 1346 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1358 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_greatest);
     }
@@ -3364,7 +3364,7 @@
   case 53:
 
 /* Line 690 of lalr1.cc  */
-#line 1351 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1363 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_least);
     }
@@ -3373,7 +3373,7 @@
   case 54:
 
 /* Line 690 of lalr1.cc  */
-#line 1359 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1371 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, true);
     }
@@ -3382,7 +3382,7 @@
   case 55:
 
 /* Line 690 of lalr1.cc  */
-#line 1364 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1376 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, false);
     }
@@ -3391,7 +3391,7 @@
   case 56:
 
 /* Line 690 of lalr1.cc  */
-#line 1369 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1381 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, true);
     }
@@ -3400,7 +3400,7 @@
   case 57:
 
 /* Line 690 of lalr1.cc  */
-#line 1374 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1386 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, false);
     }
@@ -3409,7 +3409,7 @@
   case 60:
 
 /* Line 690 of lalr1.cc  */
-#line 1387 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1399 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yyval.node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (2)]), "syntax error, \"import\" should be followed by either \"schema\" or \"module\".");
@@ -3420,7 +3420,7 @@
   case 61:
 
 /* Line 690 of lalr1.cc  */
-#line 1397 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1409 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport( LOC((yyloc)), NULL, SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL );
     }
@@ -3429,7 +3429,7 @@
   case 62:
 
 /* Line 690 of lalr1.cc  */
-#line 1402 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1414 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(4) - (3)].node)),
@@ -3441,7 +3441,7 @@
   case 63:
 
 /* Line 690 of lalr1.cc  */
-#line 1410 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1422 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             NULL,
@@ -3453,7 +3453,7 @@
   case 64:
 
 /* Line 690 of lalr1.cc  */
-#line 1418 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1430 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(6) - (3)].node)),
@@ -3465,7 +3465,7 @@
   case 65:
 
 /* Line 690 of lalr1.cc  */
-#line 1429 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1441 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       URILiteralList *ull = new URILiteralList( LOC((yyloc)));
       ull->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -3476,7 +3476,7 @@
   case 66:
 
 /* Line 690 of lalr1.cc  */
-#line 1436 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1448 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ( URILiteralList *ull = dynamic_cast<URILiteralList*>((yysemantic_stack_[(3) - (1)].node)) )
         ull->push_back( SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
@@ -3488,7 +3488,7 @@
   case 67:
 
 /* Line 690 of lalr1.cc  */
-#line 1447 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1459 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
@@ -3497,7 +3497,7 @@
   case 68:
 
 /* Line 690 of lalr1.cc  */
-#line 1452 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1464 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), true );
     }
@@ -3506,7 +3506,7 @@
   case 69:
 
 /* Line 690 of lalr1.cc  */
-#line 1460 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1472 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL);
 
@@ -3517,7 +3517,7 @@
   case 70:
 
 /* Line 690 of lalr1.cc  */
-#line 1467 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1479 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (4)].sval)), SYMTAB((yysemantic_stack_[(6) - (6)].sval)), NULL);
 
@@ -3528,7 +3528,7 @@
   case 71:
 
 /* Line 690 of lalr1.cc  */
-#line 1474 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1486 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(5) - (3)].sval)),
@@ -3541,7 +3541,7 @@
   case 72:
 
 /* Line 690 of lalr1.cc  */
-#line 1483 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1495 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(8) - (4)].sval)),
@@ -3555,7 +3555,7 @@
   case 73:
 
 /* Line 690 of lalr1.cc  */
-#line 1496 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1508 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new NamespaceDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(5) - (3)].sval)), SYMTAB((yysemantic_stack_[(5) - (5)].sval)) );
     }
@@ -3564,7 +3564,7 @@
   case 74:
 
 /* Line 690 of lalr1.cc  */
-#line 1504 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1516 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_element_default,
@@ -3575,7 +3575,7 @@
   case 75:
 
 /* Line 690 of lalr1.cc  */
-#line 1511 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1523 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_function_default,
@@ -3586,7 +3586,7 @@
   case 76:
 
 /* Line 690 of lalr1.cc  */
-#line 1521 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1533 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VFO_DeclList *vdl = new VFO_DeclList( LOC((yyloc)));
       vdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3597,7 +3597,7 @@
   case 77:
 
 /* Line 690 of lalr1.cc  */
-#line 1528 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1540 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ((VFO_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -3607,7 +3607,7 @@
   case 78:
 
 /* Line 690 of lalr1.cc  */
-#line 1535 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1547 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
       (yylocation_stack_[(3) - (1)]).step();
@@ -3619,7 +3619,7 @@
   case 87:
 
 /* Line 690 of lalr1.cc  */
-#line 1558 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1570 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
@@ -3629,7 +3629,7 @@
   case 88:
 
 /* Line 690 of lalr1.cc  */
-#line 1564 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1576 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
@@ -3639,7 +3639,7 @@
   case 89:
 
 /* Line 690 of lalr1.cc  */
-#line 1573 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1585 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.vstrpair) = new vector<string_pair_t>();
       (yyval.vstrpair)->push_back( *(yysemantic_stack_[(1) - (1)].strpair) );
@@ -3650,7 +3650,7 @@
   case 90:
 
 /* Line 690 of lalr1.cc  */
-#line 1580 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1592 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yysemantic_stack_[(2) - (1)].vstrpair)->push_back( *(yysemantic_stack_[(2) - (2)].strpair) );
       delete (yysemantic_stack_[(2) - (2)].strpair);
@@ -3661,7 +3661,7 @@
   case 91:
 
 /* Line 690 of lalr1.cc  */
-#line 1590 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1602 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       StringLiteral *sl = static_cast<StringLiteral*>((yysemantic_stack_[(3) - (3)].expr));
       (yyval.strpair) = new string_pair_t( (yysemantic_stack_[(3) - (1)].strval), sl->get_strval().str() );
@@ -3672,77 +3672,77 @@
   case 92:
 
 /* Line 690 of lalr1.cc  */
-#line 1599 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1611 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "decimal-separator"; }
     break;
 
   case 93:
 
 /* Line 690 of lalr1.cc  */
-#line 1600 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1612 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "digit"; }
     break;
 
   case 94:
 
 /* Line 690 of lalr1.cc  */
-#line 1601 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1613 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "grouping-separator"; }
     break;
 
   case 95:
 
 /* Line 690 of lalr1.cc  */
-#line 1602 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1614 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "infinty"; }
     break;
 
   case 96:
 
 /* Line 690 of lalr1.cc  */
-#line 1603 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1615 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "minus-sign"; }
     break;
 
   case 97:
 
 /* Line 690 of lalr1.cc  */
-#line 1604 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1616 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "NaN"; }
     break;
 
   case 98:
 
 /* Line 690 of lalr1.cc  */
-#line 1605 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1617 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "pattern-separator"; }
     break;
 
   case 99:
 
 /* Line 690 of lalr1.cc  */
-#line 1606 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1618 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "percent"; }
     break;
 
   case 100:
 
 /* Line 690 of lalr1.cc  */
-#line 1607 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1619 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "per-mille"; }
     break;
 
   case 101:
 
 /* Line 690 of lalr1.cc  */
-#line 1608 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1620 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.strval) = "zero-digit"; }
     break;
 
   case 102:
 
 /* Line 690 of lalr1.cc  */
-#line 1614 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1626 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new OptionDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)));
     }
@@ -3751,7 +3751,7 @@
   case 103:
 
 /* Line 690 of lalr1.cc  */
-#line 1622 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1634 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FTOptionDecl( LOC((yyloc)), dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (3)].node)) );
     }
@@ -3760,7 +3760,7 @@
   case 104:
 
 /* Line 690 of lalr1.cc  */
-#line 1630 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1642 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(4) - (4)].node);
     }
@@ -3769,7 +3769,7 @@
   case 105:
 
 /* Line 690 of lalr1.cc  */
-#line 1638 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1650 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(3) - (3)].node));
       d->theType = (yysemantic_stack_[(3) - (2)].node);
@@ -3780,7 +3780,7 @@
   case 106:
 
 /* Line 690 of lalr1.cc  */
-#line 1645 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1657 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -3789,7 +3789,7 @@
   case 107:
 
 /* Line 690 of lalr1.cc  */
-#line 1653 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1665 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(1) - (1)].node));
       d->theIsExternal = false;
@@ -3800,7 +3800,7 @@
   case 108:
 
 /* Line 690 of lalr1.cc  */
-#line 1660 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1672 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), NULL);
     }
@@ -3809,7 +3809,7 @@
   case 109:
 
 /* Line 690 of lalr1.cc  */
-#line 1665 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1677 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
     }
@@ -3818,7 +3818,7 @@
   case 110:
 
 /* Line 690 of lalr1.cc  */
-#line 1673 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1685 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
@@ -3827,7 +3827,7 @@
   case 111:
 
 /* Line 690 of lalr1.cc  */
-#line 1681 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1693 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(4) - (2)].varnametype)));
 
@@ -3845,7 +3845,7 @@
   case 112:
 
 /* Line 690 of lalr1.cc  */
-#line 1695 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1707 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(3) - (2)].varnametype)));
 
@@ -3863,7 +3863,7 @@
   case 113:
 
 /* Line 690 of lalr1.cc  */
-#line 1709 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1721 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(5) - (2)].varnametype)));
 
@@ -3881,7 +3881,7 @@
   case 114:
 
 /* Line 690 of lalr1.cc  */
-#line 1726 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1738 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL, NULL);
     }
@@ -3890,7 +3890,7 @@
   case 115:
 
 /* Line 690 of lalr1.cc  */
-#line 1731 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1743 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)),
@@ -3902,7 +3902,7 @@
   case 116:
 
 /* Line 690 of lalr1.cc  */
-#line 1739 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1751 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -3914,7 +3914,7 @@
   case 117:
 
 /* Line 690 of lalr1.cc  */
-#line 1747 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1759 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (4)].expr)),
@@ -3926,7 +3926,7 @@
   case 118:
 
 /* Line 690 of lalr1.cc  */
-#line 1758 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1770 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationListParsenode(LOC((yyloc)), static_cast<AnnotationParsenode*>((yysemantic_stack_[(1) - (1)].node)));
     }
@@ -3935,7 +3935,7 @@
   case 119:
 
 /* Line 690 of lalr1.cc  */
-#line 1763 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1775 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       static_cast<AnnotationListParsenode*>((yysemantic_stack_[(2) - (1)].node))->push_back(static_cast<AnnotationParsenode*>((yysemantic_stack_[(2) - (2)].node)));
       (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
@@ -3945,7 +3945,7 @@
   case 120:
 
 /* Line 690 of lalr1.cc  */
-#line 1772 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1784 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))), NULL);
     }
@@ -3954,7 +3954,7 @@
   case 121:
 
 /* Line 690 of lalr1.cc  */
-#line 1777 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1789 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval))),
@@ -3965,7 +3965,7 @@
   case 122:
 
 /* Line 690 of lalr1.cc  */
-#line 1784 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1796 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), true), NULL);
     }
@@ -3974,7 +3974,7 @@
   case 123:
 
 /* Line 690 of lalr1.cc  */
-#line 1789 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1801 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval)), true),
@@ -3985,7 +3985,7 @@
   case 124:
 
 /* Line 690 of lalr1.cc  */
-#line 1799 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1811 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AnnotationLiteralListParsenode(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr));
     }
@@ -3994,7 +3994,7 @@
   case 125:
 
 /* Line 690 of lalr1.cc  */
-#line 1804 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1816 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       static_cast<AnnotationLiteralListParsenode*>((yysemantic_stack_[(3) - (1)].node))->push_back((yysemantic_stack_[(3) - (3)].expr));
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -4004,7 +4004,7 @@
   case 126:
 
 /* Line 690 of lalr1.cc  */
-#line 1813 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1825 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       static_cast<FunctionDecl*>((yysemantic_stack_[(2) - (2)].node))->setComment( SYMTAB((yysemantic_stack_[(2) - (1)].sval)) );
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
@@ -4014,7 +4014,7 @@
   case 127:
 
 /* Line 690 of lalr1.cc  */
-#line 1819 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1831 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       FunctionDecl* fdecl = static_cast<FunctionDecl*>((yysemantic_stack_[(3) - (3)].node));
 
@@ -4028,7 +4028,7 @@
   case 128:
 
 /* Line 690 of lalr1.cc  */
-#line 1832 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1844 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -4037,7 +4037,7 @@
   case 129:
 
 /* Line 690 of lalr1.cc  */
-#line 1837 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1849 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -4046,7 +4046,7 @@
   case 130:
 
 /* Line 690 of lalr1.cc  */
-#line 1845 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1857 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4062,7 +4062,7 @@
   case 131:
 
 /* Line 690 of lalr1.cc  */
-#line 1856 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1868 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4078,7 +4078,7 @@
   case 132:
 
 /* Line 690 of lalr1.cc  */
-#line 1871 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1883 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4094,7 +4094,7 @@
   case 133:
 
 /* Line 690 of lalr1.cc  */
-#line 1883 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4110,7 +4110,7 @@
   case 134:
 
 /* Line 690 of lalr1.cc  */
-#line 1898 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1910 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL);
     }
@@ -4119,7 +4119,7 @@
   case 135:
 
 /* Line 690 of lalr1.cc  */
-#line 1903 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1915 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (2)].node)));
     }
@@ -4128,7 +4128,7 @@
   case 136:
 
 /* Line 690 of lalr1.cc  */
-#line 1908 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1920 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL, dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node)));
     }
@@ -4137,7 +4137,7 @@
   case 137:
 
 /* Line 690 of lalr1.cc  */
-#line 1913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1925 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(5) - (2)].node)), dynamic_cast<SequenceType*>((yysemantic_stack_[(5) - (5)].node)));
     }
@@ -4146,7 +4146,7 @@
   case 138:
 
 /* Line 690 of lalr1.cc  */
-#line 1921 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ParamList *pl = new ParamList( LOC((yyloc)) );
       pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -4157,7 +4157,7 @@
   case 139:
 
 /* Line 690 of lalr1.cc  */
-#line 1928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ( ParamList *pl = dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (1)].node)) )
         pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -4169,7 +4169,7 @@
   case 140:
 
 /* Line 690 of lalr1.cc  */
-#line 1939 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1951 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL);
     }
@@ -4178,7 +4178,7 @@
   case 141:
 
 /* Line 690 of lalr1.cc  */
-#line 1944 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1956 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)),
                      static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4189,7 +4189,7 @@
   case 142:
 
 /* Line 690 of lalr1.cc  */
-#line 1954 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1966 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)),
@@ -4203,7 +4203,7 @@
   case 143:
 
 /* Line 690 of lalr1.cc  */
-#line 1963 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1975 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4217,7 +4217,7 @@
   case 144:
 
 /* Line 690 of lalr1.cc  */
-#line 1972 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1984 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -4231,7 +4231,7 @@
   case 145:
 
 /* Line 690 of lalr1.cc  */
-#line 1981 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 1993 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)),
@@ -4245,7 +4245,7 @@
   case 146:
 
 /* Line 690 of lalr1.cc  */
-#line 1993 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2005 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
@@ -4254,7 +4254,7 @@
   case 147:
 
 /* Line 690 of lalr1.cc  */
-#line 1997 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2009 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4265,7 +4265,7 @@
   case 148:
 
 /* Line 690 of lalr1.cc  */
-#line 2003 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2015 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
@@ -4274,7 +4274,7 @@
   case 149:
 
 /* Line 690 of lalr1.cc  */
-#line 2007 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2019 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4286,7 +4286,7 @@
   case 150:
 
 /* Line 690 of lalr1.cc  */
-#line 2017 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2029 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(8) - (3)].expr)),
@@ -4301,7 +4301,7 @@
   case 151:
 
 /* Line 690 of lalr1.cc  */
-#line 2027 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2039 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(9) - (4)].expr)),
@@ -4316,7 +4316,7 @@
   case 152:
 
 /* Line 690 of lalr1.cc  */
-#line 2040 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2052 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       IndexKeyList* keyList = new IndexKeyList(LOC((yyloc)));
       keyList->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -4327,7 +4327,7 @@
   case 153:
 
 /* Line 690 of lalr1.cc  */
-#line 2046 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2058 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       dynamic_cast<IndexKeyList*>((yysemantic_stack_[(3) - (1)].node))->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(3) - (3)].node)));
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -4337,7 +4337,7 @@
   case 154:
 
 /* Line 690 of lalr1.cc  */
-#line 2055 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2067 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL, NULL);
     }
@@ -4346,7 +4346,7 @@
   case 155:
 
 /* Line 690 of lalr1.cc  */
-#line 2060 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2072 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4358,7 +4358,7 @@
   case 156:
 
 /* Line 690 of lalr1.cc  */
-#line 2067 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2079 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4370,7 +4370,7 @@
   case 157:
 
 /* Line 690 of lalr1.cc  */
-#line 2074 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2086 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(3) - (1)].expr),
@@ -4382,7 +4382,7 @@
   case 158:
 
 /* Line 690 of lalr1.cc  */
-#line 2086 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2098 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollSimpleCheck(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(11) - (4)].expr)),
@@ -4395,7 +4395,7 @@
   case 159:
 
 /* Line 690 of lalr1.cc  */
-#line 2096 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2108 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollUniqueKeyCheck(LOC((yyloc)),
                                     static_cast<QName*>((yysemantic_stack_[(14) - (4)].expr)),
@@ -4408,7 +4408,7 @@
   case 160:
 
 /* Line 690 of lalr1.cc  */
-#line 2106 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2118 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICCollForeachNode(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(13) - (4)].expr)),
@@ -4421,7 +4421,7 @@
   case 161:
 
 /* Line 690 of lalr1.cc  */
-#line 2117 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2129 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ICForeignKey( LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(22) - (4)].expr)),
@@ -4437,7 +4437,7 @@
   case 162:
 
 /* Line 690 of lalr1.cc  */
-#line 2133 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2145 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ((yysemantic_stack_[(1) - (1)].expr) == NULL)
       {
@@ -4458,7 +4458,7 @@
   case 163:
 
 /* Line 690 of lalr1.cc  */
-#line 2153 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2165 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4467,7 +4467,7 @@
   case 164:
 
 /* Line 690 of lalr1.cc  */
-#line 2157 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2169 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4476,7 +4476,7 @@
   case 165:
 
 /* Line 690 of lalr1.cc  */
-#line 2161 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2173 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) =  NULL;
     }
@@ -4485,7 +4485,7 @@
   case 166:
 
 /* Line 690 of lalr1.cc  */
-#line 2169 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2181 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4494,7 +4494,7 @@
   case 167:
 
 /* Line 690 of lalr1.cc  */
-#line 2173 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2185 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4503,7 +4503,7 @@
   case 168:
 
 /* Line 690 of lalr1.cc  */
-#line 2177 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2189 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) =  new BlockBody(LOC((yyloc)));
     }
@@ -4512,7 +4512,7 @@
   case 169:
 
 /* Line 690 of lalr1.cc  */
-#line 2185 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2197 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4521,7 +4521,7 @@
   case 170:
 
 /* Line 690 of lalr1.cc  */
-#line 2190 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2202 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -4534,7 +4534,7 @@
   case 171:
 
 /* Line 690 of lalr1.cc  */
-#line 2202 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2214 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = new BlockBody(LOC((yyloc)));
       blk->add((yysemantic_stack_[(1) - (1)].expr));
@@ -4545,7 +4545,7 @@
   case 172:
 
 /* Line 690 of lalr1.cc  */
-#line 2209 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2221 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -4558,7 +4558,7 @@
   case 173:
 
 /* Line 690 of lalr1.cc  */
-#line 2219 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2231 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(4) - (1)].expr); // to prevent the Bison warning
       (yyval.expr) = (yysemantic_stack_[(4) - (2)].expr); // to prevent the Bison warning
@@ -4574,7 +4574,7 @@
   case 186:
 
 /* Line 690 of lalr1.cc  */
-#line 2251 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2263 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -4583,7 +4583,7 @@
   case 187:
 
 /* Line 690 of lalr1.cc  */
-#line 2256 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2268 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new BlockBody(LOC((yyloc)));
     }
@@ -4592,7 +4592,7 @@
   case 188:
 
 /* Line 690 of lalr1.cc  */
-#line 2264 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2276 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (dynamic_cast<BlockBody*>((yysemantic_stack_[(3) - (2)].expr)) == NULL)
       {
@@ -4610,7 +4610,7 @@
   case 189:
 
 /* Line 690 of lalr1.cc  */
-#line 2281 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2293 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -4619,7 +4619,7 @@
   case 190:
 
 /* Line 690 of lalr1.cc  */
-#line 2289 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2301 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(2) - (1)].expr);
     }
@@ -4628,7 +4628,7 @@
   case 191:
 
 /* Line 690 of lalr1.cc  */
-#line 2297 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2309 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = static_cast<VarDeclStmt*>((yysemantic_stack_[(3) - (1)].expr));
       vdecl->add((yysemantic_stack_[(3) - (3)].node));
@@ -4639,7 +4639,7 @@
   case 192:
 
 /* Line 690 of lalr1.cc  */
-#line 2304 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2316 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)), NULL);
       vdecl->add((yysemantic_stack_[(2) - (2)].node));
@@ -4650,7 +4650,7 @@
   case 193:
 
 /* Line 690 of lalr1.cc  */
-#line 2311 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2323 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)),
                                            static_cast<AnnotationListParsenode*>((yysemantic_stack_[(3) - (1)].node)));
@@ -4662,7 +4662,7 @@
   case 194:
 
 /* Line 690 of lalr1.cc  */
-#line 2322 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2334 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)),
@@ -4676,7 +4676,7 @@
   case 195:
 
 /* Line 690 of lalr1.cc  */
-#line 2331 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2343 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4690,7 +4690,7 @@
   case 196:
 
 /* Line 690 of lalr1.cc  */
-#line 2340 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2352 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4704,7 +4704,7 @@
   case 197:
 
 /* Line 690 of lalr1.cc  */
-#line 2349 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2361 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4718,7 +4718,7 @@
   case 198:
 
 /* Line 690 of lalr1.cc  */
-#line 2362 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2374 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new AssignExpr(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)), (yysemantic_stack_[(5) - (4)].expr));
     }
@@ -4727,7 +4727,7 @@
   case 199:
 
 /* Line 690 of lalr1.cc  */
-#line 2370 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2382 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ApplyExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr));
     }
@@ -4736,7 +4736,7 @@
   case 200:
 
 /* Line 690 of lalr1.cc  */
-#line 2378 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2390 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ExitExpr(LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr));
     }
@@ -4745,7 +4745,7 @@
   case 201:
 
 /* Line 690 of lalr1.cc  */
-#line 2386 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2398 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       BlockBody* bb = dynamic_cast<BlockBody *>((yysemantic_stack_[(5) - (5)].expr));
       if (bb == NULL)
@@ -4761,7 +4761,7 @@
   case 202:
 
 /* Line 690 of lalr1.cc  */
-#line 2401 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2413 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement(LOC((yyloc)), FlowCtlStatement::BREAK);
     }
@@ -4770,7 +4770,7 @@
   case 203:
 
 /* Line 690 of lalr1.cc  */
-#line 2406 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2418 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement( LOC((yyloc)), FlowCtlStatement::CONTINUE );
     }
@@ -4779,7 +4779,7 @@
   case 204:
 
 /* Line 690 of lalr1.cc  */
-#line 2414 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2426 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ReturnExpr* re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4794,7 +4794,7 @@
   case 205:
 
 /* Line 690 of lalr1.cc  */
-#line 2428 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2440 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* retExpr = (yysemantic_stack_[(2) - (2)].expr);
 
@@ -4812,7 +4812,7 @@
   case 206:
 
 /* Line 690 of lalr1.cc  */
-#line 2445 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2457 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       exprnode* thenExpr = (yysemantic_stack_[(8) - (6)].expr);
       exprnode* elseExpr = (yysemantic_stack_[(8) - (8)].expr);
@@ -4838,7 +4838,7 @@
   case 207:
 
 /* Line 690 of lalr1.cc  */
-#line 2470 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2482 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new TryExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), (yysemantic_stack_[(3) - (3)].expr));
     }
@@ -4847,7 +4847,7 @@
   case 208:
 
 /* Line 690 of lalr1.cc  */
-#line 2478 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2490 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CatchListExpr* cle = new CatchListExpr( LOC((yyloc)) );
       cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -4858,7 +4858,7 @@
   case 209:
 
 /* Line 690 of lalr1.cc  */
-#line 2485 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2497 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
       if ( cle )
@@ -4870,7 +4870,7 @@
   case 210:
 
 /* Line 690 of lalr1.cc  */
-#line 2496 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2508 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new CatchExpr(LOC((yyloc)), *(yysemantic_stack_[(3) - (2)].name_test_list), (yysemantic_stack_[(3) - (3)].expr));
        delete (yysemantic_stack_[(3) - (2)].name_test_list);
@@ -4880,7 +4880,7 @@
   case 211:
 
 /* Line 690 of lalr1.cc  */
-#line 2506 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2518 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4889,7 +4889,7 @@
   case 212:
 
 /* Line 690 of lalr1.cc  */
-#line 2511 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2523 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       Expr* expr = dynamic_cast<Expr*>((yysemantic_stack_[(3) - (1)].expr));
       if ( !expr )
@@ -4905,7 +4905,7 @@
   case 213:
 
 /* Line 690 of lalr1.cc  */
-#line 2524 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2536 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (1)].expr); // to prevent the Bison warning
       (yyval.expr) = (yysemantic_stack_[(3) - (3)].expr); // to prevent the Bison warning
@@ -4923,7 +4923,7 @@
   case 232:
 
 /* Line 690 of lalr1.cc  */
-#line 2571 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2583 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ReturnExpr *re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4938,7 +4938,7 @@
   case 233:
 
 /* Line 690 of lalr1.cc  */
-#line 2585 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2597 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new ReturnExpr( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr) );
     }
@@ -4947,7 +4947,7 @@
   case 234:
 
 /* Line 690 of lalr1.cc  */
-#line 2593 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2605 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_sliding;
     }
@@ -4956,7 +4956,7 @@
   case 235:
 
 /* Line 690 of lalr1.cc  */
-#line 2598 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2610 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_tumbling;
     }
@@ -4965,7 +4965,7 @@
   case 236:
 
 /* Line 690 of lalr1.cc  */
-#line 2606 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2618 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_start;
     }
@@ -4974,7 +4974,7 @@
   case 237:
 
 /* Line 690 of lalr1.cc  */
-#line 2611 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2623 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.strval) = parser::the_end;
     }
@@ -4983,7 +4983,7 @@
   case 238:
 
 /* Line 690 of lalr1.cc  */
-#line 2616 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2628 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
     (yyval.strval) = parser::the_only_end;
   }
@@ -4992,7 +4992,7 @@
   case 239:
 
 /* Line 690 of lalr1.cc  */
-#line 2624 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2636 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             dynamic_cast<WindowVars*>((yysemantic_stack_[(4) - (2)].node)),
@@ -5005,7 +5005,7 @@
   case 240:
 
 /* Line 690 of lalr1.cc  */
-#line 2633 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2645 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             NULL,
@@ -5018,7 +5018,7 @@
   case 241:
 
 /* Line 690 of lalr1.cc  */
-#line 2645 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2657 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(5) - (2)].strval) == parser::the_tumbling ?
@@ -5033,7 +5033,7 @@
   case 242:
 
 /* Line 690 of lalr1.cc  */
-#line 2655 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2667 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(4) - (2)].strval) == parser::the_tumbling ?
@@ -5047,7 +5047,7 @@
   case 243:
 
 /* Line 690 of lalr1.cc  */
-#line 2668 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2680 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new CountClause(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -5056,7 +5056,7 @@
   case 252:
 
 /* Line 690 of lalr1.cc  */
-#line 2692 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2704 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       FLWORClauseList *fcl = new FLWORClauseList( LOC((yyloc)) );
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5067,7 +5067,7 @@
   case 253:
 
 /* Line 690 of lalr1.cc  */
-#line 2699 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2711 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       FLWORClauseList *fcl = dynamic_cast<FLWORClauseList*>((yysemantic_stack_[(2) - (1)].node));
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -5078,7 +5078,7 @@
   case 254:
 
 /* Line 690 of lalr1.cc  */
-#line 2709 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2721 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new ForClause(LOC((yyloc)), dynamic_cast<VarInDeclList*>((yysemantic_stack_[(3) - (3)].node)));
     }
@@ -5087,7 +5087,7 @@
   case 255:
 
 /* Line 690 of lalr1.cc  */
-#line 2715 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2727 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected qualified name \""
@@ -5100,7 +5100,7 @@
   case 256:
 
 /* Line 690 of lalr1.cc  */
-#line 2724 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2736 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = NULL; // to prevent the Bison warning
       error((yylocation_stack_[(2) - (2)]), ""); // the error message is already set in the driver's parseError member
@@ -5108,10 +5108,19 @@
     }
     break;
 
-  case 257:
-
-/* Line 690 of lalr1.cc  */
-#line 2734 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+  case 258:
+
+/* Line 690 of lalr1.cc  */
+#line 2744 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      // this adds on shift-reduce conflict (probably with FTRange expression)
+    }
+    break;
+
+  case 259:
+
+/* Line 690 of lalr1.cc  */
+#line 2752 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       VarInDeclList* vdl = new VarInDeclList( LOC((yyloc)) );
       vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5119,10 +5128,10 @@
     }
     break;
 
-  case 258:
+  case 260:
 
 /* Line 690 of lalr1.cc  */
-#line 2741 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2759 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ( VarInDeclList* vdl = dynamic_cast<VarInDeclList*>((yysemantic_stack_[(4) - (1)].node)) )
         vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
@@ -5130,10 +5139,10 @@
     }
     break;
 
-  case 259:
+  case 261:
 
 /* Line 690 of lalr1.cc  */
-#line 2749 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2767 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (3)]), "syntax error, unexpected QName \""
@@ -5143,10 +5152,10 @@
     }
     break;
 
-  case 260:
+  case 262:
 
 /* Line 690 of lalr1.cc  */
-#line 2761 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2779 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)),
@@ -5158,47 +5167,17 @@
     }
     break;
 
-  case 261:
-
-/* Line 690 of lalr1.cc  */
-#line 2771 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = new VarInDecl(LOC((yyloc)),
-                         static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
-                         NULL,
-                         NULL,
-                         NULL,
-                         (yysemantic_stack_[(5) - (5)].expr),
-                         true);
-    }
-    break;
-
-  case 262:
-
-/* Line 690 of lalr1.cc  */
-#line 2781 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.node) = new VarInDecl(LOC((yyloc)),
-                         static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
-                         dynamic_cast<SequenceType *>((yysemantic_stack_[(4) - (2)].node)),
-                         NULL,
-                         NULL,
-                         (yysemantic_stack_[(4) - (4)].expr),
-                         false);
-    }
-    break;
-
   case 263:
 
 /* Line 690 of lalr1.cc  */
-#line 2791 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2789 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
-                         static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
-                         dynamic_cast<SequenceType *>((yysemantic_stack_[(6) - (2)].node)),
-                         NULL,
-                         NULL,
-                         (yysemantic_stack_[(6) - (6)].expr),
+                         static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
+                         NULL,
+                         NULL,
+                         NULL,
+                         (yysemantic_stack_[(5) - (5)].expr),
                          true);
     }
     break;
@@ -5206,7 +5185,37 @@
   case 264:
 
 /* Line 690 of lalr1.cc  */
-#line 2801 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2799 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new VarInDecl(LOC((yyloc)),
+                         static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
+                         dynamic_cast<SequenceType *>((yysemantic_stack_[(4) - (2)].node)),
+                         NULL,
+                         NULL,
+                         (yysemantic_stack_[(4) - (4)].expr),
+                         false);
+    }
+    break;
+
+  case 265:
+
+/* Line 690 of lalr1.cc  */
+#line 2809 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new VarInDecl(LOC((yyloc)),
+                         static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
+                         dynamic_cast<SequenceType *>((yysemantic_stack_[(6) - (2)].node)),
+                         NULL,
+                         NULL,
+                         (yysemantic_stack_[(6) - (6)].expr),
+                         true);
+    }
+    break;
+
+  case 266:
+
+/* Line 690 of lalr1.cc  */
+#line 2819 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5218,10 +5227,10 @@
     }
     break;
 
-  case 265:
+  case 267:
 
 /* Line 690 of lalr1.cc  */
-#line 2811 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2829 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5233,10 +5242,10 @@
     }
     break;
 
-  case 266:
+  case 268:
 
 /* Line 690 of lalr1.cc  */
-#line 2821 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2839 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5248,10 +5257,10 @@
     }
     break;
 
-  case 267:
+  case 269:
 
 /* Line 690 of lalr1.cc  */
-#line 2831 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2849 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(7) - (1)].expr)),
@@ -5263,10 +5272,10 @@
     }
     break;
 
-  case 268:
+  case 270:
 
 /* Line 690 of lalr1.cc  */
-#line 2842 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2860 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5277,10 +5286,10 @@
     }
     break;
 
-  case 269:
+  case 271:
 
 /* Line 690 of lalr1.cc  */
-#line 2851 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2869 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5292,10 +5301,10 @@
     }
     break;
 
-  case 270:
+  case 272:
 
 /* Line 690 of lalr1.cc  */
-#line 2861 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2879 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5307,10 +5316,10 @@
     }
     break;
 
-  case 271:
+  case 273:
 
 /* Line 690 of lalr1.cc  */
-#line 2871 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2889 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5322,37 +5331,37 @@
     }
     break;
 
-  case 272:
+  case 274:
 
 /* Line 690 of lalr1.cc  */
-#line 2887 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2905 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new PositionalVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
-  case 273:
+  case 275:
 
 /* Line 690 of lalr1.cc  */
-#line 2896 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2914 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new FTScoreVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
-  case 274:
+  case 276:
 
 /* Line 690 of lalr1.cc  */
-#line 2905 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new LetClause( LOC((yyloc)), dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(2) - (2)].node)) );
         }
     break;
 
-  case 275:
+  case 277:
 
 /* Line 690 of lalr1.cc  */
-#line 2913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             VarGetsDeclList *vgdl = new VarGetsDeclList( LOC((yyloc)) );
             vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5360,10 +5369,10 @@
         }
     break;
 
-  case 276:
+  case 278:
 
 /* Line 690 of lalr1.cc  */
-#line 2919 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2937 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             if( VarGetsDeclList *vgdl = dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(3) - (1)].node)) )
                 vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -5371,10 +5380,10 @@
         }
     break;
 
-  case 277:
+  case 279:
 
 /* Line 690 of lalr1.cc  */
-#line 2931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2949 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5384,10 +5393,10 @@
     }
     break;
 
-  case 278:
+  case 280:
 
 /* Line 690 of lalr1.cc  */
-#line 2939 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2957 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5397,10 +5406,10 @@
     }
     break;
 
-  case 279:
+  case 281:
 
 /* Line 690 of lalr1.cc  */
-#line 2949 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2967 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            dynamic_cast<FTScoreVar*>((yysemantic_stack_[(3) - (1)].node))->get_var_name(),
@@ -5410,10 +5419,10 @@
      }
     break;
 
-  case 280:
+  case 282:
 
 /* Line 690 of lalr1.cc  */
-#line 2957 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2975 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5423,10 +5432,10 @@
     }
     break;
 
-  case 281:
+  case 283:
 
 /* Line 690 of lalr1.cc  */
-#line 2969 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2987 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5434,10 +5443,10 @@
     }
     break;
 
-  case 282:
+  case 284:
 
 /* Line 690 of lalr1.cc  */
-#line 2975 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 2993 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5446,93 +5455,93 @@
     }
     break;
 
-  case 284:
+  case 286:
 
 /* Line 690 of lalr1.cc  */
-#line 2988 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3006 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL);
     }
     break;
 
-  case 285:
+  case 287:
 
 /* Line 690 of lalr1.cc  */
-#line 2992 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3010 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       dynamic_cast<WindowVars *>((yyval.node))->set_curr(static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)));
     }
     break;
 
-  case 286:
+  case 288:
 
 /* Line 690 of lalr1.cc  */
-#line 3000 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3018 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), dynamic_cast<PositionalVar*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL, NULL);
     }
     break;
 
-  case 287:
+  case 289:
 
 /* Line 690 of lalr1.cc  */
-#line 3004 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3022 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       dynamic_cast<WindowVars *>((yyval.node))->set_posvar(dynamic_cast<PositionalVar*>((yysemantic_stack_[(2) - (1)].node)));
     }
     break;
 
-  case 289:
+  case 291:
 
 /* Line 690 of lalr1.cc  */
-#line 3013 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3031 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), static_cast<QName*>((yysemantic_stack_[(6) - (6)].expr)));
     }
     break;
 
-  case 290:
+  case 292:
 
 /* Line 690 of lalr1.cc  */
-#line 3017 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3035 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
     break;
 
-  case 291:
+  case 293:
 
 /* Line 690 of lalr1.cc  */
-#line 3021 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3039 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL);
     }
     break;
 
-  case 292:
+  case 294:
 
 /* Line 690 of lalr1.cc  */
-#line 3031 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3049 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new WhereClause(LOC ((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
     break;
 
-  case 293:
+  case 295:
 
 /* Line 690 of lalr1.cc  */
-#line 3039 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3057 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupByClause(LOC((yyloc)), dynamic_cast<GroupSpecList*>((yysemantic_stack_[(3) - (3)].node)));
     }
     break;
 
-  case 294:
+  case 296:
 
 /* Line 690 of lalr1.cc  */
-#line 3046 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3064 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       GroupSpecList* gsl = new GroupSpecList(LOC((yyloc)));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5540,10 +5549,10 @@
     }
     break;
 
-  case 295:
+  case 297:
 
 /* Line 690 of lalr1.cc  */
-#line 3052 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3070 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       GroupSpecList* gsl = static_cast<GroupSpecList*>((yysemantic_stack_[(3) - (1)].node));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(3) - (3)].node)));
@@ -5551,28 +5560,28 @@
     }
     break;
 
-  case 296:
+  case 298:
 
 /* Line 690 of lalr1.cc  */
-#line 3062 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3080 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL, NULL);
     }
     break;
 
-  case 297:
+  case 299:
 
 /* Line 690 of lalr1.cc  */
-#line 3066 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3084 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)), NULL, (yysemantic_stack_[(4) - (4)].expr), NULL);
     }
     break;
 
-  case 298:
+  case 300:
 
 /* Line 690 of lalr1.cc  */
-#line 3070 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3088 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5582,10 +5591,10 @@
     }
     break;
 
-  case 299:
+  case 301:
 
 /* Line 690 of lalr1.cc  */
-#line 3078 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3096 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5595,10 +5604,10 @@
     }
     break;
 
-  case 300:
+  case 302:
 
 /* Line 690 of lalr1.cc  */
-#line 3086 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3104 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5608,10 +5617,10 @@
     }
     break;
 
-  case 301:
+  case 303:
 
 /* Line 690 of lalr1.cc  */
-#line 3094 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3112 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -5621,19 +5630,19 @@
     }
     break;
 
-  case 302:
+  case 304:
 
 /* Line 690 of lalr1.cc  */
-#line 3106 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3124 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new GroupCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
-  case 303:
+  case 305:
 
 /* Line 690 of lalr1.cc  */
-#line 3114 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3132 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (3)].node))
@@ -5641,10 +5650,10 @@
         }
     break;
 
-  case 304:
+  case 306:
 
 /* Line 690 of lalr1.cc  */
-#line 3120 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3138 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(4) - (4)].node)), true
@@ -5652,10 +5661,10 @@
         }
     break;
 
-  case 305:
+  case 307:
 
 /* Line 690 of lalr1.cc  */
-#line 3130 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3148 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             OrderSpecList *osl = new OrderSpecList( LOC((yyloc)) );
             osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5663,10 +5672,10 @@
         }
     break;
 
-  case 306:
+  case 308:
 
 /* Line 690 of lalr1.cc  */
-#line 3136 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3154 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             if ( OrderSpecList* osl = dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (1)].node)) )
                 osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -5674,19 +5683,19 @@
         }
     break;
 
-  case 307:
+  case 309:
 
 /* Line 690 of lalr1.cc  */
-#line 3146 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3164 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderSpec( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL );
         }
     break;
 
-  case 308:
+  case 310:
 
 /* Line 690 of lalr1.cc  */
-#line 3150 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3168 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderSpec(
                 LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<OrderModifierPN*>((yysemantic_stack_[(2) - (2)].node))
@@ -5694,10 +5703,10 @@
         }
     break;
 
-  case 309:
+  case 311:
 
 /* Line 690 of lalr1.cc  */
-#line 3160 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3178 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL
@@ -5705,10 +5714,10 @@
         }
     break;
 
-  case 310:
+  case 312:
 
 /* Line 690 of lalr1.cc  */
-#line 3166 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3184 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -5716,10 +5725,10 @@
         }
     break;
 
-  case 311:
+  case 313:
 
 /* Line 690 of lalr1.cc  */
-#line 3172 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3190 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, NULL, dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(1) - (1)].node))
@@ -5727,10 +5736,10 @@
         }
     break;
 
-  case 312:
+  case 314:
 
 /* Line 690 of lalr1.cc  */
-#line 3178 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3196 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5741,34 +5750,6 @@
         }
     break;
 
-  case 313:
-
-/* Line 690 of lalr1.cc  */
-#line 3187 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new OrderModifierPN(
-                LOC((yyloc)),
-                dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(2) - (1)].node)),
-                NULL,
-                dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(2) - (2)].node))
-            );
-        }
-    break;
-
-  case 314:
-
-/* Line 690 of lalr1.cc  */
-#line 3196 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new OrderModifierPN(
-                LOC((yyloc)),
-                NULL,
-                dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(2) - (1)].node)),
-                dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(2) - (2)].node))
-            );
-        }
-    break;
-
   case 315:
 
 /* Line 690 of lalr1.cc  */
@@ -5776,6 +5757,34 @@
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
+                dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(2) - (1)].node)),
+                NULL,
+                dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(2) - (2)].node))
+            );
+        }
+    break;
+
+  case 316:
+
+/* Line 690 of lalr1.cc  */
+#line 3214 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new OrderModifierPN(
+                LOC((yyloc)),
+                NULL,
+                dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(2) - (1)].node)),
+                dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(2) - (2)].node))
+            );
+        }
+    break;
+
+  case 317:
+
+/* Line 690 of lalr1.cc  */
+#line 3223 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new OrderModifierPN(
+                LOC((yyloc)),
                 dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(3) - (1)].node)),
                 dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(3) - (2)].node)),
                 dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(3) - (3)].node))
@@ -5783,28 +5792,28 @@
         }
     break;
 
-  case 316:
+  case 318:
 
 /* Line 690 of lalr1.cc  */
-#line 3218 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3236 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_ascending );
         }
     break;
 
-  case 317:
+  case 319:
 
 /* Line 690 of lalr1.cc  */
-#line 3222 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3240 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_descending );
         }
     break;
 
-  case 318:
+  case 320:
 
 /* Line 690 of lalr1.cc  */
-#line 3230 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3248 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_greatest
@@ -5812,10 +5821,10 @@
         }
     break;
 
-  case 319:
+  case 321:
 
 /* Line 690 of lalr1.cc  */
-#line 3236 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3254 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_least
@@ -5823,19 +5832,19 @@
         }
     break;
 
-  case 320:
+  case 322:
 
 /* Line 690 of lalr1.cc  */
-#line 3246 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3264 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new OrderCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
-  case 321:
+  case 323:
 
 /* Line 690 of lalr1.cc  */
-#line 3254 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3272 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5846,10 +5855,10 @@
         }
     break;
 
-  case 322:
+  case 324:
 
 /* Line 690 of lalr1.cc  */
-#line 3263 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3281 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5860,10 +5869,10 @@
         }
     break;
 
-  case 323:
+  case 325:
 
 /* Line 690 of lalr1.cc  */
-#line 3276 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3294 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QVarInDeclList *qvidl = new QVarInDeclList( LOC((yyloc)) );
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5872,10 +5881,10 @@
     }
     break;
 
-  case 324:
+  case 326:
 
 /* Line 690 of lalr1.cc  */
-#line 3283 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3301 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QVarInDeclList *qvidl = dynamic_cast<QVarInDeclList*>((yysemantic_stack_[(4) - (1)].node));
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
@@ -5883,19 +5892,19 @@
     }
     break;
 
-  case 325:
+  case 327:
 
 /* Line 690 of lalr1.cc  */
-#line 3295 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3313 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
-  case 326:
+  case 328:
 
 /* Line 690 of lalr1.cc  */
-#line 3299 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3317 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5904,50 +5913,50 @@
     }
     break;
 
-  case 327:
-
-/* Line 690 of lalr1.cc  */
-#line 3311 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
-    }
-    break;
-
-  case 328:
-
-/* Line 690 of lalr1.cc  */
-#line 3318 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
-      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
-      (yyval.node) = scc_list_p;
-    }
-    break;
-
   case 329:
 
 /* Line 690 of lalr1.cc  */
-#line 3324 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3329 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
-      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
-      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+      (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
     }
     break;
 
   case 330:
 
 /* Line 690 of lalr1.cc  */
-#line 3333 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3336 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
+      SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
+      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
+      (yyval.node) = scc_list_p;
     }
     break;
 
   case 331:
 
 /* Line 690 of lalr1.cc  */
-#line 3340 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3342 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
+      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
+      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+    }
+    break;
+
+  case 332:
+
+/* Line 690 of lalr1.cc  */
+#line 3351 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
+    }
+    break;
+
+  case 333:
+
+/* Line 690 of lalr1.cc  */
+#line 3358 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       SwitchCaseOperandList* sco_list_p = new SwitchCaseOperandList(LOC((yyloc)));
       sco_list_p->push_back((yysemantic_stack_[(2) - (2)].expr));
@@ -5955,10 +5964,10 @@
     }
     break;
 
-  case 332:
+  case 334:
 
 /* Line 690 of lalr1.cc  */
-#line 3346 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3364 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       SwitchCaseOperandList* sco_list_p = static_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node));
       sco_list_p->push_back((yysemantic_stack_[(3) - (3)].expr));
@@ -5966,43 +5975,23 @@
     }
     break;
 
-  case 333:
-
-/* Line 690 of lalr1.cc  */
-#line 3357 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
-    }
-    break;
-
-  case 334:
-
-/* Line 690 of lalr1.cc  */
-#line 3364 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
-      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
-      (yyval.node) = scc_list_p;
-    }
-    break;
-
   case 335:
 
 /* Line 690 of lalr1.cc  */
-#line 3370 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3375 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
-      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
-      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+      (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
     }
     break;
 
   case 336:
 
 /* Line 690 of lalr1.cc  */
-#line 3379 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3382 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
+      SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
+      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
+      (yyval.node) = scc_list_p;
     }
     break;
 
@@ -6011,23 +6000,18 @@
 /* Line 690 of lalr1.cc  */
 #line 3388 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
-                              (yysemantic_stack_[(8) - (3)].expr),
-                              static_cast<CaseClauseList*>((yysemantic_stack_[(8) - (5)].node)),
-                              (yysemantic_stack_[(8) - (8)].expr));
+      SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
+      scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
+      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
     }
     break;
 
   case 338:
 
 /* Line 690 of lalr1.cc  */
-#line 3395 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3397 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
-                              (yysemantic_stack_[(10) - (3)].expr),
-                              static_cast<CaseClauseList*>((yysemantic_stack_[(10) - (5)].node)),
-                              static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr)),
-                              (yysemantic_stack_[(10) - (10)].expr));
+      (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
@@ -6059,11 +6043,12 @@
   case 341:
 
 /* Line 690 of lalr1.cc  */
-#line 3425 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3424 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
-      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
-      (yyval.node) = cc_list_p;
+      (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
+                              (yysemantic_stack_[(8) - (3)].expr),
+                              static_cast<CaseClauseList*>((yysemantic_stack_[(8) - (5)].node)),
+                              (yysemantic_stack_[(8) - (8)].expr));
     }
     break;
 
@@ -6072,9 +6057,11 @@
 /* Line 690 of lalr1.cc  */
 #line 3431 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
-      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
-      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+      (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
+                              (yysemantic_stack_[(10) - (3)].expr),
+                              static_cast<CaseClauseList*>((yysemantic_stack_[(10) - (5)].node)),
+                              static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr)),
+                              (yysemantic_stack_[(10) - (10)].expr));
     }
     break;
 
@@ -6083,9 +6070,9 @@
 /* Line 690 of lalr1.cc  */
 #line 3443 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new CaseClause(LOC ((yyloc)),
-                          static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
-                          (yysemantic_stack_[(4) - (4)].expr));
+      CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
+      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
+      (yyval.node) = cc_list_p;
     }
     break;
 
@@ -6094,62 +6081,84 @@
 /* Line 690 of lalr1.cc  */
 #line 3449 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new CaseClause(LOC ((yyloc)),
-                          static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
-                          static_cast<SequenceTypeList*>((yysemantic_stack_[(7) - (5)].node)),
-                          (yysemantic_stack_[(7) - (7)].expr));
-     }
+      CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
+      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
+      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+    }
     break;
 
   case 345:
 
 /* Line 690 of lalr1.cc  */
-#line 3460 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3461 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
-      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
-      (yyval.node) = cc_list_p;
+      (yyval.node) = new CaseClause(LOC ((yyloc)),
+                          static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
+                          (yysemantic_stack_[(4) - (4)].expr));
     }
     break;
 
   case 346:
 
 /* Line 690 of lalr1.cc  */
-#line 3466 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3467 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      CaseClauseList* cc_list_p = static_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
-      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
-      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
-    }
+      (yyval.node) = new CaseClause(LOC ((yyloc)),
+                          static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
+                          static_cast<SequenceTypeList*>((yysemantic_stack_[(7) - (5)].node)),
+                          (yysemantic_stack_[(7) - (7)].expr));
+     }
     break;
 
   case 347:
 
 /* Line 690 of lalr1.cc  */
-#line 3477 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3478 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new CaseClause(LOC ((yyloc)),
-                          static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
-                          (yysemantic_stack_[(4) - (4)].expr));
+      CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
+      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
+      (yyval.node) = cc_list_p;
     }
     break;
 
   case 348:
 
 /* Line 690 of lalr1.cc  */
-#line 3483 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3484 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new CaseClause(LOC ((yyloc)),
-                          static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
-                          static_cast<SequenceTypeList*>((yysemantic_stack_[(7) - (5)].node)),
-                          (yysemantic_stack_[(7) - (7)].expr));
-     }
+      CaseClauseList* cc_list_p = static_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
+      cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
+      (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+    }
     break;
 
   case 349:
 
 /* Line 690 of lalr1.cc  */
-#line 3494 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3495 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new CaseClause(LOC ((yyloc)),
+                          static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
+                          (yysemantic_stack_[(4) - (4)].expr));
+    }
+    break;
+
+  case 350:
+
+/* Line 690 of lalr1.cc  */
+#line 3501 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.node) = new CaseClause(LOC ((yyloc)),
+                          static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
+                          static_cast<SequenceTypeList*>((yysemantic_stack_[(7) - (5)].node)),
+                          (yysemantic_stack_[(7) - (7)].expr));
+     }
+    break;
+
+  case 351:
+
+/* Line 690 of lalr1.cc  */
+#line 3512 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       SequenceTypeList* seqList = new SequenceTypeList(LOC((yyloc)));
       seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6157,10 +6166,10 @@
     }
     break;
 
-  case 350:
+  case 352:
 
 /* Line 690 of lalr1.cc  */
-#line 3500 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3518 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       SequenceTypeList* seqList = static_cast<SequenceTypeList*>((yysemantic_stack_[(3) - (1)].node));
       seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(3) - (3)].node)));
@@ -6168,55 +6177,37 @@
     }
     break;
 
-  case 351:
+  case 353:
 
 /* Line 690 of lalr1.cc  */
-#line 3511 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3529 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new IfExpr(LOC ((yyloc)), (yysemantic_stack_[(8) - (3)].expr), (yysemantic_stack_[(8) - (6)].expr), (yysemantic_stack_[(8) - (8)].expr));
     }
     break;
 
-  case 352:
-
-/* Line 690 of lalr1.cc  */
-#line 3520 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 353:
-
-/* Line 690 of lalr1.cc  */
-#line 3524 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new OrExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
-    }
-    break;
-
   case 354:
 
 /* Line 690 of lalr1.cc  */
-#line 3533 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3538 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
     break;
 
   case 355:
 
 /* Line 690 of lalr1.cc  */
-#line 3537 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3542 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new AndExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
-        }
+      (yyval.expr) = new OrExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+    }
     break;
 
   case 356:
 
 /* Line 690 of lalr1.cc  */
-#line 3545 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3551 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6225,7 +6216,25 @@
   case 357:
 
 /* Line 690 of lalr1.cc  */
-#line 3549 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3555 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new AndExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 358:
+
+/* Line 690 of lalr1.cc  */
+#line 3563 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 359:
+
+/* Line 690 of lalr1.cc  */
+#line 3567 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             /*  ::=  "eq" | "ne" | "lt" | "le" | "gt" | "ge" */
             (yyval.expr) = new ComparisonExpr(
@@ -6237,10 +6246,10 @@
         }
     break;
 
-  case 358:
+  case 360:
 
 /* Line 690 of lalr1.cc  */
-#line 3559 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3577 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             /*  ::=  "is" | "<<" | ">>" */
             (yyval.expr) = new ComparisonExpr(
@@ -6249,10 +6258,10 @@
         }
     break;
 
-  case 359:
+  case 361:
 
 /* Line 690 of lalr1.cc  */
-#line 3566 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3584 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6263,10 +6272,10 @@
         }
     break;
 
-  case 360:
+  case 362:
 
 /* Line 690 of lalr1.cc  */
-#line 3575 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3593 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6277,20 +6286,20 @@
         }
     break;
 
-  case 361:
+  case 363:
 
 /* Line 690 of lalr1.cc  */
-#line 3584 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3602 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             /* this call is needed */
             driver.lexer->interpretAsLessThan();
         }
     break;
 
-  case 362:
+  case 364:
 
 /* Line 690 of lalr1.cc  */
-#line 3589 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3607 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6301,34 +6310,6 @@
         }
     break;
 
-  case 363:
-
-/* Line 690 of lalr1.cc  */
-#line 3598 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = new ComparisonExpr(
-                LOC((yyloc)),
-                new GeneralComp( LOC((yyloc)), ParseConstants::op_le ),
-                (yysemantic_stack_[(3) - (1)].expr),
-                (yysemantic_stack_[(3) - (3)].expr)
-            );
-        }
-    break;
-
-  case 364:
-
-/* Line 690 of lalr1.cc  */
-#line 3607 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = new ComparisonExpr(
-                LOC((yyloc)),
-                new GeneralComp( LOC((yyloc)), ParseConstants::op_gt ),
-                (yysemantic_stack_[(3) - (1)].expr),
-                (yysemantic_stack_[(3) - (3)].expr)
-            );
-        }
-    break;
-
   case 365:
 
 /* Line 690 of lalr1.cc  */
@@ -6336,7 +6317,7 @@
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
-                new GeneralComp( LOC((yyloc)), ParseConstants::op_ge ),
+                new GeneralComp( LOC((yyloc)), ParseConstants::op_le ),
                 (yysemantic_stack_[(3) - (1)].expr),
                 (yysemantic_stack_[(3) - (3)].expr)
             );
@@ -6346,16 +6327,44 @@
   case 366:
 
 /* Line 690 of lalr1.cc  */
-#line 3629 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3625 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new ComparisonExpr(
+                LOC((yyloc)),
+                new GeneralComp( LOC((yyloc)), ParseConstants::op_gt ),
+                (yysemantic_stack_[(3) - (1)].expr),
+                (yysemantic_stack_[(3) - (3)].expr)
+            );
         }
     break;
 
   case 367:
 
 /* Line 690 of lalr1.cc  */
-#line 3633 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3634 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new ComparisonExpr(
+                LOC((yyloc)),
+                new GeneralComp( LOC((yyloc)), ParseConstants::op_ge ),
+                (yysemantic_stack_[(3) - (1)].expr),
+                (yysemantic_stack_[(3) - (3)].expr)
+            );
+        }
+    break;
+
+  case 368:
+
+/* Line 690 of lalr1.cc  */
+#line 3647 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 369:
+
+/* Line 690 of lalr1.cc  */
+#line 3651 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new FTContainsExpr(
                 LOC((yyloc)),
@@ -6366,64 +6375,46 @@
         }
     break;
 
-  case 368:
-
-/* Line 690 of lalr1.cc  */
-#line 3645 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 369:
-
-/* Line 690 of lalr1.cc  */
-#line 3649 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.expr) = new StringConcatExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
-        }
-    break;
-
   case 370:
 
 /* Line 690 of lalr1.cc  */
-#line 3656 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3663 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = NULL;
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 371:
 
 /* Line 690 of lalr1.cc  */
-#line 3660 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3667 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+          (yyval.expr) = new StringConcatExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
         }
     break;
 
   case 372:
 
 /* Line 690 of lalr1.cc  */
-#line 3667 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3674 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.node) = NULL;
         }
     break;
 
   case 373:
 
 /* Line 690 of lalr1.cc  */
-#line 3671 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3678 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new RangeExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 374:
 
 /* Line 690 of lalr1.cc  */
-#line 3680 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3685 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6432,59 +6423,55 @@
   case 375:
 
 /* Line 690 of lalr1.cc  */
-#line 3684 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3689 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_plus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = new RangeExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 376:
 
 /* Line 690 of lalr1.cc  */
-#line 3688 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3698 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_minus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 377:
 
 /* Line 690 of lalr1.cc  */
-#line 3696 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3702 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_plus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 378:
 
 /* Line 690 of lalr1.cc  */
-#line 3700 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3706 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new MultiplicativeExpr(
-                LOC((yyloc)), ParseConstants::op_mul, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
-            );
+            (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_minus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 379:
 
 /* Line 690 of lalr1.cc  */
-#line 3706 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3714 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new MultiplicativeExpr(
-                LOC((yyloc)), ParseConstants::op_div, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
-            );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 380:
 
 /* Line 690 of lalr1.cc  */
-#line 3712 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3718 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
-                LOC((yyloc)), ParseConstants::op_idiv, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+                LOC((yyloc)), ParseConstants::op_mul, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
             );
         }
     break;
@@ -6492,10 +6479,10 @@
   case 381:
 
 /* Line 690 of lalr1.cc  */
-#line 3718 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3724 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
-                LOC((yyloc)), ParseConstants::op_mod, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+                LOC((yyloc)), ParseConstants::op_div, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
             );
         }
     break;
@@ -6503,77 +6490,79 @@
   case 382:
 
 /* Line 690 of lalr1.cc  */
-#line 3728 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3730 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new MultiplicativeExpr(
+                LOC((yyloc)), ParseConstants::op_idiv, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+            );
         }
     break;
 
   case 383:
 
 /* Line 690 of lalr1.cc  */
-#line 3732 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3736 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = new MultiplicativeExpr(
+                LOC((yyloc)), ParseConstants::op_mod, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+            );
         }
     break;
 
   case 384:
 
 /* Line 690 of lalr1.cc  */
-#line 3736 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3746 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 385:
 
 /* Line 690 of lalr1.cc  */
-#line 3744 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3750 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 386:
 
 /* Line 690 of lalr1.cc  */
-#line 3748 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3754 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new IntersectExceptExpr(
-                LOC((yyloc)), ParseConstants::op_intersect, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
-            );
+            (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
   case 387:
 
 /* Line 690 of lalr1.cc  */
-#line 3754 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3762 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new IntersectExceptExpr(
-                LOC((yyloc)), ParseConstants::op_except, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
-            );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 388:
 
 /* Line 690 of lalr1.cc  */
-#line 3764 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3766 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = new IntersectExceptExpr(
+                LOC((yyloc)), ParseConstants::op_intersect, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
+            );
         }
     break;
 
   case 389:
 
 /* Line 690 of lalr1.cc  */
-#line 3768 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3772 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InstanceofExpr(
-                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
+            (yyval.expr) = new IntersectExceptExpr(
+                LOC((yyloc)), ParseConstants::op_except, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
             );
         }
     break;
@@ -6581,7 +6570,7 @@
   case 390:
 
 /* Line 690 of lalr1.cc  */
-#line 3778 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3782 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6590,9 +6579,9 @@
   case 391:
 
 /* Line 690 of lalr1.cc  */
-#line 3782 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3786 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new TreatExpr(
+            (yyval.expr) = new InstanceofExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
             );
         }
@@ -6601,7 +6590,7 @@
   case 392:
 
 /* Line 690 of lalr1.cc  */
-#line 3792 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3796 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6610,10 +6599,10 @@
   case 393:
 
 /* Line 690 of lalr1.cc  */
-#line 3796 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3800 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new CastableExpr(
-                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
+            (yyval.expr) = new TreatExpr(
+                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
             );
         }
     break;
@@ -6621,7 +6610,7 @@
   case 394:
 
 /* Line 690 of lalr1.cc  */
-#line 3806 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3810 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6630,9 +6619,9 @@
   case 395:
 
 /* Line 690 of lalr1.cc  */
-#line 3810 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3814 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new CastExpr(
+            (yyval.expr) = new CastableExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
             );
         }
@@ -6641,70 +6630,90 @@
   case 396:
 
 /* Line 690 of lalr1.cc  */
-#line 3820 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3824 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(1) - (1)].node)), false);
-    }
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
     break;
 
   case 397:
 
 /* Line 690 of lalr1.cc  */
-#line 3824 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3828 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(2) - (1)].node)), true);
-    }
+            (yyval.expr) = new CastExpr(
+                LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
+            );
+        }
     break;
 
   case 398:
 
 /* Line 690 of lalr1.cc  */
-#line 3833 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3838 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(1) - (1)].node)), false);
+    }
     break;
 
   case 399:
 
 /* Line 690 of lalr1.cc  */
-#line 3837 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3842 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new UnaryExpr( LOC((yyloc)), dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].expr) );
-        }
+      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(2) - (1)].node)), true);
+    }
     break;
 
   case 400:
 
 /* Line 690 of lalr1.cc  */
-#line 3845 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3851 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SignList( LOC((yyloc)), true );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 401:
 
 /* Line 690 of lalr1.cc  */
-#line 3849 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3855 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SignList( LOC((yyloc)), false );
+            (yyval.expr) = new UnaryExpr( LOC((yyloc)), dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
   case 402:
 
 /* Line 690 of lalr1.cc  */
-#line 3853 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3863 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+            (yyval.node) = new SignList( LOC((yyloc)), true );
         }
     break;
 
   case 403:
 
 /* Line 690 of lalr1.cc  */
-#line 3857 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3867 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = new SignList( LOC((yyloc)), false );
+        }
+    break;
+
+  case 404:
+
+/* Line 690 of lalr1.cc  */
+#line 3871 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+        }
+    break;
+
+  case 405:
+
+/* Line 690 of lalr1.cc  */
+#line 3875 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             if ( SignList *sl = dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)) )
                 sl->negate();
@@ -6712,28 +6721,10 @@
         }
     break;
 
-  case 404:
-
-/* Line 690 of lalr1.cc  */
-#line 3867 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 405:
-
-/* Line 690 of lalr1.cc  */
-#line 3871 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 406:
 
 /* Line 690 of lalr1.cc  */
-#line 3875 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3885 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6742,133 +6733,151 @@
   case 407:
 
 /* Line 690 of lalr1.cc  */
-#line 3882 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3889 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 408:
+
+/* Line 690 of lalr1.cc  */
+#line 3893 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 409:
+
+/* Line 690 of lalr1.cc  */
+#line 3900 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
       }
     break;
 
-  case 408:
+  case 410:
 
 /* Line 690 of lalr1.cc  */
-#line 3887 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3905 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
         (yyval.expr) = new SimpleMapExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
       }
     break;
 
-  case 409:
+  case 411:
 
 /* Line 690 of lalr1.cc  */
-#line 3895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_eq );
         }
     break;
 
-  case 410:
+  case 412:
 
 /* Line 690 of lalr1.cc  */
-#line 3899 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3917 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ne );
         }
     break;
 
-  case 411:
+  case 413:
 
 /* Line 690 of lalr1.cc  */
-#line 3903 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3921 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_lt );
         }
     break;
 
-  case 412:
+  case 414:
 
 /* Line 690 of lalr1.cc  */
-#line 3907 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3925 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_le );
         }
     break;
 
-  case 413:
+  case 415:
 
 /* Line 690 of lalr1.cc  */
-#line 3911 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_gt );
         }
     break;
 
-  case 414:
+  case 416:
 
 /* Line 690 of lalr1.cc  */
-#line 3915 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ge );
         }
     break;
 
-  case 415:
+  case 417:
 
 /* Line 690 of lalr1.cc  */
-#line 3923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3941 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_is );
         }
     break;
 
-  case 416:
+  case 418:
 
 /* Line 690 of lalr1.cc  */
-#line 3927 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_precedes );
         }
     break;
 
-  case 417:
+  case 419:
 
 /* Line 690 of lalr1.cc  */
-#line 3931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3949 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_follows );
         }
     break;
 
-  case 418:
+  case 420:
 
 /* Line 690 of lalr1.cc  */
-#line 3939 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3957 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 419:
+  case 421:
 
 /* Line 690 of lalr1.cc  */
-#line 3943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3961 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "lax", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
-  case 420:
+  case 422:
 
 /* Line 690 of lalr1.cc  */
-#line 3947 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3965 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
-  case 421:
+  case 423:
 
 /* Line 690 of lalr1.cc  */
-#line 3951 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3969 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ValidateExpr(
                 LOC((yyloc)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (3)].node))->get_name(), (yysemantic_stack_[(6) - (5)].expr)
@@ -6877,10 +6886,10 @@
         }
     break;
 
-  case 422:
+  case 424:
 
 /* Line 690 of lalr1.cc  */
-#line 3962 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3980 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(3) - (1)].node)), NULL
@@ -6888,10 +6897,10 @@
         }
     break;
 
-  case 423:
+  case 425:
 
 /* Line 690 of lalr1.cc  */
-#line 3968 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3986 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(4) - (1)].node)), (yysemantic_stack_[(4) - (3)].expr)
@@ -6899,10 +6908,10 @@
         }
     break;
 
-  case 424:
+  case 426:
 
 /* Line 690 of lalr1.cc  */
-#line 3978 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 3996 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             PragmaList *pl = new PragmaList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -6910,10 +6919,10 @@
         }
     break;
 
-  case 425:
+  case 427:
 
 /* Line 690 of lalr1.cc  */
-#line 3984 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4002 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             if ( PragmaList *pl = dynamic_cast<PragmaList*>((yysemantic_stack_[(2) - (1)].node)) )
                 pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -6921,37 +6930,37 @@
         }
     break;
 
-  case 426:
+  case 428:
 
 /* Line 690 of lalr1.cc  */
-#line 3994 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4012 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
         }
     break;
 
-  case 427:
+  case 429:
 
 /* Line 690 of lalr1.cc  */
-#line 3998 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4016 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) ), "" );
         }
     break;
 
-  case 428:
+  case 430:
 
 /* Line 690 of lalr1.cc  */
-#line 4002 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4020 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), true ), "" );
         }
     break;
 
-  case 429:
+  case 431:
 
 /* Line 690 of lalr1.cc  */
-#line 4065 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4083 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       RelativePathExpr* rpe = dynamic_cast<RelativePathExpr*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (!rpe ?
@@ -6960,10 +6969,10 @@
     }
     break;
 
-  case 430:
+  case 432:
 
 /* Line 690 of lalr1.cc  */
-#line 4087 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4105 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AxisStep* as = dynamic_cast<AxisStep*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (as ?
@@ -6975,203 +6984,194 @@
     }
     break;
 
-  case 431:
-
-/* Line 690 of lalr1.cc  */
-#line 4115 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 432:
-
-/* Line 690 of lalr1.cc  */
-#line 4279 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new NameTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
-        }
-    break;
-
   case 433:
 
 /* Line 690 of lalr1.cc  */
-#line 4283 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4133 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new NameTest( LOC((yyloc)), dynamic_cast<Wildcard*>((yysemantic_stack_[(1) - (1)].node)) );
-        }
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
     break;
 
   case 434:
 
 /* Line 690 of lalr1.cc  */
-#line 4293 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4297 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new Wildcard(LOC((yyloc)), "", "", ParseConstants::wild_all, false);
-    }
+            (yyval.node) = new NameTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
+        }
     break;
 
   case 435:
 
 /* Line 690 of lalr1.cc  */
-#line 4297 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4301 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, false);
-    }
+            (yyval.node) = new NameTest( LOC((yyloc)), dynamic_cast<Wildcard*>((yysemantic_stack_[(1) - (1)].node)) );
+        }
     break;
 
   case 436:
 
 /* Line 690 of lalr1.cc  */
-#line 4301 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4311 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, true);
+      (yyval.node) = new Wildcard(LOC((yyloc)), "", "", ParseConstants::wild_all, false);
     }
     break;
 
   case 437:
 
 /* Line 690 of lalr1.cc  */
-#line 4305 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4315 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new Wildcard(LOC((yyloc)), "", SYMTAB((yysemantic_stack_[(1) - (1)].sval)), ParseConstants::wild_prefix, false);
+      (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, false);
     }
     break;
 
   case 438:
 
 /* Line 690 of lalr1.cc  */
-#line 4314 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4319 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-     }
+      (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, true);
+    }
     break;
 
   case 439:
 
 /* Line 690 of lalr1.cc  */
-#line 4318 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4323 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-       (yyval.expr) = new FilterExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (2)].node)));
-     }
+      (yyval.node) = new Wildcard(LOC((yyloc)), "", SYMTAB((yysemantic_stack_[(1) - (1)].sval)), ParseConstants::wild_prefix, false);
+    }
     break;
 
   case 440:
 
 /* Line 690 of lalr1.cc  */
-#line 4322 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4332 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(3) - (1)].expr));
+       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
      }
     break;
 
   case 441:
 
 /* Line 690 of lalr1.cc  */
-#line 4326 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4336 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node)));
+       (yyval.expr) = new FilterExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (2)].node)));
      }
     break;
 
   case 442:
 
 /* Line 690 of lalr1.cc  */
-#line 4334 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4340 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            PredicateList *pl = new PredicateList( LOC((yyloc)) );
-            pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(1) - (1)].expr)) );
-            (yyval.node) = pl;
-        }
+       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(3) - (1)].expr));
+     }
     break;
 
   case 443:
 
 /* Line 690 of lalr1.cc  */
-#line 4340 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4344 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            if ( PredicateList *pl = dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (1)].node)) )
-                pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(2) - (2)].expr)) );
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
-        }
+       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node)));
+     }
     break;
 
   case 444:
 
 /* Line 690 of lalr1.cc  */
-#line 4350 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4348 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
-        }
+       StringLiteral* sl = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
+       ArgList *al = new ArgList( LOC((yyloc)) );
+       al->push_back( sl );
+       (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), al);
+     }
     break;
 
   case 445:
 
 /* Line 690 of lalr1.cc  */
-#line 4358 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4355 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       ArgList *al = new ArgList( LOC((yyloc)) );
+       al->push_back( (yysemantic_stack_[(3) - (3)].expr) );
+       (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), al);
+     }
     break;
 
   case 446:
 
 /* Line 690 of lalr1.cc  */
-#line 4362 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4361 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       ArgList *al = new ArgList( LOC((yyloc)) );
+       al->push_back( (yysemantic_stack_[(3) - (3)].expr) );
+       (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), al);
+     }
     break;
 
   case 447:
 
 /* Line 690 of lalr1.cc  */
-#line 4366 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4367 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       ArgList *al = new ArgList( LOC((yyloc)) );
+       al->push_back( (yysemantic_stack_[(3) - (3)].expr) );
+       (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), al);
+     }
     break;
 
   case 448:
 
 /* Line 690 of lalr1.cc  */
-#line 4370 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4373 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+       (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr));
+     }
     break;
 
   case 449:
 
 /* Line 690 of lalr1.cc  */
-#line 4374 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4382 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            PredicateList *pl = new PredicateList( LOC((yyloc)) );
+            pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(1) - (1)].expr)) );
+            (yyval.node) = pl;
         }
     break;
 
   case 450:
 
 /* Line 690 of lalr1.cc  */
-#line 4378 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4388 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            if ( PredicateList *pl = dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (1)].node)) )
+                pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(2) - (2)].expr)) );
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
     break;
 
   case 451:
 
 /* Line 690 of lalr1.cc  */
-#line 4382 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4398 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+            (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
         }
     break;
 
   case 452:
 
 /* Line 690 of lalr1.cc  */
-#line 4386 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4406 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7180,7 +7180,7 @@
   case 453:
 
 /* Line 690 of lalr1.cc  */
-#line 4390 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4410 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7189,7 +7189,7 @@
   case 454:
 
 /* Line 690 of lalr1.cc  */
-#line 4394 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4414 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7198,7 +7198,7 @@
   case 455:
 
 /* Line 690 of lalr1.cc  */
-#line 4399 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4418 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7207,7 +7207,7 @@
   case 456:
 
 /* Line 690 of lalr1.cc  */
-#line 4403 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4422 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7216,7 +7216,7 @@
   case 457:
 
 /* Line 690 of lalr1.cc  */
-#line 4407 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4426 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7225,7 +7225,7 @@
   case 458:
 
 /* Line 690 of lalr1.cc  */
-#line 4411 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4430 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7234,37 +7234,106 @@
   case 459:
 
 /* Line 690 of lalr1.cc  */
-#line 4415 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4434 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          StringLiteral* sl = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
-          ArgList *al = new ArgList( LOC((yyloc)) );
-          al->push_back(sl);
-          (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), al); 
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 460:
 
 /* Line 690 of lalr1.cc  */
-#line 4426 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4438 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 461:
 
 /* Line 690 of lalr1.cc  */
-#line 4430 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4442 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 462:
 
 /* Line 690 of lalr1.cc  */
-#line 4438 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4447 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 463:
+
+/* Line 690 of lalr1.cc  */
+#line 4451 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 464:
+
+/* Line 690 of lalr1.cc  */
+#line 4455 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 465:
+
+/* Line 690 of lalr1.cc  */
+#line 4459 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 466:
+
+/* Line 690 of lalr1.cc  */
+#line 4467 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 467:
+
+/* Line 690 of lalr1.cc  */
+#line 4471 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 468:
+
+/* Line 690 of lalr1.cc  */
+#line 4475 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 469:
+
+/* Line 690 of lalr1.cc  */
+#line 4479 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new NullLiteral(LOC((yyloc)));
+        }
+    break;
+
+  case 470:
+
+/* Line 690 of lalr1.cc  */
+#line 4487 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_decimal, *(yysemantic_stack_[(1) - (1)].decval)
@@ -7273,10 +7342,10 @@
         }
     break;
 
-  case 463:
+  case 471:
 
 /* Line 690 of lalr1.cc  */
-#line 4445 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4494 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_integer, *(yysemantic_stack_[(1) - (1)].ival)
@@ -7285,10 +7354,10 @@
         }
     break;
 
-  case 464:
+  case 472:
 
 /* Line 690 of lalr1.cc  */
-#line 4452 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4501 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_double, *(yysemantic_stack_[(1) - (1)].dval)
@@ -7297,73 +7366,91 @@
         }
     break;
 
-  case 465:
-
-/* Line 690 of lalr1.cc  */
-#line 4463 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+  case 473:
+
+/* Line 690 of lalr1.cc  */
+#line 4511 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = new BooleanLiteral(LOC((yyloc)), true);
+        }
+    break;
+
+  case 474:
+
+/* Line 690 of lalr1.cc  */
+#line 4515 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.expr) = new BooleanLiteral(LOC((yyloc)), false);
+        }
+    break;
+
+  case 475:
+
+/* Line 690 of lalr1.cc  */
+#line 4523 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new VarRef(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)));
         }
     break;
 
-  case 466:
+  case 476:
 
 /* Line 690 of lalr1.cc  */
-#line 4471 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4531 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), NULL);
         }
     break;
 
-  case 467:
+  case 477:
 
 /* Line 690 of lalr1.cc  */
-#line 4475 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4535 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 468:
+  case 478:
 
 /* Line 690 of lalr1.cc  */
-#line 4483 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4543 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ContextItemExpr( LOC((yyloc)) );
         }
     break;
 
-  case 469:
+  case 479:
 
 /* Line 690 of lalr1.cc  */
-#line 4491 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4551 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new OrderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 470:
+  case 480:
 
 /* Line 690 of lalr1.cc  */
-#line 4499 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4559 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new UnorderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 471:
+  case 481:
 
 /* Line 690 of lalr1.cc  */
-#line 4553 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4613 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FunctionCall( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), NULL );
     }
     break;
 
-  case 472:
+  case 482:
 
 /* Line 690 of lalr1.cc  */
-#line 4557 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4617 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new FunctionCall(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -7371,10 +7458,10 @@
     }
     break;
 
-  case 473:
+  case 483:
 
 /* Line 690 of lalr1.cc  */
-#line 4567 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4627 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       ArgList *al = new ArgList( LOC((yyloc)) );
       al->push_back( (yysemantic_stack_[(1) - (1)].expr) );
@@ -7382,10 +7469,10 @@
     }
     break;
 
-  case 474:
+  case 484:
 
 /* Line 690 of lalr1.cc  */
-#line 4573 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4633 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if ( ArgList *al = dynamic_cast<ArgList*>((yysemantic_stack_[(3) - (1)].node)) )
         al->push_back( (yysemantic_stack_[(3) - (3)].expr) );
@@ -7393,55 +7480,55 @@
     }
     break;
 
-  case 475:
-
-/* Line 690 of lalr1.cc  */
-#line 4583 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 476:
-
-/* Line 690 of lalr1.cc  */
-#line 4587 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 477:
-
-/* Line 690 of lalr1.cc  */
-#line 4595 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 478:
-
-/* Line 690 of lalr1.cc  */
-#line 4599 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 479:
-
-/* Line 690 of lalr1.cc  */
-#line 4603 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 480:
-
-/* Line 690 of lalr1.cc  */
-#line 4611 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+  case 485:
+
+/* Line 690 of lalr1.cc  */
+#line 4643 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 486:
+
+/* Line 690 of lalr1.cc  */
+#line 4647 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 487:
+
+/* Line 690 of lalr1.cc  */
+#line 4655 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 488:
+
+/* Line 690 of lalr1.cc  */
+#line 4659 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 489:
+
+/* Line 690 of lalr1.cc  */
+#line 4663 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 490:
+
+/* Line 690 of lalr1.cc  */
+#line 4671 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -7451,10 +7538,10 @@
     }
     break;
 
-  case 481:
+  case 491:
 
 /* Line 690 of lalr1.cc  */
-#line 4619 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4679 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (static_cast<QName*>((yysemantic_stack_[(8) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(8) - (6)].expr))->get_qname())
       {
@@ -7473,10 +7560,10 @@
     }
     break;
 
-  case 482:
+  case 492:
 
 /* Line 690 of lalr1.cc  */
-#line 4636 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4696 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -7486,10 +7573,10 @@
     }
     break;
 
-  case 483:
+  case 493:
 
 /* Line 690 of lalr1.cc  */
-#line 4644 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4704 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (static_cast<QName*>((yysemantic_stack_[(9) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(9) - (7)].expr))->get_qname())
       {
@@ -7508,10 +7595,10 @@
     }
     break;
 
-  case 484:
+  case 494:
 
 /* Line 690 of lalr1.cc  */
-#line 4663 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4723 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (static_cast<QName*>((yysemantic_stack_[(9) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(9) - (7)].expr))->get_qname())
       {
@@ -7530,10 +7617,10 @@
     }
     break;
 
-  case 485:
+  case 495:
 
 /* Line 690 of lalr1.cc  */
-#line 4682 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4742 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       if (static_cast<QName*>((yysemantic_stack_[(10) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr))->get_qname())
       {
@@ -7552,10 +7639,10 @@
     }
     break;
 
-  case 486:
+  case 496:
 
 /* Line 690 of lalr1.cc  */
-#line 4704 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4764 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       DirElemContentList *decl = new DirElemContentList( LOC((yyloc)) );
       decl->push_back( dynamic_cast<DirElemContent*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -7563,10 +7650,10 @@
     }
     break;
 
-  case 487:
+  case 497:
 
 /* Line 690 of lalr1.cc  */
-#line 4710 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4770 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       DirElemContentList *decl = dynamic_cast<DirElemContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( decl )
@@ -7575,10 +7662,10 @@
     }
     break;
 
-  case 488:
+  case 498:
 
 /* Line 690 of lalr1.cc  */
-#line 4721 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4781 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       DirAttributeList *dal = new DirAttributeList( LOC((yyloc)) );
       dal->push_back( dynamic_cast<DirAttr*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7586,10 +7673,10 @@
     }
     break;
 
-  case 489:
+  case 499:
 
 /* Line 690 of lalr1.cc  */
-#line 4727 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4787 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       DirAttributeList *dal = dynamic_cast<DirAttributeList*>((yysemantic_stack_[(2) - (1)].node));
       if ( dal )
@@ -7598,10 +7685,10 @@
     }
     break;
 
-  case 490:
+  case 500:
 
 /* Line 690 of lalr1.cc  */
-#line 4738 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4798 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttr(LOC((yyloc)),
                        static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -7609,48 +7696,48 @@
     }
     break;
 
-  case 493:
+  case 503:
 
 /* Line 690 of lalr1.cc  */
-#line 4753 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4813 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttributeValue(LOC((yyloc)),
                                  dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
-  case 494:
+  case 504:
 
 /* Line 690 of lalr1.cc  */
-#line 4758 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4818 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new DirAttributeValue( LOC((yyloc)),
                                   dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
-  case 495:
+  case 505:
 
 /* Line 690 of lalr1.cc  */
-#line 4767 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4827 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrContentList( LOC((yyloc)) );
     }
     break;
 
-  case 496:
+  case 506:
 
 /* Line 690 of lalr1.cc  */
-#line 4771 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4831 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
-  case 497:
+  case 507:
 
 /* Line 690 of lalr1.cc  */
-#line 4778 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4838 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
@@ -7658,10 +7745,10 @@
     }
     break;
 
-  case 498:
+  case 508:
 
 /* Line 690 of lalr1.cc  */
-#line 4784 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4844 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7669,10 +7756,10 @@
     }
     break;
 
-  case 499:
+  case 509:
 
 /* Line 690 of lalr1.cc  */
-#line 4790 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4850 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList* qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -7681,10 +7768,10 @@
     }
     break;
 
-  case 500:
+  case 510:
 
 /* Line 690 of lalr1.cc  */
-#line 4797 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4857 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       QuoteAttrContentList *qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -7693,28 +7780,28 @@
     }
     break;
 
-  case 501:
+  case 511:
 
 /* Line 690 of lalr1.cc  */
-#line 4808 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4868 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrContentList( LOC((yyloc)) );
     }
     break;
 
-  case 502:
+  case 512:
 
 /* Line 690 of lalr1.cc  */
-#line 4812 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4872 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
-  case 503:
+  case 513:
 
 /* Line 690 of lalr1.cc  */
-#line 4819 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4879 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( new AposAttrValueContent( LOC((yyloc)),"'") );
@@ -7722,10 +7809,10 @@
     }
     break;
 
-  case 504:
+  case 514:
 
 /* Line 690 of lalr1.cc  */
-#line 4825 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4885 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( dynamic_cast<AposAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7733,10 +7820,10 @@
     }
     break;
 
-  case 505:
+  case 515:
 
 /* Line 690 of lalr1.cc  */
-#line 4831 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4891 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if (aacl)
@@ -7745,10 +7832,10 @@
     }
     break;
 
-  case 506:
+  case 516:
 
 /* Line 690 of lalr1.cc  */
-#line 4838 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4898 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( aacl )
@@ -7757,743 +7844,645 @@
     }
     break;
 
-  case 507:
+  case 517:
 
 /* Line 690 of lalr1.cc  */
-#line 4849 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4909 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 508:
+  case 518:
 
 /* Line 690 of lalr1.cc  */
-#line 4853 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
     break;
 
-  case 509:
+  case 519:
 
 /* Line 690 of lalr1.cc  */
-#line 4861 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4921 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 510:
+  case 520:
 
 /* Line 690 of lalr1.cc  */
-#line 4865 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4925 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.node) = new AposAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
     break;
 
-  case 511:
+  case 521:
 
 /* Line 690 of lalr1.cc  */
-#line 4873 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr) );
     }
     break;
 
-  case 512:
+  case 522:
 
 /* Line 690 of lalr1.cc  */
-#line 4877 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4937 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 513:
+  case 523:
 
 /* Line 690 of lalr1.cc  */
-#line 4881 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4941 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       rchandle<CDataSection> cdata_h = dynamic_cast<CDataSection*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = new DirElemContent( LOC((yyloc)), cdata_h );
     }
     break;
 
-  case 514:
+  case 524:
 
 /* Line 690 of lalr1.cc  */
-#line 4886 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4946 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       rchandle<CommonContent> cont_h = dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = new DirElemContent( LOC((yyloc)), cont_h );
     }
     break;
 
-  case 515:
+  case 525:
 
 /* Line 690 of lalr1.cc  */
-#line 4895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4955 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_charref, SYMTAB((yysemantic_stack_[(1) - (1)].sval)));
     }
     break;
 
-  case 516:
+  case 526:
 
 /* Line 690 of lalr1.cc  */
-#line 4899 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4959 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_lbrace);
     }
     break;
 
-  case 517:
+  case 527:
 
 /* Line 690 of lalr1.cc  */
-#line 4903 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4963 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_rbrace);
     }
     break;
 
-  case 518:
+  case 528:
 
 /* Line 690 of lalr1.cc  */
-#line 4907 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4967 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), new EnclosedExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr)));
     }
     break;
 
-  case 519:
+  case 529:
 
 /* Line 690 of lalr1.cc  */
-#line 4915 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4975 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 520:
+  case 530:
 
 /* Line 690 of lalr1.cc  */
-#line 4920 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4980 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), "" );
     }
     break;
 
-  case 521:
+  case 531:
 
 /* Line 690 of lalr1.cc  */
-#line 4928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 4988 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 522:
-
-/* Line 690 of lalr1.cc  */
-#line 4933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
-    }
-    break;
-
-  case 523:
-
-/* Line 690 of lalr1.cc  */
-#line 4941 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CDataSection( LOC((yyloc)),SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
-    }
-    break;
-
-  case 524:
-
-/* Line 690 of lalr1.cc  */
-#line 4949 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 525:
-
-/* Line 690 of lalr1.cc  */
-#line 4954 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 526:
-
-/* Line 690 of lalr1.cc  */
-#line 4959 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 527:
-
-/* Line 690 of lalr1.cc  */
-#line 4964 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 528:
-
-/* Line 690 of lalr1.cc  */
-#line 4969 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 529:
-
-/* Line 690 of lalr1.cc  */
-#line 4974 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 531:
-
-/* Line 690 of lalr1.cc  */
-#line 4985 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
-    }
-    break;
-
   case 532:
 
 /* Line 690 of lalr1.cc  */
 #line 4993 "/home/mbrantner/zorba/sandbox/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));
+      (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
     break;
 
   case 533:
 
 /* Line 690 of lalr1.cc  */
-#line 4997 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5001 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+      (yyval.expr) = new CDataSection( LOC((yyloc)),SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
   case 534:
 
 /* Line 690 of lalr1.cc  */
+#line 5009 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 535:
+
+/* Line 690 of lalr1.cc  */
 #line 5014 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr) );
-    }
-    break;
-
-  case 535:
-
-/* Line 690 of lalr1.cc  */
-#line 5018 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 536:
 
 /* Line 690 of lalr1.cc  */
-#line 5026 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5019 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 537:
 
 /* Line 690 of lalr1.cc  */
-#line 5034 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5024 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 538:
 
 /* Line 690 of lalr1.cc  */
-#line 5042 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5029 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 539:
 
 /* Line 690 of lalr1.cc  */
-#line 5046 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
-    }
-    break;
-
-  case 540:
-
-/* Line 690 of lalr1.cc  */
-#line 5054 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+#line 5034 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 541:
 
 /* Line 690 of lalr1.cc  */
-#line 5058 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5045 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+      (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
     }
     break;
 
   case 542:
 
 /* Line 690 of lalr1.cc  */
-#line 5066 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5053 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
+      (yyval.expr) = new CompElemConstructor(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr));
     }
     break;
 
   case 543:
 
 /* Line 690 of lalr1.cc  */
+#line 5057 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+      (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+    }
+    break;
+
+  case 544:
+
+/* Line 690 of lalr1.cc  */
 #line 5074 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
-        }
+      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr) );
+    }
     break;
 
-  case 544:
+  case 545:
 
 /* Line 690 of lalr1.cc  */
 #line 5078 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SequenceType(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node)));
-        }
-    break;
-
-  case 545:
-
-/* Line 690 of lalr1.cc  */
-#line 5082 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
-        }
+      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+    }
     break;
 
   case 546:
 
 /* Line 690 of lalr1.cc  */
-#line 5117 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5086 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_optionally
-            );
-        }
+      (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+    }
     break;
 
   case 547:
 
 /* Line 690 of lalr1.cc  */
-#line 5123 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5094 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_zero_or_more
-            );
-        }
+      (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+    }
     break;
 
   case 548:
 
 /* Line 690 of lalr1.cc  */
-#line 5129 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5102 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_one_or_more
-            );
-        }
+      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+    }
     break;
 
   case 549:
 
 /* Line 690 of lalr1.cc  */
-#line 5139 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5106 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
+      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+    }
     break;
 
   case 550:
 
 /* Line 690 of lalr1.cc  */
-#line 5143 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5114 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
+      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+    }
     break;
 
   case 551:
 
 /* Line 690 of lalr1.cc  */
-#line 5147 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5118 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ItemType( LOC((yyloc)), true );
-        }
+      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+    }
     break;
 
   case 552:
 
 /* Line 690 of lalr1.cc  */
-#line 5151 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5126 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new StructuredItemType(LOC((yyloc)));
-        }
+      (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
+    }
     break;
 
   case 553:
 
 /* Line 690 of lalr1.cc  */
-#line 5155 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5134 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
         }
     break;
 
   case 554:
 
 /* Line 690 of lalr1.cc  */
-#line 5159 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5138 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new SequenceType(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node)));
         }
     break;
 
   case 555:
 
 /* Line 690 of lalr1.cc  */
-#line 5163 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5142 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 556:
 
 /* Line 690 of lalr1.cc  */
-#line 5170 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5177 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          TypeList* aTypeList = new TypeList(LOC ((yyloc)));
-          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
-          (yyval.node) = aTypeList;
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_optionally
+            );
         }
     break;
 
   case 557:
 
 /* Line 690 of lalr1.cc  */
-#line 5176 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5183 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          TypeList* aTypeList = dynamic_cast<TypeList *>((yysemantic_stack_[(3) - (1)].node));
-          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(3) - (3)].node)));
-          (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_zero_or_more
+            );
         }
     break;
 
   case 558:
 
 /* Line 690 of lalr1.cc  */
-#line 5186 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5189 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new GeneralizedAtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
-    }
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_one_or_more
+            );
+        }
     break;
 
   case 559:
 
 /* Line 690 of lalr1.cc  */
-#line 5194 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5199 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new SimpleType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 560:
 
 /* Line 690 of lalr1.cc  */
-#line 5202 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5203 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 561:
 
 /* Line 690 of lalr1.cc  */
-#line 5206 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5207 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new ItemType( LOC((yyloc)), true );
+        }
     break;
 
   case 562:
 
 /* Line 690 of lalr1.cc  */
-#line 5210 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5211 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new StructuredItemType(LOC((yyloc)));
+        }
     break;
 
   case 563:
 
 /* Line 690 of lalr1.cc  */
-#line 5214 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5215 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 564:
 
 /* Line 690 of lalr1.cc  */
-#line 5218 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5219 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 565:
 
 /* Line 690 of lalr1.cc  */
-#line 5222 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5223 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 566:
 
 /* Line 690 of lalr1.cc  */
-#line 5226 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5230 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+          TypeList* aTypeList = new TypeList(LOC ((yyloc)));
+          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
+          (yyval.node) = aTypeList;
+        }
     break;
 
   case 567:
 
 /* Line 690 of lalr1.cc  */
-#line 5230 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5236 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+          TypeList* aTypeList = dynamic_cast<TypeList *>((yysemantic_stack_[(3) - (1)].node));
+          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(3) - (3)].node)));
+          (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
+        }
     break;
 
   case 568:
 
 /* Line 690 of lalr1.cc  */
-#line 5234 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5246 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+      (yyval.node) = new GeneralizedAtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
     }
     break;
 
   case 569:
 
 /* Line 690 of lalr1.cc  */
-#line 5238 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5254 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+      (yyval.node) = new SimpleType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
     }
     break;
 
   case 570:
 
 /* Line 690 of lalr1.cc  */
-#line 5246 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5262 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new AnyKindTest( LOC((yyloc)) );
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 571:
 
 /* Line 690 of lalr1.cc  */
-#line 5254 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5266 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new DocumentTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 572:
 
 /* Line 690 of lalr1.cc  */
-#line 5258 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5270 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 573:
 
 /* Line 690 of lalr1.cc  */
-#line 5262 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5274 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 574:
 
 /* Line 690 of lalr1.cc  */
-#line 5270 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5278 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new NamespaceTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 575:
 
 /* Line 690 of lalr1.cc  */
-#line 5277 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5282 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new TextTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 576:
 
 /* Line 690 of lalr1.cc  */
-#line 5285 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5286 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new CommentTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 577:
 
 /* Line 690 of lalr1.cc  */
-#line 5293 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5290 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new PITest( LOC((yyloc)), "" );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 578:
 
 /* Line 690 of lalr1.cc  */
-#line 5297 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5294 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 579:
 
 /* Line 690 of lalr1.cc  */
-#line 5301 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5298 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 580:
 
 /* Line 690 of lalr1.cc  */
-#line 5309 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5306 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
-        }
+      (yyval.node) = new AnyKindTest( LOC((yyloc)) );
+    }
     break;
 
   case 581:
 
 /* Line 690 of lalr1.cc  */
-#line 5313 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5314 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new AttributeTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
-            );
-        }
+      (yyval.node) = new DocumentTest(LOC((yyloc)));
+    }
     break;
 
   case 582:
 
 /* Line 690 of lalr1.cc  */
-#line 5319 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5318 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new AttributeTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
-            );
-        }
+      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+    }
     break;
 
   case 583:
 
 /* Line 690 of lalr1.cc  */
-#line 5325 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5322 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
-        }
+      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+    }
     break;
 
   case 584:
 
 /* Line 690 of lalr1.cc  */
-#line 5329 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5330 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new AttributeTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
-            );
-        }
+      (yyval.node) = new NamespaceTest(LOC((yyloc)));
+    }
     break;
 
   case 585:
 
 /* Line 690 of lalr1.cc  */
-#line 5339 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5337 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
-        }
+      (yyval.node) = new TextTest(LOC((yyloc)));
+    }
     break;
 
   case 586:
 
 /* Line 690 of lalr1.cc  */
-#line 5347 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5345 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
-        }
+      (yyval.node) = new CommentTest(LOC((yyloc)));
+    }
     break;
 
   case 587:
 
 /* Line 690 of lalr1.cc  */
-#line 5351 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5353 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
-            );
+            (yyval.node) = new PITest( LOC((yyloc)), "" );
         }
     break;
 
@@ -8502,47 +8491,35 @@
 /* Line 690 of lalr1.cc  */
 #line 5357 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)),
-                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
-                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
-                false
-            );
+            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
   case 589:
 
 /* Line 690 of lalr1.cc  */
-#line 5366 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5361 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)),
-                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
-                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
-                true
-            );
+            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
   case 590:
 
 /* Line 690 of lalr1.cc  */
-#line 5375 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5369 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, NULL, true
-            );
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 591:
 
 /* Line 690 of lalr1.cc  */
-#line 5381 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5373 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
             );
         }
     break;
@@ -8550,10 +8527,10 @@
   case 592:
 
 /* Line 690 of lalr1.cc  */
-#line 5387 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5379 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
             );
         }
     break;
@@ -8561,246 +8538,252 @@
   case 593:
 
 /* Line 690 of lalr1.cc  */
-#line 5397 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5385 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 594:
 
 /* Line 690 of lalr1.cc  */
-#line 5414 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5389 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
+            );
         }
     break;
 
   case 595:
 
 /* Line 690 of lalr1.cc  */
-#line 5421 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5399 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
+            (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
   case 596:
 
 /* Line 690 of lalr1.cc  */
-#line 5436 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5407 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
+            (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
         }
     break;
 
   case 597:
 
 /* Line 690 of lalr1.cc  */
-#line 5472 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5411 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
+            );
+        }
     break;
 
   case 598:
 
 /* Line 690 of lalr1.cc  */
-#line 5476 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5417 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)),
+                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
+                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
+                false
+            );
+        }
     break;
 
   case 599:
 
 /* Line 690 of lalr1.cc  */
-#line 5484 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5426 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new LiteralFunctionItem(LOC ((yyloc)), dynamic_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].ival));
-    }
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)),
+                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
+                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
+                true
+            );
+        }
     break;
 
   case 600:
 
 /* Line 690 of lalr1.cc  */
-#line 5492 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5435 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.expr) = new InlineFunction(LOC((yyloc)),
-                              &*(yysemantic_stack_[(3) - (2)].fnsig)->theParams,
-                              &*(yysemantic_stack_[(3) - (2)].fnsig)->theReturnType,
-                              (yysemantic_stack_[(3) - (3)].expr));
-      delete (yysemantic_stack_[(3) - (2)].fnsig);
-    }
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, NULL, true
+            );
+        }
     break;
 
   case 601:
 
 /* Line 690 of lalr1.cc  */
-#line 5504 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5441 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
+            );
+        }
     break;
 
   case 602:
 
 /* Line 690 of lalr1.cc  */
-#line 5508 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5447 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
+            );
+        }
     break;
 
   case 603:
 
 /* Line 690 of lalr1.cc  */
-#line 5516 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5457 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-      (yyval.node) = new AnyFunctionTest(LOC((yyloc)));
-    }
+            (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
+        }
     break;
 
   case 604:
 
 /* Line 690 of lalr1.cc  */
-#line 5524 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5474 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.node) = new TypedFunctionTest(LOC ((yyloc)), dynamic_cast<SequenceType *>((yysemantic_stack_[(5) - (5)].node)));
+            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
     break;
 
   case 605:
 
 /* Line 690 of lalr1.cc  */
-#line 5528 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5481 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-          (yyval.node) = new TypedFunctionTest(LOC ((yyloc)),
-              dynamic_cast<TypeList *>((yysemantic_stack_[(6) - (3)].node)),
-              dynamic_cast<SequenceType *>((yysemantic_stack_[(6) - (6)].node)));
+            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
         }
     break;
 
   case 606:
 
 /* Line 690 of lalr1.cc  */
-#line 5539 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5496 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-           (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
+            (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
   case 607:
 
 /* Line 690 of lalr1.cc  */
-#line 5556 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5532 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new RevalidationDecl(
-                LOC((yyloc)), StaticContextConsts::strict_validation
-            );
-        }
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
     break;
 
   case 608:
 
 /* Line 690 of lalr1.cc  */
-#line 5562 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5536 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new RevalidationDecl(
-                LOC((yyloc)), StaticContextConsts::lax_validation
-            );
-        }
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
     break;
 
   case 609:
 
 /* Line 690 of lalr1.cc  */
-#line 5568 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5544 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new RevalidationDecl(
-                LOC((yyloc)), StaticContextConsts::skip_validation
-            );
-        }
+      (yyval.expr) = new LiteralFunctionItem(LOC ((yyloc)), dynamic_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].ival));
+    }
     break;
 
   case 610:
 
 /* Line 690 of lalr1.cc  */
-#line 5578 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5552 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
-        }
+      (yyval.expr) = new InlineFunction(LOC((yyloc)),
+                              &*(yysemantic_stack_[(3) - (2)].fnsig)->theParams,
+                              &*(yysemantic_stack_[(3) - (2)].fnsig)->theReturnType,
+                              (yysemantic_stack_[(3) - (3)].expr));
+      delete (yysemantic_stack_[(3) - (2)].fnsig);
+    }
     break;
 
   case 611:
 
 /* Line 690 of lalr1.cc  */
-#line 5582 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5564 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 612:
 
 /* Line 690 of lalr1.cc  */
-#line 5588 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5568 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
-        }
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
     break;
 
   case 613:
 
 /* Line 690 of lalr1.cc  */
-#line 5594 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5576 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
-        }
+      (yyval.node) = new AnyFunctionTest(LOC((yyloc)));
+    }
     break;
 
   case 614:
 
 /* Line 690 of lalr1.cc  */
-#line 5598 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5584 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
-            );
+          (yyval.node) = new TypedFunctionTest(LOC ((yyloc)), dynamic_cast<SequenceType *>((yysemantic_stack_[(5) - (5)].node)));
         }
     break;
 
   case 615:
 
 /* Line 690 of lalr1.cc  */
-#line 5604 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5588 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+          (yyval.node) = new TypedFunctionTest(LOC ((yyloc)),
+              dynamic_cast<TypeList *>((yysemantic_stack_[(6) - (3)].node)),
+              dynamic_cast<SequenceType *>((yysemantic_stack_[(6) - (6)].node)));
         }
     break;
 
   case 616:
 
 /* Line 690 of lalr1.cc  */
-#line 5608 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5599 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
+           (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
   case 617:
 
 /* Line 690 of lalr1.cc  */
-#line 5614 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5616 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                  LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            (yyval.node) = new RevalidationDecl(
+                LOC((yyloc)), StaticContextConsts::strict_validation
             );
         }
     break;
@@ -8808,11 +8791,10 @@
   case 618:
 
 /* Line 690 of lalr1.cc  */
-#line 5620 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5622 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)),
-                store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            (yyval.node) = new RevalidationDecl(
+                LOC((yyloc)), StaticContextConsts::lax_validation
             );
         }
     break;
@@ -8820,10 +8802,10 @@
   case 619:
 
 /* Line 690 of lalr1.cc  */
-#line 5627 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5628 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            (yyval.node) = new RevalidationDecl(
+                LOC((yyloc)), StaticContextConsts::skip_validation
             );
         }
     break;
@@ -8831,9 +8813,9 @@
   case 620:
 
 /* Line 690 of lalr1.cc  */
-#line 5637 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5638 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
@@ -8842,14 +8824,119 @@
 /* Line 690 of lalr1.cc  */
 #line 5642 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = new InsertExpr(
+                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
         }
     break;
 
   case 622:
 
 /* Line 690 of lalr1.cc  */
-#line 5650 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5648 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
+        }
+    break;
+
+  case 623:
+
+/* Line 690 of lalr1.cc  */
+#line 5654 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+        }
+    break;
+
+  case 624:
+
+/* Line 690 of lalr1.cc  */
+#line 5658 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
+        }
+    break;
+
+  case 625:
+
+/* Line 690 of lalr1.cc  */
+#line 5664 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+        }
+    break;
+
+  case 626:
+
+/* Line 690 of lalr1.cc  */
+#line 5668 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
+        }
+    break;
+
+  case 627:
+
+/* Line 690 of lalr1.cc  */
+#line 5674 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                  LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
+        }
+    break;
+
+  case 628:
+
+/* Line 690 of lalr1.cc  */
+#line 5680 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)),
+                store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
+        }
+    break;
+
+  case 629:
+
+/* Line 690 of lalr1.cc  */
+#line 5687 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
+        }
+    break;
+
+  case 630:
+
+/* Line 690 of lalr1.cc  */
+#line 5697 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 631:
+
+/* Line 690 of lalr1.cc  */
+#line 5702 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 632:
+
+/* Line 690 of lalr1.cc  */
+#line 5710 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ReplaceExpr(
                 LOC((yyloc)), store::UpdateConsts::NODE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
@@ -8857,10 +8944,10 @@
         }
     break;
 
-  case 623:
+  case 633:
 
 /* Line 690 of lalr1.cc  */
-#line 5656 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5716 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new ReplaceExpr(
                 LOC((yyloc)), store::UpdateConsts::VALUE_OF_NODE, (yysemantic_stack_[(7) - (5)].expr), (yysemantic_stack_[(7) - (7)].expr)
@@ -8868,29 +8955,29 @@
         }
     break;
 
-  case 624:
+  case 634:
 
 /* Line 690 of lalr1.cc  */
-#line 5666 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5726 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new RenameExpr( LOC ((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 625:
+  case 635:
 
 /* Line 690 of lalr1.cc  */
-#line 5688 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5748 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CopyVarList *cvl = dynamic_cast<CopyVarList*>((yysemantic_stack_[(7) - (3)].expr));
       (yyval.expr) = new TransformExpr( LOC((yyloc)), cvl, (yysemantic_stack_[(7) - (5)].expr), (yysemantic_stack_[(7) - (7)].expr) );
     }
     break;
 
-  case 626:
+  case 636:
 
 /* Line 690 of lalr1.cc  */
-#line 5697 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5757 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CopyVarList* lList = new CopyVarList(LOC((yyloc)));
       lList->push_back (dynamic_cast<VarBinding*> ((yysemantic_stack_[(1) - (1)].expr)));
@@ -8898,10 +8985,10 @@
     }
     break;
 
-  case 627:
+  case 637:
 
 /* Line 690 of lalr1.cc  */
-#line 5703 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5763 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       CopyVarList* lList = dynamic_cast<CopyVarList*>((yysemantic_stack_[(4) - (1)].expr));
       VarBinding* lBinding = dynamic_cast<VarBinding*>((yysemantic_stack_[(4) - (4)].expr));
@@ -8910,28 +8997,28 @@
     }
     break;
 
-  case 628:
+  case 638:
 
 /* Line 690 of lalr1.cc  */
-#line 5716 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5776 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new VarBinding(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
-  case 629:
+  case 639:
 
 /* Line 690 of lalr1.cc  */
-#line 5730 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5790 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.expr) = new TryExpr( LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 630:
+  case 640:
 
 /* Line 690 of lalr1.cc  */
-#line 5737 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5797 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             CatchListExpr *cle = new CatchListExpr( LOC((yyloc)) );
             cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -8939,10 +9026,10 @@
         }
     break;
 
-  case 631:
+  case 641:
 
 /* Line 690 of lalr1.cc  */
-#line 5743 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5803 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
             if ( cle )
@@ -8951,29 +9038,29 @@
         }
     break;
 
-  case 632:
+  case 642:
 
 /* Line 690 of lalr1.cc  */
-#line 5753 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5813 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
        (yyval.expr) = new CatchExpr(LOC((yyloc)), *(yysemantic_stack_[(3) - (2)].name_test_list), (yysemantic_stack_[(3) - (3)].expr));
        delete (yysemantic_stack_[(3) - (2)].name_test_list);
     }
     break;
 
-  case 633:
+  case 643:
 
 /* Line 690 of lalr1.cc  */
-#line 5762 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5822 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
     break;
 
-  case 634:
+  case 644:
 
 /* Line 690 of lalr1.cc  */
-#line 5770 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5830 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             CatchExpr::NameTestList *ntl = new CatchExpr::NameTestList;
             ntl->push_back( static_cast<NameTest*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -8981,10 +9068,10 @@
         }
     break;
 
-  case 635:
+  case 645:
 
 /* Line 690 of lalr1.cc  */
-#line 5776 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5836 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             CatchExpr::NameTestList *ntl =
                 static_cast<CatchExpr::NameTestList*>((yysemantic_stack_[(3) - (1)].name_test_list));
@@ -8993,121 +9080,121 @@
         }
     break;
 
-  case 636:
+  case 646:
 
 /* Line 690 of lalr1.cc  */
-#line 5794 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5854 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTSelection( LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), (yysemantic_stack_[(2) - (2)].pos_filter_list) );
             delete (yysemantic_stack_[(2) - (2)].pos_filter_list);
         }
     break;
 
-  case 637:
+  case 647:
 
 /* Line 690 of lalr1.cc  */
-#line 5802 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5862 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.pos_filter_list) = NULL;
         }
     break;
 
-  case 638:
+  case 648:
 
 /* Line 690 of lalr1.cc  */
-#line 5806 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5866 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.pos_filter_list) = (yysemantic_stack_[(1) - (1)].pos_filter_list);
         }
     break;
 
-  case 639:
+  case 649:
 
 /* Line 690 of lalr1.cc  */
-#line 5813 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5873 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.pos_filter_list) = new FTSelection::pos_filter_list_t;
             (yyval.pos_filter_list)->push_back( dynamic_cast<FTPosFilter*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 640:
+  case 650:
 
 /* Line 690 of lalr1.cc  */
-#line 5818 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5878 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yysemantic_stack_[(2) - (1)].pos_filter_list)->push_back( dynamic_cast<FTPosFilter*>((yysemantic_stack_[(2) - (2)].node)) );
             (yyval.pos_filter_list) = (yysemantic_stack_[(2) - (1)].pos_filter_list);
         }
     break;
 
-  case 641:
+  case 651:
 
 /* Line 690 of lalr1.cc  */
-#line 5826 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5886 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 642:
+  case 652:
 
 /* Line 690 of lalr1.cc  */
-#line 5830 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5890 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTOr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
-  case 643:
+  case 653:
 
 /* Line 690 of lalr1.cc  */
-#line 5837 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5897 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 644:
+  case 654:
 
 /* Line 690 of lalr1.cc  */
-#line 5841 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5901 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTAnd( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
-  case 645:
+  case 655:
 
 /* Line 690 of lalr1.cc  */
-#line 5848 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5908 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 646:
+  case 656:
 
 /* Line 690 of lalr1.cc  */
-#line 5852 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5912 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTMildNot( LOC((yyloc)), (yysemantic_stack_[(4) - (1)].node), (yysemantic_stack_[(4) - (4)].node) );
         }
     break;
 
-  case 647:
+  case 657:
 
 /* Line 690 of lalr1.cc  */
-#line 5859 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5919 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 648:
+  case 658:
 
 /* Line 690 of lalr1.cc  */
-#line 5863 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTUnaryNot(
                 LOC((yyloc)), dynamic_cast<FTPrimaryWithOptions*>((yysemantic_stack_[(2) - (2)].node))
@@ -9115,10 +9202,10 @@
         }
     break;
 
-  case 649:
+  case 659:
 
 /* Line 690 of lalr1.cc  */
-#line 5872 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5932 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTPrimaryWithOptions(
                 LOC((yyloc)),
@@ -9129,162 +9216,60 @@
         }
     break;
 
-  case 650:
-
-/* Line 690 of lalr1.cc  */
-#line 5884 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 651:
-
-/* Line 690 of lalr1.cc  */
-#line 5888 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 652:
-
-/* Line 690 of lalr1.cc  */
-#line 5895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 653:
-
-/* Line 690 of lalr1.cc  */
-#line 5899 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 654:
-
-/* Line 690 of lalr1.cc  */
-#line 5907 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new FTWeight( LOC((yyloc)), dynamic_cast<exprnode*>((yysemantic_stack_[(4) - (3)].expr)) );
-        }
-    break;
-
-  case 655:
-
-/* Line 690 of lalr1.cc  */
-#line 5915 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = new FTWordsTimes(
-                LOC((yyloc)),
-                dynamic_cast<FTWords*>((yysemantic_stack_[(2) - (1)].node)),
-                dynamic_cast<FTTimes*>((yysemantic_stack_[(2) - (2)].node))
-            );
-        }
-    break;
-
-  case 656:
-
-/* Line 690 of lalr1.cc  */
-#line 5923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
-        }
-    break;
-
-  case 657:
-
-/* Line 690 of lalr1.cc  */
-#line 5927 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 658:
-
-/* Line 690 of lalr1.cc  */
-#line 5934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 659:
-
-/* Line 690 of lalr1.cc  */
-#line 5938 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 660:
 
 /* Line 690 of lalr1.cc  */
-#line 5946 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5944 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTExtensionSelection(
-                LOC((yyloc)),
-                dynamic_cast<PragmaList*>((yysemantic_stack_[(4) - (1)].node)),
-                dynamic_cast<FTSelection*>((yysemantic_stack_[(4) - (3)].node))
-            );
+            (yyval.node) = NULL;
         }
     break;
 
   case 661:
 
 /* Line 690 of lalr1.cc  */
-#line 5957 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5948 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = NULL;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 662:
 
 /* Line 690 of lalr1.cc  */
-#line 5961 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5955 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 663:
 
 /* Line 690 of lalr1.cc  */
-#line 5969 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5959 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTWords(
-                LOC((yyloc)),
-                dynamic_cast<FTWordsValue*>((yysemantic_stack_[(2) - (1)].node)),
-                dynamic_cast<FTAnyallOption*>((yysemantic_stack_[(2) - (2)].node))
-            );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 664:
 
 /* Line 690 of lalr1.cc  */
-#line 5981 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5967 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTWordsValue(
-                LOC((yyloc)), static_cast<StringLiteral*>((yysemantic_stack_[(1) - (1)].expr)), NULL
-            );
+            (yyval.node) = new FTWeight( LOC((yyloc)), dynamic_cast<exprnode*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
   case 665:
 
 /* Line 690 of lalr1.cc  */
-#line 5987 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5975 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTWordsValue(
-                LOC((yyloc)), NULL, dynamic_cast<exprnode*>((yysemantic_stack_[(3) - (2)].expr))
+            (yyval.node) = new FTWordsTimes(
+                LOC((yyloc)),
+                dynamic_cast<FTWords*>((yysemantic_stack_[(2) - (1)].node)),
+                dynamic_cast<FTTimes*>((yysemantic_stack_[(2) - (2)].node))
             );
         }
     break;
@@ -9292,16 +9277,16 @@
   case 666:
 
 /* Line 690 of lalr1.cc  */
-#line 5996 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5983 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::any );
+            (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
   case 667:
 
 /* Line 690 of lalr1.cc  */
-#line 6000 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5987 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9310,88 +9295,100 @@
   case 668:
 
 /* Line 690 of lalr1.cc  */
-#line 6008 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5994 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
+            (yyval.node) = NULL;
         }
     break;
 
   case 669:
 
 /* Line 690 of lalr1.cc  */
-#line 6012 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 5998 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 670:
 
 /* Line 690 of lalr1.cc  */
-#line 6016 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6006 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
+            (yyval.node) = new FTExtensionSelection(
+                LOC((yyloc)),
+                dynamic_cast<PragmaList*>((yysemantic_stack_[(4) - (1)].node)),
+                dynamic_cast<FTSelection*>((yysemantic_stack_[(4) - (3)].node))
+            );
         }
     break;
 
   case 671:
 
 /* Line 690 of lalr1.cc  */
-#line 6023 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6017 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::any;
+            (yyval.node) = NULL;
         }
     break;
 
   case 672:
 
 /* Line 690 of lalr1.cc  */
-#line 6027 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6021 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 673:
 
 /* Line 690 of lalr1.cc  */
-#line 6034 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6029 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::all;
+            (yyval.node) = new FTWords(
+                LOC((yyloc)),
+                dynamic_cast<FTWordsValue*>((yysemantic_stack_[(2) - (1)].node)),
+                dynamic_cast<FTAnyallOption*>((yysemantic_stack_[(2) - (2)].node))
+            );
         }
     break;
 
   case 674:
 
 /* Line 690 of lalr1.cc  */
-#line 6038 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6041 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
+            (yyval.node) = new FTWordsValue(
+                LOC((yyloc)), static_cast<StringLiteral*>((yysemantic_stack_[(1) - (1)].expr)), NULL
+            );
         }
     break;
 
   case 675:
 
 /* Line 690 of lalr1.cc  */
-#line 6046 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6047 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTWordsValue(
+                LOC((yyloc)), NULL, dynamic_cast<exprnode*>((yysemantic_stack_[(3) - (2)].expr))
+            );
         }
     break;
 
   case 676:
 
 /* Line 690 of lalr1.cc  */
-#line 6050 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6056 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::any );
         }
     break;
 
   case 677:
 
 /* Line 690 of lalr1.cc  */
-#line 6054 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6060 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9400,109 +9397,97 @@
   case 678:
 
 /* Line 690 of lalr1.cc  */
-#line 6058 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6068 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
     break;
 
   case 679:
 
 /* Line 690 of lalr1.cc  */
-#line 6062 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6072 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
     break;
 
   case 680:
 
 /* Line 690 of lalr1.cc  */
-#line 6070 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6076 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTOrder( LOC((yyloc)) );
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
         }
     break;
 
   case 681:
 
 /* Line 690 of lalr1.cc  */
-#line 6078 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6083 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTWindow(
-                LOC((yyloc)),
-                static_cast<AdditiveExpr*>((yysemantic_stack_[(3) - (2)].expr)),
-                static_cast<FTUnit*>((yysemantic_stack_[(3) - (3)].node))
-            );
+            (yyval.ft_anyall_value) = ft_anyall_mode::any;
         }
     break;
 
   case 682:
 
 /* Line 690 of lalr1.cc  */
-#line 6090 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6087 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTDistance(
-                LOC((yyloc)),
-                dynamic_cast<FTRange*>((yysemantic_stack_[(3) - (2)].node)),
-                dynamic_cast<FTUnit*>((yysemantic_stack_[(3) - (3)].node))
-            );
+            (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
         }
     break;
 
   case 683:
 
 /* Line 690 of lalr1.cc  */
-#line 6102 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6094 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::words );
+            (yyval.ft_anyall_value) = ft_anyall_mode::all;
         }
     break;
 
   case 684:
 
 /* Line 690 of lalr1.cc  */
+#line 6098 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
+        }
+    break;
+
+  case 685:
+
+/* Line 690 of lalr1.cc  */
 #line 6106 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::sentences );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 685:
+  case 686:
 
 /* Line 690 of lalr1.cc  */
 #line 6110 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::paragraphs );
-        }
-    break;
-
-  case 686:
-
-/* Line 690 of lalr1.cc  */
-#line 6118 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-            FTMatchOptions *mo = new FTMatchOptions( LOC((yyloc)) );
-            mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(2) - (2)].node)) );
-            (yyval.node) = mo;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 687:
 
 /* Line 690 of lalr1.cc  */
-#line 6124 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6114 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            FTMatchOptions *mo = dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (1)].node));
-            mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(3) - (3)].node)) );
-            (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 688:
 
 /* Line 690 of lalr1.cc  */
-#line 6134 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6118 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9511,7 +9496,7 @@
   case 689:
 
 /* Line 690 of lalr1.cc  */
-#line 6138 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6122 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9520,18 +9505,22 @@
   case 690:
 
 /* Line 690 of lalr1.cc  */
-#line 6142 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6130 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTOrder( LOC((yyloc)) );
         }
     break;
 
   case 691:
 
 /* Line 690 of lalr1.cc  */
-#line 6146 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6138 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTWindow(
+                LOC((yyloc)),
+                static_cast<AdditiveExpr*>((yysemantic_stack_[(3) - (2)].expr)),
+                static_cast<FTUnit*>((yysemantic_stack_[(3) - (3)].node))
+            );
         }
     break;
 
@@ -9540,77 +9529,175 @@
 /* Line 690 of lalr1.cc  */
 #line 6150 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTDistance(
+                LOC((yyloc)),
+                dynamic_cast<FTRange*>((yysemantic_stack_[(3) - (2)].node)),
+                dynamic_cast<FTUnit*>((yysemantic_stack_[(3) - (3)].node))
+            );
         }
     break;
 
   case 693:
 
 /* Line 690 of lalr1.cc  */
-#line 6154 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6162 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::words );
         }
     break;
 
   case 694:
 
 /* Line 690 of lalr1.cc  */
-#line 6158 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6166 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::sentences );
         }
     break;
 
   case 695:
 
 /* Line 690 of lalr1.cc  */
-#line 6162 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6170 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::paragraphs );
         }
     break;
 
   case 696:
 
 /* Line 690 of lalr1.cc  */
-#line 6170 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6178 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            FTMatchOptions *mo = new FTMatchOptions( LOC((yyloc)) );
+            mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(2) - (2)].node)) );
+            (yyval.node) = mo;
+        }
+    break;
+
+  case 697:
+
+/* Line 690 of lalr1.cc  */
+#line 6184 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            FTMatchOptions *mo = dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (1)].node));
+            mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(3) - (3)].node)) );
+            (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
+        }
+    break;
+
+  case 698:
+
+/* Line 690 of lalr1.cc  */
+#line 6194 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 699:
+
+/* Line 690 of lalr1.cc  */
+#line 6198 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 700:
+
+/* Line 690 of lalr1.cc  */
+#line 6202 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 701:
+
+/* Line 690 of lalr1.cc  */
+#line 6206 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 702:
+
+/* Line 690 of lalr1.cc  */
+#line 6210 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 703:
+
+/* Line 690 of lalr1.cc  */
+#line 6214 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 704:
+
+/* Line 690 of lalr1.cc  */
+#line 6218 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 705:
+
+/* Line 690 of lalr1.cc  */
+#line 6222 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 706:
+
+/* Line 690 of lalr1.cc  */
+#line 6230 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::sensitive );
         }
     break;
 
-  case 697:
+  case 707:
 
 /* Line 690 of lalr1.cc  */
-#line 6174 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6234 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::insensitive );
         }
     break;
 
-  case 698:
+  case 708:
 
 /* Line 690 of lalr1.cc  */
-#line 6178 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6238 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::lower );
         }
     break;
 
-  case 699:
+  case 709:
 
 /* Line 690 of lalr1.cc  */
-#line 6182 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6242 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::upper );
         }
     break;
 
-  case 700:
+  case 710:
 
 /* Line 690 of lalr1.cc  */
-#line 6190 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6250 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::sensitive
@@ -9618,10 +9705,10 @@
         }
     break;
 
-  case 701:
+  case 711:
 
 /* Line 690 of lalr1.cc  */
-#line 6196 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6256 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::insensitive
@@ -9629,10 +9716,10 @@
         }
     break;
 
-  case 702:
+  case 712:
 
 /* Line 690 of lalr1.cc  */
-#line 6206 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6266 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTExtensionOption(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)), SYMTAB((yysemantic_stack_[(3) - (3)].sval))
@@ -9640,28 +9727,28 @@
         }
     break;
 
-  case 703:
+  case 713:
 
 /* Line 690 of lalr1.cc  */
-#line 6216 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6276 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::stemming );
         }
     break;
 
-  case 704:
+  case 714:
 
 /* Line 690 of lalr1.cc  */
-#line 6220 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6280 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::no_stemming );
         }
     break;
 
-  case 705:
+  case 715:
 
 /* Line 690 of lalr1.cc  */
-#line 6228 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6288 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = NULL;
             if ( (yysemantic_stack_[(2) - (2)].node) ) {
@@ -9673,10 +9760,10 @@
         }
     break;
 
-  case 706:
+  case 716:
 
 /* Line 690 of lalr1.cc  */
-#line 6238 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6298 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = (yysemantic_stack_[(5) - (4)].thesaurus_id_list);
             if ( (yysemantic_stack_[(5) - (3)].node) ) {
@@ -9689,75 +9776,75 @@
         }
     break;
 
-  case 707:
+  case 717:
 
 /* Line 690 of lalr1.cc  */
-#line 6249 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6309 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTThesaurusOption( LOC((yyloc)), NULL, false, true );
         }
     break;
 
-  case 708:
+  case 718:
 
 /* Line 690 of lalr1.cc  */
-#line 6256 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6316 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
-  case 709:
+  case 719:
 
 /* Line 690 of lalr1.cc  */
-#line 6260 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6320 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
     break;
 
-  case 710:
+  case 720:
 
 /* Line 690 of lalr1.cc  */
-#line 6267 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6327 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.thesaurus_id_list) = NULL;
         }
     break;
 
-  case 711:
+  case 721:
 
 /* Line 690 of lalr1.cc  */
-#line 6271 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6331 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(2) - (2)].thesaurus_id_list);
         }
     break;
 
-  case 712:
+  case 722:
 
 /* Line 690 of lalr1.cc  */
-#line 6278 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6338 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.thesaurus_id_list) = new FTThesaurusOption::thesaurus_id_list_t;
             (yyval.thesaurus_id_list)->push_back( dynamic_cast<FTThesaurusID*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 713:
+  case 723:
 
 /* Line 690 of lalr1.cc  */
-#line 6283 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6343 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yysemantic_stack_[(3) - (1)].thesaurus_id_list)->push_back( dynamic_cast<FTThesaurusID*>((yysemantic_stack_[(3) - (3)].node)) );
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(3) - (1)].thesaurus_id_list);
         }
     break;
 
-  case 714:
+  case 724:
 
 /* Line 690 of lalr1.cc  */
-#line 6292 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6352 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTThesaurusID(
                 LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (2)].sval)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), dynamic_cast<FTRange*>((yysemantic_stack_[(4) - (4)].node))
@@ -9765,46 +9852,46 @@
         }
     break;
 
-  case 715:
+  case 725:
 
 /* Line 690 of lalr1.cc  */
-#line 6301 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6361 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.sval) = 0;
         }
     break;
 
-  case 716:
+  case 726:
 
 /* Line 690 of lalr1.cc  */
-#line 6305 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6365 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.sval) = (yysemantic_stack_[(2) - (2)].sval);
         }
     break;
 
-  case 717:
+  case 727:
 
 /* Line 690 of lalr1.cc  */
-#line 6312 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6372 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = NULL;
         }
     break;
 
-  case 718:
+  case 728:
 
 /* Line 690 of lalr1.cc  */
-#line 6316 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6376 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
     break;
 
-  case 719:
+  case 729:
 
 /* Line 690 of lalr1.cc  */
-#line 6324 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6384 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)),
@@ -9815,10 +9902,10 @@
         }
     break;
 
-  case 720:
+  case 730:
 
 /* Line 690 of lalr1.cc  */
-#line 6333 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6393 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, (yysemantic_stack_[(4) - (4)].incl_excl_list), ft_stop_words_mode::with_default
@@ -9827,10 +9914,10 @@
         }
     break;
 
-  case 721:
+  case 731:
 
 /* Line 690 of lalr1.cc  */
-#line 6340 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6400 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, NULL, ft_stop_words_mode::without
@@ -9838,28 +9925,28 @@
         }
     break;
 
-  case 722:
+  case 732:
 
 /* Line 690 of lalr1.cc  */
-#line 6350 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6410 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), NULL );
         }
     break;
 
-  case 723:
+  case 733:
 
 /* Line 690 of lalr1.cc  */
-#line 6354 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6414 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), "", (yysemantic_stack_[(3) - (2)].strlist) );
         }
     break;
 
-  case 724:
+  case 734:
 
 /* Line 690 of lalr1.cc  */
-#line 6361 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6421 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             string_list_t *sl = new string_list_t;
             sl->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -9867,10 +9954,10 @@
         }
     break;
 
-  case 725:
+  case 735:
 
 /* Line 690 of lalr1.cc  */
-#line 6367 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6427 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             if ( (yysemantic_stack_[(3) - (1)].strlist) )
                 (yysemantic_stack_[(3) - (1)].strlist)->push_back( SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
@@ -9878,38 +9965,38 @@
         }
     break;
 
-  case 726:
+  case 736:
 
 /* Line 690 of lalr1.cc  */
-#line 6376 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6436 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.incl_excl_list) = NULL;
         }
     break;
 
-  case 727:
+  case 737:
 
 /* Line 690 of lalr1.cc  */
-#line 6380 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6440 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.incl_excl_list) = (yysemantic_stack_[(1) - (1)].incl_excl_list);
         }
     break;
 
-  case 728:
+  case 738:
 
 /* Line 690 of lalr1.cc  */
-#line 6387 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6447 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.incl_excl_list) = new FTStopWordOption::incl_excl_list_t;
             (yyval.incl_excl_list)->push_back( dynamic_cast<FTStopWordsInclExcl*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 729:
+  case 739:
 
 /* Line 690 of lalr1.cc  */
-#line 6392 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6452 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             FTStopWordOption::incl_excl_list_t *iel = (yysemantic_stack_[(2) - (1)].incl_excl_list);
             if ( !iel )
@@ -9919,10 +10006,10 @@
         }
     break;
 
-  case 730:
+  case 740:
 
 /* Line 690 of lalr1.cc  */
-#line 6404 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6464 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -9932,10 +10019,10 @@
         }
     break;
 
-  case 731:
+  case 741:
 
 /* Line 690 of lalr1.cc  */
-#line 6412 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6472 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -9945,109 +10032,109 @@
         }
     break;
 
-  case 732:
+  case 742:
 
 /* Line 690 of lalr1.cc  */
-#line 6424 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6484 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTLanguageOption( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
-  case 733:
+  case 743:
 
 /* Line 690 of lalr1.cc  */
-#line 6432 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6492 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::with );
         }
     break;
 
-  case 734:
+  case 744:
 
 /* Line 690 of lalr1.cc  */
-#line 6436 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6496 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::without );
         }
     break;
 
-  case 735:
+  case 745:
 
 /* Line 690 of lalr1.cc  */
-#line 6444 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6504 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_start );
         }
     break;
 
-  case 736:
+  case 746:
 
 /* Line 690 of lalr1.cc  */
-#line 6448 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6508 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_end );
         }
     break;
 
-  case 737:
+  case 747:
 
 /* Line 690 of lalr1.cc  */
-#line 6452 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6512 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::entire );
         }
     break;
 
-  case 738:
+  case 748:
 
 /* Line 690 of lalr1.cc  */
-#line 6460 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6520 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTTimes( LOC((yyloc)), dynamic_cast<FTRange*>((yysemantic_stack_[(3) - (2)].node)) );
         }
     break;
 
-  case 739:
+  case 749:
 
 /* Line 690 of lalr1.cc  */
-#line 6468 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6528 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::exactly, (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
-  case 740:
+  case 750:
 
 /* Line 690 of lalr1.cc  */
-#line 6472 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6532 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_least, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 741:
+  case 751:
 
 /* Line 690 of lalr1.cc  */
-#line 6476 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6536 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_most, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 742:
+  case 752:
 
 /* Line 690 of lalr1.cc  */
-#line 6480 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6540 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::from_to, (yysemantic_stack_[(4) - (2)].expr), (yysemantic_stack_[(4) - (4)].expr) );
         }
     break;
 
-  case 743:
+  case 753:
 
 /* Line 690 of lalr1.cc  */
-#line 6488 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6548 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10057,10 +10144,10 @@
         }
     break;
 
-  case 744:
+  case 754:
 
 /* Line 690 of lalr1.cc  */
-#line 6496 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6556 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10070,105 +10157,105 @@
         }
     break;
 
-  case 745:
+  case 755:
 
 /* Line 690 of lalr1.cc  */
-#line 6508 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6568 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::sentence );
         }
     break;
 
-  case 746:
+  case 756:
 
 /* Line 690 of lalr1.cc  */
-#line 6512 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6572 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::paragraph );
         }
     break;
 
-  case 747:
+  case 757:
 
 /* Line 690 of lalr1.cc  */
-#line 6520 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6580 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
             (yyval.node) = new FTIgnoreOption( LOC((yyloc)), static_cast<UnionExpr*>((yysemantic_stack_[(3) - (3)].expr)) );
         }
     break;
 
-  case 748:
+  case 758:
 
 /* Line 690 of lalr1.cc  */
-#line 6534 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6594 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), NULL );
         }
     break;
 
-  case 749:
+  case 759:
 
 /* Line 690 of lalr1.cc  */
-#line 6538 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6598 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 750:
+  case 760:
 
 /* Line 690 of lalr1.cc  */
-#line 6545 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6605 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, false);
         }
     break;
 
-  case 751:
+  case 761:
 
 /* Line 690 of lalr1.cc  */
-#line 6550 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6610 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), false);
         }
     break;
 
-  case 752:
+  case 762:
 
 /* Line 690 of lalr1.cc  */
-#line 6558 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6618 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, true);
         }
     break;
 
-  case 753:
+  case 763:
 
 /* Line 690 of lalr1.cc  */
-#line 6563 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6623 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), true);
         }
     break;
 
-  case 754:
+  case 764:
 
 /* Line 690 of lalr1.cc  */
-#line 6572 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6632 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONDirectObjectConstructor(LOC((yyloc)),
                                                dynamic_cast<JSONPairList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 755:
+  case 765:
 
 /* Line 690 of lalr1.cc  */
-#line 6580 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6640 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           JSONPairList* jpl = new JSONPairList(LOC((yyloc)));
           jpl->push_back(new JSONPairConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)));
@@ -10176,10 +10263,10 @@
         }
     break;
 
-  case 756:
+  case 766:
 
 /* Line 690 of lalr1.cc  */
-#line 6586 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6646 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (1)].node));
           assert(jpl);
@@ -10188,10 +10275,10 @@
         }
     break;
 
-  case 757:
+  case 767:
 
 /* Line 690 of lalr1.cc  */
-#line 6596 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6656 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONObjectInsertExpr(LOC((yyloc)),
                                         (yysemantic_stack_[(5) - (3)].expr),
@@ -10199,10 +10286,10 @@
         }
     break;
 
-  case 758:
+  case 768:
 
 /* Line 690 of lalr1.cc  */
-#line 6602 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6662 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (3)].node));
           (yyval.expr) = new JSONObjectInsertExpr(
@@ -10214,28 +10301,28 @@
         }
     break;
 
-  case 759:
+  case 769:
 
 /* Line 690 of lalr1.cc  */
-#line 6612 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6672 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayInsertExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), (yysemantic_stack_[(8) - (5)].expr), (yysemantic_stack_[(8) - (8)].expr));
         }
     break;
 
-  case 760:
+  case 770:
 
 /* Line 690 of lalr1.cc  */
-#line 6619 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6679 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.expr) = new JSONArrayAppendExpr(LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr));
         }
     break;
 
-  case 761:
+  case 771:
 
 /* Line 690 of lalr1.cc  */
-#line 6626 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6686 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(3) - (3)].expr));
@@ -10259,10 +10346,10 @@
         }
     break;
 
-  case 762:
+  case 772:
 
 /* Line 690 of lalr1.cc  */
-#line 6651 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6711 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(5) - (3)].expr));
@@ -10289,10 +10376,10 @@
         }
     break;
 
-  case 763:
+  case 773:
 
 /* Line 690 of lalr1.cc  */
-#line 6679 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6739 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(7) - (5)].expr));
@@ -10319,64 +10406,64 @@
         }
     break;
 
-  case 764:
-
-/* Line 690 of lalr1.cc  */
-#line 6707 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 765:
-
-/* Line 690 of lalr1.cc  */
-#line 6711 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 766:
-
-/* Line 690 of lalr1.cc  */
-#line 6715 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 767:
-
-/* Line 690 of lalr1.cc  */
-#line 6722 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+  case 774:
+
+/* Line 690 of lalr1.cc  */
+#line 6767 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 775:
+
+/* Line 690 of lalr1.cc  */
+#line 6771 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 776:
+
+/* Line 690 of lalr1.cc  */
+#line 6775 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 777:
+
+/* Line 690 of lalr1.cc  */
+#line 6782 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonItem);
         }
     break;
 
-  case 768:
+  case 778:
 
 /* Line 690 of lalr1.cc  */
-#line 6729 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6789 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonObject);
         }
     break;
 
-  case 769:
+  case 779:
 
 /* Line 690 of lalr1.cc  */
-#line 6736 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6796 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonArray);
         }
     break;
 
-  case 772:
+  case 782:
 
 /* Line 690 of lalr1.cc  */
-#line 6753 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6813 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     {
           auto_ptr<QName> lQName( static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
           zstring const &tmp = lQName->get_qname();
@@ -10388,1564 +10475,1564 @@
         }
     break;
 
-  case 774:
+  case 784:
 
 /* Line 690 of lalr1.cc  */
-#line 6766 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6826 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("attribute"))); }
     break;
 
-  case 775:
+  case 785:
 
 /* Line 690 of lalr1.cc  */
-#line 6767 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6827 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("comment"))); }
     break;
 
-  case 776:
+  case 786:
 
 /* Line 690 of lalr1.cc  */
-#line 6768 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6828 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document-node"))); }
     break;
 
-  case 777:
+  case 787:
 
 /* Line 690 of lalr1.cc  */
-#line 6769 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6829 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("namespace-node"))); }
     break;
 
-  case 778:
+  case 788:
 
 /* Line 690 of lalr1.cc  */
-#line 6770 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6830 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("element"))); }
     break;
 
-  case 779:
+  case 789:
 
 /* Line 690 of lalr1.cc  */
-#line 6771 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6831 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("item"))); }
     break;
 
-  case 780:
+  case 790:
 
 /* Line 690 of lalr1.cc  */
-#line 6772 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6832 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("if"))); }
     break;
 
-  case 781:
+  case 791:
 
 /* Line 690 of lalr1.cc  */
-#line 6773 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6833 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("node"))); }
     break;
 
-  case 782:
+  case 792:
 
 /* Line 690 of lalr1.cc  */
-#line 6774 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6834 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("processing-instruction"))); }
     break;
 
-  case 783:
+  case 793:
 
 /* Line 690 of lalr1.cc  */
-#line 6775 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6835 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-attribute"))); }
     break;
 
-  case 784:
+  case 794:
 
 /* Line 690 of lalr1.cc  */
-#line 6776 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6836 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-element"))); }
     break;
 
-  case 785:
+  case 795:
 
 /* Line 690 of lalr1.cc  */
-#line 6777 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6837 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("text"))); }
     break;
 
-  case 786:
+  case 796:
 
 /* Line 690 of lalr1.cc  */
-#line 6778 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6838 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("typeswitch"))); }
     break;
 
-  case 787:
+  case 797:
 
 /* Line 690 of lalr1.cc  */
-#line 6779 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6839 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("switch"))); }
     break;
 
-  case 788:
+  case 798:
 
 /* Line 690 of lalr1.cc  */
-#line 6780 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6840 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty-sequence"))); }
     break;
 
-  case 789:
+  case 799:
 
 /* Line 690 of lalr1.cc  */
-#line 6781 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6841 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("while"))); }
     break;
 
-  case 791:
+  case 801:
 
 /* Line 690 of lalr1.cc  */
-#line 6786 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6846 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
     break;
 
-  case 792:
+  case 802:
 
 /* Line 690 of lalr1.cc  */
-#line 6787 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6847 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("xquery"))); }
     break;
 
-  case 793:
+  case 803:
 
 /* Line 690 of lalr1.cc  */
-#line 6788 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6848 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty"))); }
     break;
 
-  case 794:
+  case 804:
 
 /* Line 690 of lalr1.cc  */
-#line 6789 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6849 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("boundary-space"))); }
     break;
 
-  case 795:
+  case 805:
 
 /* Line 690 of lalr1.cc  */
-#line 6790 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6850 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ft-option"))); }
     break;
 
-  case 796:
+  case 806:
 
 /* Line 690 of lalr1.cc  */
-#line 6791 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6851 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("base-uri"))); }
     break;
 
-  case 797:
+  case 807:
 
 /* Line 690 of lalr1.cc  */
-#line 6792 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6852 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lax"))); }
     break;
 
-  case 798:
+  case 808:
 
 /* Line 690 of lalr1.cc  */
-#line 6793 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6853 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strict"))); }
     break;
 
-  case 799:
+  case 809:
 
 /* Line 690 of lalr1.cc  */
-#line 6794 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6854 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("idiv"))); }
     break;
 
-  case 800:
+  case 810:
 
 /* Line 690 of lalr1.cc  */
-#line 6795 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6855 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document"))); }
     break;
 
-  case 801:
+  case 811:
 
 /* Line 690 of lalr1.cc  */
-#line 6796 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6856 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ftnot"))); }
     break;
 
-  case 802:
+  case 812:
 
 /* Line 690 of lalr1.cc  */
-#line 6797 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6857 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("not"))); }
     break;
 
-  case 803:
+  case 813:
 
 /* Line 690 of lalr1.cc  */
-#line 6798 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6858 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sensitive"))); }
     break;
 
-  case 804:
+  case 814:
 
 /* Line 690 of lalr1.cc  */
-#line 6799 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6859 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("insensitive"))); }
     break;
 
-  case 805:
+  case 815:
 
 /* Line 690 of lalr1.cc  */
-#line 6800 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6860 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("diacritics"))); }
     break;
 
-  case 806:
+  case 816:
 
 /* Line 690 of lalr1.cc  */
-#line 6801 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6861 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("without"))); }
     break;
 
-  case 807:
+  case 817:
 
 /* Line 690 of lalr1.cc  */
-#line 6802 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6862 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stemming"))); }
     break;
 
-  case 808:
+  case 818:
 
 /* Line 690 of lalr1.cc  */
-#line 6803 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6863 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("thesaurus"))); }
     break;
 
-  case 809:
+  case 819:
 
 /* Line 690 of lalr1.cc  */
-#line 6804 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6864 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stop"))); }
     break;
 
-  case 810:
+  case 820:
 
 /* Line 690 of lalr1.cc  */
-#line 6805 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6865 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("wildcards"))); }
     break;
 
-  case 811:
+  case 821:
 
 /* Line 690 of lalr1.cc  */
-#line 6806 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6866 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("entire"))); }
     break;
 
-  case 812:
+  case 822:
 
 /* Line 690 of lalr1.cc  */
-#line 6807 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6867 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("content"))); }
     break;
 
-  case 813:
+  case 823:
 
 /* Line 690 of lalr1.cc  */
-#line 6808 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6868 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("word"))); }
     break;
 
-  case 814:
+  case 824:
 
 /* Line 690 of lalr1.cc  */
-#line 6809 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6869 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("start"))); }
     break;
 
-  case 815:
+  case 825:
 
 /* Line 690 of lalr1.cc  */
-#line 6810 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6870 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("end"))); }
     break;
 
-  case 816:
+  case 826:
 
 /* Line 690 of lalr1.cc  */
-#line 6811 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6871 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("most"))); }
     break;
 
-  case 817:
+  case 827:
 
 /* Line 690 of lalr1.cc  */
-#line 6812 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6872 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("skip"))); }
     break;
 
-  case 818:
+  case 828:
 
 /* Line 690 of lalr1.cc  */
-#line 6813 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6873 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("copy"))); }
     break;
 
-  case 819:
+  case 829:
 
 /* Line 690 of lalr1.cc  */
-#line 6814 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6874 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("general"))); }
     break;
 
-  case 820:
+  case 830:
 
 /* Line 690 of lalr1.cc  */
-#line 6815 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6875 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("value"))); }
     break;
 
-  case 821:
+  case 831:
 
 /* Line 690 of lalr1.cc  */
-#line 6816 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6876 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("eq"))); }
     break;
 
-  case 822:
+  case 832:
 
 /* Line 690 of lalr1.cc  */
-#line 6817 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6877 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ne"))); }
     break;
 
-  case 823:
+  case 833:
 
 /* Line 690 of lalr1.cc  */
-#line 6818 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6878 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lt"))); }
     break;
 
-  case 824:
+  case 834:
 
 /* Line 690 of lalr1.cc  */
-#line 6819 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6879 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("le"))); }
     break;
 
-  case 825:
+  case 835:
 
 /* Line 690 of lalr1.cc  */
-#line 6820 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6880 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("gt"))); }
     break;
 
-  case 826:
+  case 836:
 
 /* Line 690 of lalr1.cc  */
-#line 6821 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6881 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ge"))); }
     break;
 
-  case 827:
+  case 837:
 
 /* Line 690 of lalr1.cc  */
-#line 6822 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6882 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("at"))); }
     break;
 
-  case 828:
+  case 838:
 
 /* Line 690 of lalr1.cc  */
-#line 6823 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6883 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("context"))); }
     break;
 
-  case 829:
+  case 839:
 
 /* Line 690 of lalr1.cc  */
-#line 6824 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6884 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("variable"))); }
     break;
 
-  case 830:
+  case 840:
 
 /* Line 690 of lalr1.cc  */
-#line 6825 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6885 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("return"))); }
     break;
 
-  case 831:
+  case 841:
 
 /* Line 690 of lalr1.cc  */
-#line 6826 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6886 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("for"))); }
     break;
 
-  case 832:
+  case 842:
 
 /* Line 690 of lalr1.cc  */
-#line 6827 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6887 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("allowing"))); }
     break;
 
-  case 833:
+  case 843:
 
 /* Line 690 of lalr1.cc  */
-#line 6828 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6888 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sliding"))); }
     break;
 
-  case 834:
+  case 844:
 
 /* Line 690 of lalr1.cc  */
-#line 6829 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6889 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("tumbling"))); }
     break;
 
-  case 835:
+  case 845:
 
 /* Line 690 of lalr1.cc  */
-#line 6830 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6890 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("previous"))); }
     break;
 
-  case 836:
+  case 846:
 
 /* Line 690 of lalr1.cc  */
-#line 6831 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6891 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("next"))); }
     break;
 
-  case 837:
+  case 847:
 
 /* Line 690 of lalr1.cc  */
-#line 6832 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6892 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("only"))); }
     break;
 
-  case 838:
+  case 848:
 
 /* Line 690 of lalr1.cc  */
-#line 6833 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6893 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("when"))); }
     break;
 
-  case 839:
+  case 849:
 
 /* Line 690 of lalr1.cc  */
-#line 6834 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6894 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("count"))); }
     break;
 
-  case 840:
+  case 850:
 
 /* Line 690 of lalr1.cc  */
-#line 6835 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("in"))); }
     break;
 
-  case 841:
+  case 851:
 
 /* Line 690 of lalr1.cc  */
-#line 6836 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6896 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("let"))); }
     break;
 
-  case 842:
+  case 852:
 
 /* Line 690 of lalr1.cc  */
-#line 6837 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6897 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("where"))); }
     break;
 
-  case 843:
+  case 853:
 
 /* Line 690 of lalr1.cc  */
-#line 6838 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6898 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("by"))); }
     break;
 
-  case 844:
+  case 854:
 
 /* Line 690 of lalr1.cc  */
-#line 6839 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6899 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("group"))); }
     break;
 
-  case 845:
+  case 855:
 
 /* Line 690 of lalr1.cc  */
-#line 6840 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6900 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("order"))); }
     break;
 
-  case 846:
+  case 856:
 
 /* Line 690 of lalr1.cc  */
-#line 6841 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6901 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stable"))); }
     break;
 
-  case 847:
+  case 857:
 
 /* Line 690 of lalr1.cc  */
-#line 6842 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6902 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ascending"))); }
     break;
 
-  case 848:
+  case 858:
 
 /* Line 690 of lalr1.cc  */
-#line 6843 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6903 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("descending"))); }
     break;
 
-  case 849:
+  case 859:
 
 /* Line 690 of lalr1.cc  */
-#line 6844 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6904 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("greatest"))); }
     break;
 
-  case 850:
+  case 860:
 
 /* Line 690 of lalr1.cc  */
-#line 6845 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6905 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("least"))); }
     break;
 
-  case 851:
+  case 861:
 
 /* Line 690 of lalr1.cc  */
-#line 6846 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6906 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("collation"))); }
     break;
 
-  case 852:
+  case 862:
 
 /* Line 690 of lalr1.cc  */
-#line 6847 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6907 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("some"))); }
     break;
 
-  case 853:
+  case 863:
 
 /* Line 690 of lalr1.cc  */
-#line 6848 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6908 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("every"))); }
     break;
 
-  case 854:
+  case 864:
 
 /* Line 690 of lalr1.cc  */
-#line 6849 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6909 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("satisfies"))); }
     break;
 
-  case 855:
+  case 865:
 
 /* Line 690 of lalr1.cc  */
-#line 6850 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6910 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("case"))); }
     break;
 
-  case 856:
+  case 866:
 
 /* Line 690 of lalr1.cc  */
-#line 6851 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6911 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("as"))); }
     break;
 
-  case 857:
+  case 867:
 
 /* Line 690 of lalr1.cc  */
-#line 6852 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6912 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("then"))); }
     break;
 
-  case 858:
+  case 868:
 
 /* Line 690 of lalr1.cc  */
-#line 6853 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("else"))); }
     break;
 
-  case 859:
+  case 869:
 
 /* Line 690 of lalr1.cc  */
-#line 6854 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6914 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("or"))); }
     break;
 
-  case 860:
+  case 870:
 
 /* Line 690 of lalr1.cc  */
-#line 6855 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6915 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("and"))); }
     break;
 
-  case 861:
+  case 871:
 
 /* Line 690 of lalr1.cc  */
-#line 6856 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6916 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("instance"))); }
     break;
 
-  case 862:
+  case 872:
 
 /* Line 690 of lalr1.cc  */
-#line 6857 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6917 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("of"))); }
     break;
 
-  case 863:
+  case 873:
 
 /* Line 690 of lalr1.cc  */
-#line 6858 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6918 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("castable"))); }
     break;
 
-  case 864:
+  case 874:
 
 /* Line 690 of lalr1.cc  */
-#line 6859 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6919 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("to"))); }
     break;
 
-  case 865:
+  case 875:
 
 /* Line 690 of lalr1.cc  */
-#line 6860 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6920 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("div"))); }
     break;
 
-  case 866:
+  case 876:
 
 /* Line 690 of lalr1.cc  */
-#line 6861 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6921 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("mod"))); }
     break;
 
-  case 867:
+  case 877:
 
 /* Line 690 of lalr1.cc  */
-#line 6862 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6922 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("union"))); }
     break;
 
-  case 868:
+  case 878:
 
 /* Line 690 of lalr1.cc  */
-#line 6863 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("intersect"))); }
     break;
 
-  case 869:
+  case 879:
 
 /* Line 690 of lalr1.cc  */
-#line 6864 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6924 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("except"))); }
     break;
 
-  case 870:
+  case 880:
 
 /* Line 690 of lalr1.cc  */
-#line 6865 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6925 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("validate"))); }
     break;
 
-  case 871:
+  case 881:
 
 /* Line 690 of lalr1.cc  */
-#line 6866 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("type"))); }
     break;
 
-  case 872:
+  case 882:
 
 /* Line 690 of lalr1.cc  */
-#line 6867 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6927 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("cast"))); }
     break;
 
-  case 873:
+  case 883:
 
 /* Line 690 of lalr1.cc  */
-#line 6868 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("treat"))); }
     break;
 
-  case 874:
+  case 884:
 
 /* Line 690 of lalr1.cc  */
-#line 6869 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("is"))); }
     break;
 
-  case 875:
+  case 885:
 
 /* Line 690 of lalr1.cc  */
-#line 6870 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("preserve"))); }
     break;
 
-  case 876:
+  case 886:
 
 /* Line 690 of lalr1.cc  */
-#line 6871 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strip"))); }
     break;
 
-  case 877:
+  case 887:
 
 /* Line 690 of lalr1.cc  */
-#line 6872 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6932 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("namespace"))); }
     break;
 
-  case 878:
+  case 888:
 
 /* Line 690 of lalr1.cc  */
-#line 6873 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("external"))); }
     break;
 
-  case 879:
+  case 889:
 
 /* Line 690 of lalr1.cc  */
-#line 6874 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("encoding"))); }
     break;
 
-  case 880:
+  case 890:
 
 /* Line 690 of lalr1.cc  */
-#line 6875 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("no-preserve"))); }
     break;
 
-  case 881:
+  case 891:
 
 /* Line 690 of lalr1.cc  */
-#line 6876 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("inherit"))); }
     break;
 
-  case 882:
+  case 892:
 
 /* Line 690 of lalr1.cc  */
-#line 6877 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6937 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("no-inherit"))); }
     break;
 
-  case 883:
+  case 893:
 
 /* Line 690 of lalr1.cc  */
-#line 6878 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6938 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("declare"))); }
     break;
 
-  case 884:
+  case 894:
 
 /* Line 690 of lalr1.cc  */
-#line 6879 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6939 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("construction"))); }
     break;
 
-  case 885:
+  case 895:
 
 /* Line 690 of lalr1.cc  */
-#line 6880 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ordering"))); }
     break;
 
-  case 886:
+  case 896:
 
 /* Line 690 of lalr1.cc  */
-#line 6881 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6941 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("default"))); }
     break;
 
-  case 887:
+  case 897:
 
 /* Line 690 of lalr1.cc  */
-#line 6882 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("copy-namespaces"))); }
     break;
 
-  case 888:
+  case 898:
 
 /* Line 690 of lalr1.cc  */
-#line 6883 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("option"))); }
     break;
 
-  case 889:
+  case 899:
 
 /* Line 690 of lalr1.cc  */
-#line 6884 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6944 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("version"))); }
     break;
 
-  case 890:
+  case 900:
 
 /* Line 690 of lalr1.cc  */
-#line 6885 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("import"))); }
     break;
 
-  case 891:
+  case 901:
 
 /* Line 690 of lalr1.cc  */
-#line 6886 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6946 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema"))); }
     break;
 
-  case 892:
+  case 902:
 
 /* Line 690 of lalr1.cc  */
-#line 6887 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6947 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("module"))); }
     break;
 
-  case 893:
+  case 903:
 
 /* Line 690 of lalr1.cc  */
-#line 6888 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6948 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("function"))); }
     break;
 
-  case 894:
+  case 904:
 
 /* Line 690 of lalr1.cc  */
-#line 6889 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6949 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("score"))); }
     break;
 
-  case 895:
+  case 905:
 
 /* Line 690 of lalr1.cc  */
-#line 6890 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6950 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("contains"))); }
     break;
 
-  case 896:
+  case 906:
 
 /* Line 690 of lalr1.cc  */
-#line 6891 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6951 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("weight"))); }
     break;
 
-  case 897:
+  case 907:
 
 /* Line 690 of lalr1.cc  */
-#line 6892 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6952 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("window"))); }
     break;
 
-  case 898:
+  case 908:
 
 /* Line 690 of lalr1.cc  */
-#line 6893 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6953 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("distance"))); }
     break;
 
-  case 899:
+  case 909:
 
 /* Line 690 of lalr1.cc  */
-#line 6894 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6954 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("occurs"))); }
     break;
 
-  case 900:
+  case 910:
 
 /* Line 690 of lalr1.cc  */
-#line 6895 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6955 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("times"))); }
     break;
 
-  case 901:
+  case 911:
 
 /* Line 690 of lalr1.cc  */
-#line 6896 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6956 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("same"))); }
     break;
 
-  case 902:
+  case 912:
 
 /* Line 690 of lalr1.cc  */
-#line 6897 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6957 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("different"))); }
     break;
 
-  case 903:
+  case 913:
 
 /* Line 690 of lalr1.cc  */
-#line 6898 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6958 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lowercase"))); }
     break;
 
-  case 904:
+  case 914:
 
 /* Line 690 of lalr1.cc  */
-#line 6899 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6959 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("uppercase"))); }
     break;
 
-  case 905:
+  case 915:
 
 /* Line 690 of lalr1.cc  */
-#line 6900 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6960 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("relationship"))); }
     break;
 
-  case 906:
+  case 916:
 
 /* Line 690 of lalr1.cc  */
-#line 6901 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6961 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("levels"))); }
     break;
 
-  case 907:
+  case 917:
 
 /* Line 690 of lalr1.cc  */
-#line 6902 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6962 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("language"))); }
     break;
 
-  case 908:
+  case 918:
 
 /* Line 690 of lalr1.cc  */
-#line 6903 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6963 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("any"))); }
     break;
 
-  case 909:
+  case 919:
 
 /* Line 690 of lalr1.cc  */
-#line 6904 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6964 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("all"))); }
     break;
 
-  case 910:
+  case 920:
 
 /* Line 690 of lalr1.cc  */
-#line 6905 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6965 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("exactly"))); }
     break;
 
-  case 911:
+  case 921:
 
 /* Line 690 of lalr1.cc  */
-#line 6906 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6966 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("from"))); }
     break;
 
-  case 912:
+  case 922:
 
 /* Line 690 of lalr1.cc  */
-#line 6907 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6967 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("words"))); }
     break;
 
-  case 913:
+  case 923:
 
 /* Line 690 of lalr1.cc  */
-#line 6908 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6968 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sentences"))); }
     break;
 
-  case 914:
+  case 924:
 
 /* Line 690 of lalr1.cc  */
-#line 6909 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6969 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sentence"))); }
     break;
 
-  case 915:
+  case 925:
 
 /* Line 690 of lalr1.cc  */
-#line 6910 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6970 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("phrase"))); }
     break;
 
-  case 916:
+  case 926:
 
 /* Line 690 of lalr1.cc  */
-#line 6911 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6971 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("paragraph"))); }
     break;
 
-  case 917:
+  case 927:
 
 /* Line 690 of lalr1.cc  */
-#line 6912 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6972 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("paragraphs"))); }
     break;
 
-  case 918:
+  case 928:
 
 /* Line 690 of lalr1.cc  */
-#line 6913 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6973 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("replace"))); }
     break;
 
-  case 919:
+  case 929:
 
 /* Line 690 of lalr1.cc  */
-#line 6914 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6974 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("modify"))); }
     break;
 
-  case 920:
+  case 930:
 
 /* Line 690 of lalr1.cc  */
-#line 6915 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6975 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("first"))); }
     break;
 
-  case 921:
+  case 931:
 
 /* Line 690 of lalr1.cc  */
-#line 6916 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6976 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("insert"))); }
     break;
 
-  case 922:
+  case 932:
 
 /* Line 690 of lalr1.cc  */
-#line 6917 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6977 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("before"))); }
     break;
 
-  case 923:
+  case 933:
 
 /* Line 690 of lalr1.cc  */
-#line 6918 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6978 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("after"))); }
     break;
 
-  case 924:
+  case 934:
 
 /* Line 690 of lalr1.cc  */
-#line 6919 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6979 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("revalidation"))); }
     break;
 
-  case 925:
+  case 935:
 
 /* Line 690 of lalr1.cc  */
-#line 6920 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6980 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("with"))); }
     break;
 
-  case 926:
+  case 936:
 
 /* Line 690 of lalr1.cc  */
-#line 6921 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6981 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("nodes"))); }
     break;
 
-  case 927:
+  case 937:
 
 /* Line 690 of lalr1.cc  */
-#line 6922 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6982 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("rename"))); }
     break;
 
-  case 928:
+  case 938:
 
 /* Line 690 of lalr1.cc  */
-#line 6923 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6983 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("last"))); }
     break;
 
-  case 929:
+  case 939:
 
 /* Line 690 of lalr1.cc  */
-#line 6924 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6984 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("delete"))); }
     break;
 
-  case 930:
+  case 940:
 
 /* Line 690 of lalr1.cc  */
-#line 6925 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6985 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("into"))); }
     break;
 
-  case 931:
+  case 941:
 
 /* Line 690 of lalr1.cc  */
-#line 6926 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6986 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("simple"))); }
     break;
 
-  case 932:
+  case 942:
 
 /* Line 690 of lalr1.cc  */
-#line 6927 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6987 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sequential"))); }
     break;
 
-  case 933:
+  case 943:
 
 /* Line 690 of lalr1.cc  */
-#line 6928 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6988 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("updating"))); }
     break;
 
-  case 934:
+  case 944:
 
 /* Line 690 of lalr1.cc  */
-#line 6929 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6989 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ordered"))); }
     break;
 
-  case 935:
+  case 945:
 
 /* Line 690 of lalr1.cc  */
-#line 6930 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6990 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("unordered"))); }
     break;
 
-  case 936:
+  case 946:
 
 /* Line 690 of lalr1.cc  */
-#line 6931 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6991 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("returning"))); }
     break;
 
-  case 937:
+  case 947:
 
 /* Line 690 of lalr1.cc  */
-#line 6932 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6992 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("exit"))); }
     break;
 
-  case 938:
+  case 948:
 
 /* Line 690 of lalr1.cc  */
-#line 6933 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6993 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("loop"))); }
     break;
 
-  case 939:
+  case 949:
 
 /* Line 690 of lalr1.cc  */
-#line 6934 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6994 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("break"))); }
     break;
 
-  case 940:
+  case 950:
 
 /* Line 690 of lalr1.cc  */
-#line 6935 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6995 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("continue"))); }
     break;
 
-  case 941:
+  case 951:
 
 /* Line 690 of lalr1.cc  */
-#line 6936 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6996 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("try"))); }
     break;
 
-  case 942:
+  case 952:
 
 /* Line 690 of lalr1.cc  */
-#line 6937 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6997 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("catch"))); }
     break;
 
-  case 943:
+  case 953:
 
 /* Line 690 of lalr1.cc  */
-#line 6938 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6998 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("using"))); }
     break;
 
-  case 944:
+  case 954:
 
 /* Line 690 of lalr1.cc  */
-#line 6939 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 6999 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("set"))); }
     break;
 
-  case 945:
+  case 955:
 
 /* Line 690 of lalr1.cc  */
-#line 6940 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7000 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("index"))); }
     break;
 
-  case 946:
+  case 956:
 
 /* Line 690 of lalr1.cc  */
-#line 6941 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7001 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("unique"))); }
     break;
 
-  case 947:
+  case 957:
 
 /* Line 690 of lalr1.cc  */
-#line 6942 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7002 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("non"))); }
     break;
 
-  case 948:
+  case 958:
 
 /* Line 690 of lalr1.cc  */
-#line 6943 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7003 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("on"))); }
     break;
 
-  case 949:
+  case 959:
 
 /* Line 690 of lalr1.cc  */
-#line 6944 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7004 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("range"))); }
     break;
 
-  case 950:
+  case 960:
 
 /* Line 690 of lalr1.cc  */
-#line 6945 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7005 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("equality"))); }
     break;
 
-  case 951:
+  case 961:
 
 /* Line 690 of lalr1.cc  */
-#line 6946 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7006 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("manually"))); }
     break;
 
-  case 952:
+  case 962:
 
 /* Line 690 of lalr1.cc  */
-#line 6947 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7007 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("automatically"))); }
     break;
 
-  case 953:
+  case 963:
 
 /* Line 690 of lalr1.cc  */
-#line 6948 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7008 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("maintained"))); }
     break;
 
-  case 954:
+  case 964:
 
 /* Line 690 of lalr1.cc  */
-#line 6949 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7009 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("decimal-format"))); }
     break;
 
-  case 955:
+  case 965:
 
 /* Line 690 of lalr1.cc  */
-#line 6950 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7010 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("decimal-separator"))); }
     break;
 
-  case 956:
+  case 966:
 
 /* Line 690 of lalr1.cc  */
-#line 6951 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7011 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("grouping-separator"))); }
     break;
 
-  case 957:
+  case 967:
 
 /* Line 690 of lalr1.cc  */
-#line 6952 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7012 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("infinity"))); }
     break;
 
-  case 958:
+  case 968:
 
 /* Line 690 of lalr1.cc  */
-#line 6953 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7013 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("minus-sign"))); }
     break;
 
-  case 959:
+  case 969:
 
 /* Line 690 of lalr1.cc  */
-#line 6954 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7014 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("NaN"))); }
     break;
 
-  case 960:
+  case 970:
 
 /* Line 690 of lalr1.cc  */
-#line 6955 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7015 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("percent"))); }
     break;
 
-  case 961:
+  case 971:
 
 /* Line 690 of lalr1.cc  */
-#line 6956 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7016 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("per-mille"))); }
     break;
 
-  case 962:
+  case 972:
 
 /* Line 690 of lalr1.cc  */
-#line 6957 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7017 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("zero-digit"))); }
     break;
 
-  case 963:
+  case 973:
 
 /* Line 690 of lalr1.cc  */
-#line 6958 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7018 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("digit"))); }
     break;
 
-  case 964:
+  case 974:
 
 /* Line 690 of lalr1.cc  */
-#line 6959 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7019 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("pattern-separator"))); }
     break;
 
-  case 965:
+  case 975:
 
 /* Line 690 of lalr1.cc  */
-#line 6960 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7020 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("collection"))); }
     break;
 
-  case 966:
+  case 976:
 
 /* Line 690 of lalr1.cc  */
-#line 6961 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7021 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("const"))); }
     break;
 
-  case 967:
+  case 977:
 
 /* Line 690 of lalr1.cc  */
-#line 6962 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7022 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("append-only"))); }
     break;
 
-  case 968:
+  case 978:
 
 /* Line 690 of lalr1.cc  */
-#line 6963 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7023 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("queue"))); }
     break;
 
-  case 969:
+  case 979:
 
 /* Line 690 of lalr1.cc  */
-#line 6964 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7024 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("mutable"))); }
     break;
 
-  case 970:
+  case 980:
 
 /* Line 690 of lalr1.cc  */
-#line 6965 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7025 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("read-only"))); }
     break;
 
-  case 971:
+  case 981:
 
 /* Line 690 of lalr1.cc  */
-#line 6966 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7026 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("integrity"))); }
     break;
 
-  case 972:
+  case 982:
 
 /* Line 690 of lalr1.cc  */
-#line 6967 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7027 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("constraint"))); }
     break;
 
-  case 973:
+  case 983:
 
 /* Line 690 of lalr1.cc  */
-#line 6968 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7028 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("check"))); }
     break;
 
-  case 974:
+  case 984:
 
 /* Line 690 of lalr1.cc  */
-#line 6969 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7029 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("key"))); }
     break;
 
-  case 975:
+  case 985:
 
 /* Line 690 of lalr1.cc  */
-#line 6970 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7030 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("foreach"))); }
     break;
 
-  case 976:
+  case 986:
 
 /* Line 690 of lalr1.cc  */
-#line 6971 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7031 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("foreign"))); }
     break;
 
-  case 977:
+  case 987:
 
 /* Line 690 of lalr1.cc  */
-#line 6972 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7032 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("keys"))); }
     break;
 
-  case 978:
+  case 988:
 
 /* Line 690 of lalr1.cc  */
-#line 6973 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7033 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ancestor"))); }
     break;
 
-  case 979:
+  case 989:
 
 /* Line 690 of lalr1.cc  */
-#line 6974 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7034 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("child"))); }
     break;
 
-  case 980:
+  case 990:
 
 /* Line 690 of lalr1.cc  */
-#line 6975 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7035 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("descendant"))); }
     break;
 
-  case 981:
+  case 991:
 
 /* Line 690 of lalr1.cc  */
-#line 6976 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7036 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("parent"))); }
     break;
 
-  case 982:
+  case 992:
 
 /* Line 690 of lalr1.cc  */
-#line 6977 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7037 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("preceding"))); }
     break;
 
-  case 983:
+  case 993:
 
 /* Line 690 of lalr1.cc  */
-#line 6978 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7038 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("self"))); }
     break;
 
-  case 984:
+  case 994:
 
 /* Line 690 of lalr1.cc  */
-#line 6979 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7039 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("following"))); }
     break;
 
-  case 985:
+  case 995:
 
 /* Line 690 of lalr1.cc  */
-#line 6980 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7040 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ancestor-or-self"))); }
     break;
 
-  case 986:
+  case 996:
 
 /* Line 690 of lalr1.cc  */
-#line 6981 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7041 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("descendant-or-self"))); }
     break;
 
-  case 987:
+  case 997:
 
 /* Line 690 of lalr1.cc  */
-#line 6982 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7042 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("following-sibling"))); }
     break;
 
-  case 988:
+  case 998:
 
 /* Line 690 of lalr1.cc  */
-#line 6983 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7043 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("preceding-sibling"))); }
     break;
 
-  case 989:
+  case 999:
 
 /* Line 690 of lalr1.cc  */
-#line 6984 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7044 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("json"))); }
     break;
 
-  case 990:
+  case 1000:
 
 /* Line 690 of lalr1.cc  */
-#line 6985 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7045 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("append"))); }
     break;
 
-  case 991:
+  case 1001:
 
 /* Line 690 of lalr1.cc  */
-#line 6986 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7046 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("position"))); }
     break;
 
-  case 992:
+  case 1002:
 
 /* Line 690 of lalr1.cc  */
-#line 6987 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7047 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("json-item"))); }
     break;
 
-  case 993:
+  case 1003:
 
 /* Line 690 of lalr1.cc  */
-#line 6988 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7048 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("array"))); }
     break;
 
-  case 994:
+  case 1004:
 
 /* Line 690 of lalr1.cc  */
-#line 6989 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7049 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("object"))); }
     break;
 
-  case 995:
+  case 1005:
 
 /* Line 690 of lalr1.cc  */
-#line 6990 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7050 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("structured-item"))); }
     break;
 
-  case 996:
+  case 1006:
 
 /* Line 690 of lalr1.cc  */
-#line 6995 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
+#line 7055 "/home/mbrantner/zorba/sandbox/src/compiler/parser/jsoniq_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), true); }
     break;
 
 
 
 /* Line 690 of lalr1.cc  */
-#line 11949 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
+#line 12036 "/home/mbrantner/zorba/build/src/compiler/parser/jsoniq_parser.cpp"
 	default:
           break;
       }
@@ -12219,190 +12306,191 @@
 
   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
      STATE-NUM.  */
-  const short int jsoniq_parser::yypact_ninf_ = -1437;
+  const short int jsoniq_parser::yypact_ninf_ = -1470;
   const short int
   jsoniq_parser::yypact_[] =
   {
-      5651,  7165,  7165,  7165,  7165, -1437, -1437,   282,   304, -1437,
-     596,   328, -1437, -1437, -1437,    58, -1437, -1437, -1437,   411,
-   -1437,   431,   730,   448,   525,   595, -1437,    17, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437,   536, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437,   583, -1437,   570, -1437,   577,   602, -1437,
-     149, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437,   615, -1437, -1437, -1437, -1437, -1437, -1437, -1437,   663,
-   -1437, -1437, -1437, -1437, -1437, 14896, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437,   700, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437,  6259,  8977,  9279, 14896, -1437,
-   -1437,   705, -1437, -1437, -1437, -1437,   727, -1437, -1437, -1437,
-    5044, -1437,  5349, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437,   751, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437,   145,   713, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437,   160, -1437,   380, -1437,   -93,   172, -1437,
-   -1437, -1437, -1437, -1437, -1437,   827, -1437,   723,   733,   752,
-   -1437, -1437,   844,   869, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437,  9581,  9883, -1437,
-     717, -1437, -1437, -1437, -1437, -1437,  5955,  7467,  1031, -1437,
-    7769, -1437, -1437,   618,   111, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,   118,
-   -1437, -1437, -1437, -1437, -1437, -1437,   370, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437,  7165, -1437, -1437, -1437, -1437,
-      22, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,   107,
-   -1437,   845, -1437, -1437, -1437,   695, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437,   871,   942, -1437,   904,   790,   943,
-     645,   668,   540,   445, -1437,   994,   851,   948,   951, 11091,
-   -1437,   861, -1437, -1437,   600, -1437, -1437, -1437, -1437,   821,
-     938, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437,   913,   906, -1437, -1437, -1437, -1437, -1437,   876,
-   -1437,  7165,   879,   881,   883,  7165,   438,   438,  1040,   683,
-     736,   710, 15185, 14896,   250,  1023, 14896,   920,   955,   734,
-    5044,   795,   830, 14896, 14896,   773,   804,    70, -1437, -1437,
-   -1437,  5044,  7165,  7165, 11393, 14896, -1437,   797,   798, 14896,
-     966,    40,   932, 11393,  1087,   179,   100, 14896,   969,   946,
-     982, -1437, 11393, 14896,  7165, 11393, 11393, 14896,  7165,   937,
-     941, 11393, 14896, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437,   949, -1437, 14896, -1437,   911,  6561,
-     975,    34,   945,   947,   958, 14896,  7165, -1437,   944,    99,
-   -1437,   701, -1437,    92,  1064, 11393, 11393, -1437,   183, -1437,
-   -1437, -1437,  1084, 11393,   888, -1437,  1077, 11393, 11393, 11997,
-   11393, 11393, 11393, 11393, 11997, 11393,   884,   886, 14896,   927,
-     928, 11393, 11393,  6259,   874, -1437,    41, -1437,    30, 11393,
-    7467, -1437, -1437, -1437, -1437, -1437,   596,   595,   125,   127,
-    1119,  8071,  3189,  8373,  3512,   663, -1437, -1437,   123,   663,
-   -1437, 11393,  4136, -1437,  1003,   686,    17,   965,   964,   967,
-    7165, 11393, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   11695, 11695, 11695, -1437, 11695, 11695, -1437, 11695, -1437, 11695,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, 11695, 11695,  1065,
-   11695, 11695, 11695, 11695, 11695, 11695, 11695, 11695, 11695, 11695,
-   11695, 11695,   905,  1044,  1045,  1046, -1437, -1437, -1437, 11997,
-   10185, -1437, 11393, 10487,   987, -1437,  5044,   995, 10789, -1437,
-   -1437, -1437, -1437,   326, -1437,   341, -1437, -1437, -1437, -1437,
-   -1437, -1437,  1036,  1038,   448,  1118, -1437, -1437, 15185,  1043,
-     718, 14896,   988,   989,  1043,  1040,  1024,  1018, -1437, -1437,
-   -1437,   122,   907,  1058,   857, 14896,  1015, 11393,  1041, 14896,
-   14896, -1437,  1028,   977,   978,   325,  1056, -1437,    55, -1437,
-   -1437,  1056, 14896,    23, 14896,  1070,   358, -1437,  7165, -1437,
-     124, -1437,  5044,  1069,  1122,  5044,  1040,  1071,   505, 14896,
-   11393,    17,   356,   323, -1437,    73,   984,   191,   193,  1016,
-   -1437,   986,  7165,  7165,   362,   523, 11393,   338, -1437, -1437,
-   11393, 11393, -1437, 11393, 11393, 11393, -1437, 11393, -1437, 11393,
-   -1437, 14896,  1064, -1437,    36,   376,   412, -1437, -1437, -1437,
-     414, -1437,   251, -1437, -1437,   821,   287,   373,     6,     8,
-    1078,   628,   934,   952,   950,     7, -1437,  1032, -1437, -1437,
-     990,   229,  6561,   428,  4448,   874, -1437, -1437, -1437,   954,
-   -1437,   618,   425,  1144,   646, -1437, -1437,   135, -1437, -1437,
-   -1437,   139, -1437,    51, -1437, -1437, -1437, -1437, -1437,  3824,
-   -1437, -1437, -1437, 14896,  1009, 11393,  1072, -1437, -1437, -1437,
-     942, -1437, -1437, -1437, -1437, -1437, 11695, -1437, -1437, -1437,
-     105, -1437,   668,   668,    19,   540,   540,   540,   540,   445,
-     445, -1437, -1437, 14029, 14029, 14896, 14896, -1437, -1437,   430,
-     238, -1437, -1437,   396, -1437, -1437, -1437, -1437,   501,   438,
-   -1437, -1437,    31,    32,   715, -1437,   448, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437,  1043, -1437,  1050,
-   14318,  1049, 11393, -1437, -1437, -1437,  1094,  1040,  1040,  1043,
-   -1437,   828,  1040,   704, 14896,   260,   656,  1164, -1437, -1437,
-     908,   498, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437,   122,    50,   970,   662, 11393, -1437, 14896,
-    1099,   899,  1040, -1437, -1437,  1048, 14607,  1075, 14029,  1081,
-   11393,    87,  1057,    54,   350,   953, -1437, -1437,   793,    23,
-    1094, 14029,  1088,  1111,  1025,  1012,  1079,  1040,  1052,  1086,
-    1117,  1040, 11393,     1, -1437, -1437, -1437,  1067,  1104, 11393,
-   11393,  1076, -1437,  1124,  1125,  7165, -1437,  1047,  1051,  1074,
-   11393,  1090,  1039, 11393, -1437,  1109,   256,   269,   272,  1200,
-   -1437,   284, -1437,   209,  1085, -1437, -1437,  1211, -1437,   778,
-   11393, 11393, 11393,   787, 11393, 11393, 11393, 11393, 11393, 11393,
-   11393, 11393, 11393, 11997,  1123, 11393, 11393, -1437,  8675,   119,
-     997, -1437, -1437, -1437, -1437, -1437, -1437,   467, -1437, -1437,
-   11393,   143,    43,    51,  8373,  3512,  8373,  1161, -1437, -1437,
-   11393,   782,  1136, -1437, 14896,  1138, -1437, -1437, 11393,   105,
-     802,   655, -1437,   961,   421,   991,   992, -1437, -1437,   830,
-   -1437,   980,   669,  1092,  1095,  1100,  1101,  1102,  1103,  1106,
-    1107,  1108,  1110,  1112, 14318,  1113,  1114,  1115,  1116,  1121,
-    1126, -1437,   538, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437,  1129, -1437, -1437, -1437,
-   -1437, 11393, -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437,   769, -1437,  1222,   831, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437,   981, -1437, -1437,  1246, -1437, -1437,
-   -1437, -1437, -1437,   673,  1247, -1437,    95, -1437, -1437, -1437,
-    1092,  1095,  1100,  1102,  1103,  1106,  1107,  1108,  1110,  1114,
-    1115,  1116,  1121, -1437,   538,   538, 11997,   993,   973, -1437,
-    1094,    50,  1054,  1093,  7165, 14896, -1437,    57, -1437, 14896,
-   -1437, 11393,  1137, 11393,  1158, 11393,   104,  1139, 11393,  1140,
-   -1437,  1170,  1171, 11393, 14896,   935,  1213, -1437, -1437, -1437,
-   -1437, -1437, -1437, 14029, -1437,  7165,  1040,  1184, -1437, -1437,
-   -1437,  1040,  1184, -1437, 11393,  1151,  7165, 14896, -1437, -1437,
-   11393, 11393,   801, -1437,    46,   810, -1437, 12584,   847, -1437,
-     849, -1437,  1120, -1437, -1437,  7165, -1437, 11393, -1437, -1437,
-   11393,  1096,  1124,  1195, -1437,  1166, -1437,   477, -1437, -1437,
-    1294, -1437, -1437,  7165, 14896, -1437,   581, -1437, -1437, -1437,
-    7165,  1128,  1068,  1073, -1437, -1437, -1437,  1080,  1082, -1437,
-   -1437, -1437,  1204, -1437, -1437, -1437, -1437,  1066,   324, 14896,
-    1130, -1437,  1146,  1149,  1152,  1154, -1437,   845,   722,  4448,
-     997, -1437,  6863,  4448, -1437, -1437,  1144,   113, -1437, -1437,
-   -1437,  1136, -1437,  1040, -1437,   856, -1437,   504,  1206, -1437,
-   11393,   694,  1072,   432,  1127, -1437,   105,  1060, -1437, -1437,
-     201, -1437,   394,   310,  1083,   105,   394, 11695, -1437,   408,
-   -1437, -1437, -1437, -1437, -1437, -1437,   105,  1173,  1042,   907,
-     310, -1437, -1437,  1037,  1249, -1437, -1437, -1437,  1141,    69,
-   12873, 12295,  1142,  4746, 14896, 14896,  1143, 13162,  1145,  1147,
-    1148,  1150,  1156,  1157,  1159,  1160, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, -1437, -1437,  1297,   371,
-    1303,   371,  1091,  1231, -1437, -1437,  1169, 14896,  1097, -1437,
-   -1437, 11997, -1437,  1165, -1437, 11393,  1201, -1437, -1437, 11393,
-   -1437,    76, -1437, 11393,  1203, 11393, -1437, 11393, 14896, 14896,
-   -1437,   128, -1437, 11393, -1437,  1225,  1226,  1257,  1040,  1184,
-   -1437, 11393,  1172, -1437, -1437, -1437,  1175, -1437,   290, 11393,
-    7165,  1177,   312, -1437, 14896,   -25, -1437, 13451,   291, -1437,
-   13740,  1178, -1437, -1437,  1181, -1437, -1437, 11393,   850,  1200,
-   14896,   636, -1437,  1182,  1200, 14896, -1437,  1183, -1437, 11393,
-   11393, 11393, 11393,  1059, 11393, 11393, -1437, 11393, 11393, 11393,
-   11393,  8675,   486, -1437, -1437, -1437, -1437, -1437,  1206, -1437,
-   -1437, -1437,  1040, 11393, -1437,  1215, -1437, -1437, -1437, -1437,
-    1186, 11695, -1437, -1437, -1437, -1437, -1437,   109, 11695, 11695,
-     652, -1437,   991, -1437,   521, -1437,   992,   105,  1202, -1437,
-   -1437,  1098, -1437, -1437, -1437, -1437, -1437, -1437,  1189,  1190,
-   -1437,   516,   530,  1274,  1192, -1437,   531, -1437,  1193, -1437,
-    1194,  1196,  1197, -1437, -1437,   534,   550, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437,   314,   314, -1437,   371,
-   -1437, -1437,   561, -1437,  1345,   310,  1289,  1199, 11997,   -31,
-    1105,  1217, -1437, -1437, 11393, -1437, 11393,  1241, -1437, 11393,
-   -1437, -1437, -1437,  1336, -1437, -1437,  8675, 11393,  1040, -1437,
-   -1437, -1437, 11393, 11393, -1437, -1437, -1437,  8675,  8675,  1296,
-    7165, 14029, 14896,   -17, 14896, 11393, 14896,   623,  8675, -1437,
-     322,    52,  1200, 14896, -1437,  1198,  1200, -1437, -1437, -1437,
-   -1437, -1437, 11393, -1437, -1437, -1437,   342,   343,   357, 11393,
-   -1437, -1437, -1437,  1287, 11393, -1437,   540, 11695, 11695,    19,
-     648, -1437, -1437, -1437, -1437, -1437, -1437, 11393, -1437, -1437,
-   -1437, 14896, -1437, 14896, -1437, 14029, -1437, 14029,  1300, -1437,
-   -1437, -1437, -1437, 14896, -1437, 14896, -1437, -1437, -1437, -1437,
-    1369, -1437, -1437, -1437,  1134,  1293, -1437, -1437,  1295, -1437,
-      94, 14896,  1283,  1179, 14896, 11997, -1437, -1437, 11393, -1437,
-    1288, -1437, -1437,  1184, -1437, -1437, 14029, -1437, -1437, -1437,
-    1311, 11393,  1221, -1437,  1314,  8675, -1437, 14896,   692,   846,
-   -1437,  1212,  1200, -1437,  1214, -1437,  1216,  1124,  1125,   462,
-   -1437,  1287,    19,    19, 11695,   472,  1223,  1228,  1268,  1229,
-    1230, -1437, -1437, 14029,  1232,  1235, -1437, -1437,  1289, 11997,
-   -1437,  1206,  1131, 14896,  1305,  1188,  1295, -1437, 14896,   625,
-   14029,  7165, 14029,  1238, -1437, -1437,  1325,   772, -1437, -1437,
-   -1437, -1437,  1242,   867, -1437, -1437, -1437,  1233, -1437,  8675,
-     853, -1437, -1437,    19, -1437, -1437, -1437, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437, -1437, -1437, 11393,  1132, 14896,  1308,
-   -1437,  7165,   633, -1437, -1437,   640, 11393, -1437, -1437, -1437,
-   -1437, -1437, -1437, -1437,  1309, -1437,  1135,  1133, 14896, -1437,
-   -1437, 11393,  8675, 14896,  1153, 11393,  1155,  1243, 11997, -1437,
-   11997,  8675, -1437,  1234,  1162, 14896,  1207,  1316, 14896,  1163,
-   11997, -1437
+      5916,  7445,  7445,  7445,  7445, -1470, -1470,   208,   278, -1470,
+     773,   264, -1470, -1470, -1470,   322, -1470, -1470, -1470,   439,
+   -1470,   502,   601,   281,   521,   406, -1470,    -8, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470,   575, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470,   632, -1470,   628, -1470,   655,   727, -1470,
+     486, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470,   712, -1470, -1470, -1470, -1470, -1470, -1470, -1470,   832,
+   -1470, -1470, -1470, -1470, -1470, 15254, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470,   839, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470,  6530,  9275,  9580, 15254, -1470,
+   -1470,   770, -1470, -1470, -1470, -1470,   827, -1470, -1470, -1470,
+    5303, -1470,  5611, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470,   831, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470,    56,   771, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470,   -72, -1470,   415, -1470,
+     -73,   -57, -1470, -1470, -1470, -1470, -1470, -1470,   876, -1470,
+     757,   765,   782, -1470, -1470,   859,   870, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,   829,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+    9885, 10190, -1470,   723, -1470, -1470, -1470, -1470, -1470,  6223,
+    7750,  1031, -1470,  8055, -1470, -1470,   159,    94, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470,   103, -1470, -1470, -1470, -1470, -1470, -1470,   636,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,  7445, -1470,
+   -1470, -1470, -1470,    41, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470,   225, -1470,   852, -1470, -1470, -1470,   377, -1470,
+     573, -1470, -1470, -1470, -1470, -1470, -1470, -1470,   881,   960,
+   -1470,   898,   802,   957,   669,   700,   778,   805, -1470,  1008,
+     858,   958,   959, 11410, -1470,   871, -1470, -1470,   531, -1470,
+   -1470, -1470, -1470,   715, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470,   917,   909, -1470,
+   -1470, -1470, -1470, -1470,   882, -1470,  7445,   883,   884,   885,
+    7445,   171,   171,  1042,   251,   622,   583, 15546, 15254,    11,
+    1026, 15254,   921,   962,   656,  5303,   792,   826, 15254, 15254,
+     769,   689,    52, -1470, -1470, -1470,  5303,  7445,  7445, 11715,
+     794,   795,   965,    25,   931, 11715,  1086,   235,   365, 15254,
+     968,   945,   982, -1470, 11715, 15254,  7445, 11715, 11715, 15254,
+    7445,   937,   939, 11715, 15254, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470,   951, -1470, 15254,
+   -1470,   911,  6835,   973,   273,   940,   941,   942, 15254,  7445,
+   -1470,   956,   129, -1470,   422, -1470,    82,  1066, 11715, 11715,
+   -1470,    91, -1470, -1470, -1470,  1095, 11715,   897, -1470,  1084,
+   11715, 11715, 12325, 11715, 11715, 11715, 11715, 12325, 11715,   890,
+     892, 15254,   936,   938, 11715, 11715,  6530,   886, -1470,    54,
+   -1470,    50, 11715,  7750, -1470, -1470, -1470, -1470, -1470,   773,
+     406,   114,   132,  1128,  8360,  3129,  8665,  3455,   832, -1470,
+   -1470,   280,   832, -1470, 11715,  4085, -1470,  1012,   910,    -8,
+     963,   966,   967,  7445, 11715, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, 15254, -1470, 15254, 12020, 12020, 12020,
+   -1470, 12020, 12020, -1470, 12020, -1470, 12020, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, 12020, 12020,  1062, 12020, 12020, 12020,
+   12020, 12020, 12020, 12020, 12020, 12020, 12020, 12020, 12020,   901,
+    1045,  1046,  1047, -1470, -1470, -1470, 12325, 10495, -1470,  4701,
+   11715, 10800,   988, -1470,   994, 11105, -1470, -1470, -1470, -1470,
+      63, -1470,   391, -1470, -1470, -1470, -1470, -1470, -1470,  1037,
+    1038,   281,  1118, -1470, -1470, 15546,  1034,    74, 15254,   987,
+     989,  1034,  1042,  1021,  1018, -1470, -1470, -1470,   316,   902,
+    1058,   855, 15254,  1013, 11715,  1036, 15254, 15254, -1470,  1024,
+     975,   976,   152, -1470, -1470, 15254,    15, 15254,  1067,   404,
+   -1470,  7445, -1470,   122, -1470,  5303,  1068,  1119,  5303,  1042,
+    1069,   334, 15254, 11715,    -8,   266,    31, -1470,    58,   983,
+     123,   150,  1015, -1470,   985,  7445,  7445,   331,   523, 11715,
+      70, -1470, -1470, 11715, 11715, -1470, 11715, 11715, 11715, -1470,
+   11715, -1470, 11715, -1470, 15254,  1066, -1470,    37,   366,   372,
+   -1470, -1470, -1470,   382, -1470,    28, -1470, -1470,   715,   383,
+     515,   -15,    95,  1072,   741,   932,   949,   948,   147, -1470,
+    1033, -1470, -1470,   991,   228,  6835,   385,  4400,   886, -1470,
+   -1470, -1470,   950, -1470,   159,   748,  1141,   182, -1470, -1470,
+     148, -1470, -1470, -1470,   164, -1470,    61, -1470, -1470, -1470,
+   -1470, -1470,  3770, -1470, -1470, -1470, 15254,  1014, 11715,  1071,
+   -1470, -1470, -1470,  1078, -1470,    48,  1078,   960, -1470, -1470,
+   -1470, -1470, -1470, 12020, -1470, -1470, -1470,   192, -1470,   700,
+     700,   706,   778,   778,   778,   778,   805,   805, -1470, -1470,
+   14378, 14378, 15254, 15254, -1470, -1470,   389, -1470, -1470, -1470,
+   -1470, -1470,   170, -1470, -1470,   414, -1470, -1470, -1470,   481,
+     171, -1470, -1470,   555,   672,   774, -1470,   281, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,  1034, -1470,
+    1055, 14670,  1049, 11715, -1470, -1470, -1470,  1099,  1042,  1042,
+    1034, -1470,   496,  1042,   711, 15254,   585,   709,  1166, -1470,
+   -1470,   906,    69, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470,   316,    57,   969,   284, 11715, -1470,
+   15254,  1102,   895,  1042, -1470, -1470,  1048,    92,   946, -1470,
+   -1470,   611,    15,  1099, 14378,  1080,  1110,  1022,  1007,  1076,
+    1042,  1050,  1081,  1116,  1042, 14378, 11715,   -43, -1470, -1470,
+   -1470,  1061,  1097, 11715, 11715,  1070, -1470,  1122,  1123,  7445,
+   -1470,  1032,  1051,  1065, 11715,  1087,  1040, 11715, -1470,  1105,
+     268,   275,   293,  1199, -1470,   289, -1470,   620,  1083, -1470,
+   -1470,  1211, -1470,   685, 11715, 11715, 11715,   767, 11715, 11715,
+   11715, 11715, 11715, 11715, 11715, 11715, 11715, 12325,  1125, 11715,
+   11715, -1470,  8970,   134,   992, -1470, -1470, -1470, -1470, -1470,
+   -1470,   249, -1470, -1470, 11715,   167,    75,    61,  8665,  3455,
+    8665,  1168, -1470, -1470, 11715,   808,  1138, -1470, 15254,  1143,
+   -1470, 14962,  1121,  1133, 11715,   236,  1107,    45, -1470, 11715,
+     192,   556,   607, -1470,   964,   527,   995,   997, -1470, -1470,
+     826, -1470,   993,   659,  1101,  1109,  1111,  1113,  1114,  1115,
+    1117,  1124,  1126,  1129,  1130, 14670,  1131,  1132,  1134,  1135,
+    1136,  1137, -1470,   663, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470,  1140, -1470, -1470,
+   -1470, -1470, 11715, -1470, -1470, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470,   776, -1470,  1227,   861, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470,   972, -1470, -1470,  1238, -1470,
+   -1470, -1470, -1470, -1470,   603,  1246, -1470,   760, -1470, -1470,
+   -1470,  1101,  1109,  1111,  1114,  1115,  1117,  1124,  1126,  1129,
+    1132,  1134,  1135,  1136, -1470,   663,   663, 12325,   999,   970,
+   -1470,  1099,    57,  1073,  1085,  7445, 11715,  1149, -1470,  1160,
+    1163, 11715, 15254,   947,  1221, -1470, -1470, -1470, -1470, -1470,
+   -1470, 14378, -1470,  7445,  1042,  1192, -1470, -1470, -1470,  1042,
+    1192, -1470, -1470, 11715,  1158,  7445, 15254, -1470, -1470, 11715,
+   11715,   817, -1470,   296,   848, -1470, 12918,   849, -1470,   853,
+   -1470,  1120, -1470, -1470,  7445, -1470, 11715, -1470, -1470, 11715,
+    1103,  1122,  1202, -1470,  1174, -1470,   668, -1470, -1470,  1302,
+   -1470, -1470,  7445, 15254, -1470,   747, -1470, -1470, -1470,  7445,
+    1127,  1074,  1075, -1470, -1470, -1470,  1077,  1079, -1470, -1470,
+   -1470,  1212, -1470, -1470, -1470, -1470,  1082,   304, 15254,  1139,
+   -1470,  1153,  1162,  1164,  1161, -1470,   852,   492,  4400,   992,
+   -1470,  7140,  4400, -1470, -1470,  1141,   635, -1470, -1470, -1470,
+    1138, -1470,  1042, -1470,   891, -1470,    79,  1210, -1470, 11715,
+     734,  1071, 15254, -1470,   321, 15254, -1470, 11715,  1172, 11715,
+    1196, 11715,   254,  1177,   393,  1142, -1470,   192,  1088, -1470,
+   -1470,   -42, -1470,   -75,   146,  1092,   192,   -75, 12020, -1470,
+     398, -1470, -1470, -1470, -1470, -1470, -1470,   192,  1179,  1043,
+     902,   146, -1470, -1470,  1041,  1249, -1470, -1470, -1470,  1144,
+     116, 13210, 12626,  1145,  5002, 15254, 15254,  1146, 13502,  1147,
+    1148,  1150,  1151,  1152,  1159,  1165,  1169, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470, -1470,  1308,
+     429,  1312,   429,  1089,  1240, -1470, -1470,  1178, 15254,  1090,
+   -1470, -1470, 12325, -1470,  1167, -1470, 11715, 15254, 15254, -1470,
+     791, -1470, 11715, -1470,  1223,  1229,  1257,  1042,  1192, -1470,
+   11715,  1173, -1470, -1470, -1470,  1175, -1470,   345, 11715,  7445,
+    1176,   417, -1470, 15254,    -2, -1470, 13794,   363, -1470, 14086,
+    1180, -1470, -1470,  1183, -1470, -1470, 11715,   854,  1199, 15254,
+     815, -1470,  1184,  1199, 15254, -1470,  1185, -1470, 11715, 11715,
+   11715, 11715,  1039, 11715, 11715, -1470, 11715, 11715, 11715, 11715,
+    8970,   428, -1470, -1470, -1470, -1470, -1470,  1210, -1470, -1470,
+   -1470,  1042, 11715, -1470,  1217, -1470, -1470, 11715,  1213, -1470,
+   -1470, 11715, -1470,   324, -1470, 11715,  1224, 11715, -1470, -1470,
+   -1470,  1186, 12020, -1470, -1470, -1470, -1470, -1470,   111, 12020,
+   12020,   -85, -1470,   995, -1470,   327, -1470,   997,   192,  1219,
+   -1470, -1470,  1093, -1470, -1470, -1470, -1470, -1470, -1470,  1188,
+    1190, -1470,   487,   500,  1270,  1191, -1470,   506, -1470,  1193,
+   -1470,  1194,  1195,  1197, -1470, -1470,   537,   540, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470,   426,   426, -1470,
+     429, -1470, -1470,   551, -1470,  1345,   146,  1283,  1198, 12325,
+     -28,  1096,  1218, -1470, -1470, -1470,  1330, -1470, -1470,  8970,
+   11715,  1042, -1470, -1470, -1470, 11715, 11715, -1470, -1470, -1470,
+    8970,  8970,  1293,  7445, 14378, 15254,    12, 15254, 11715, 15254,
+     667,  8970, -1470,   497,    60,  1199, 15254, -1470,  1201,  1199,
+   -1470, -1470, -1470, -1470, -1470, 11715, -1470, -1470, -1470,   297,
+     300,   301, 11715, -1470, -1470, -1470,  1284, 11715, -1470, 11715,
+   -1470, 11715,  1244, -1470, 11715, -1470, -1470,   778, 12020, 12020,
+     706,   690, -1470, -1470, -1470, -1470, -1470, -1470, 11715, -1470,
+   -1470, -1470, 15254, -1470, 15254, -1470, 14378, -1470, 14378,  1298,
+   -1470, -1470, -1470, -1470, 15254, -1470, 15254, -1470, -1470, -1470,
+   -1470,  1365, -1470, -1470, -1470,  1154,  1287, -1470, -1470,  1288,
+   -1470,   865, 15254,  1278,  1182, 15254, 12325,  1282, -1470, -1470,
+    1192, -1470, -1470, 14378, -1470, -1470, -1470,  1307, 11715,  1222,
+   -1470,  1309,  8970, -1470, 15254,   633,   619, -1470,  1207,  1199,
+   -1470,  1208, -1470,  1214,  1122,  1123,   436, -1470,  1284, -1470,
+   -1470, 11715, -1470,   706,   706, 12020,   457,  1226,  1228,  1267,
+    1230,  1231, -1470, -1470, 14378,  1232,  1233, -1470, -1470,  1283,
+   12325, -1470,  1210,  1106, 15254,  1303,  1200,  1288, 15254,   681,
+   14378,  7445, 14378,  1237, -1470, -1470,  1323,   683, -1470, -1470,
+   -1470, -1470,  1241,   644, -1470, -1470, -1470,  1234, -1470,  8970,
+     869, -1470, -1470, -1470,   706, -1470, -1470, -1470, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470, -1470, -1470, 11715,  1155, 15254,
+    1311, -1470,  7445,   716, -1470, -1470,   729, 11715, -1470, -1470,
+   -1470, -1470, -1470, -1470, -1470,  1314, -1470,  1157,  1156, 15254,
+   -1470, -1470, 11715,  8970, 15254,  1170, 11715,  1171,  1239, 12325,
+   -1470, 12325,  8970, -1470,  1235,  1181, 15254,  1205,  1317, 15254,
+    1189, 12325, -1470
   };
 
   /* YYDEFACT[S] -- default reduction number in state S.  Performed when
@@ -12411,594 +12499,589 @@
   const unsigned short int
   jsoniq_parser::yydefact_[] =
   {
-       165,   168,   168,   168,     0,   791,   996,   120,   122,   596,
-     883,   892,   832,   796,   794,   775,   884,   887,   839,   800,
-     776,   778,     0,   893,   780,   890,   861,   841,   816,   777,
-     836,   837,   888,   885,   835,   782,   891,   783,   784,   932,
-     944,   931,   833,   852,   846,   785,   834,   787,   786,   933,
-     870,   871,   838,   813,   954,   955,   956,   957,   958,   959,
-     960,   961,   962,   963,   964,   978,   985,   860,   856,   847,
-     827,   774,   855,   863,   872,   979,   851,   462,   828,   829,
-     886,   980,   986,   848,   865,     0,   468,   464,   858,   793,
-     849,   850,   879,   853,   869,   878,   984,   987,   799,   840,
-     881,   463,   868,   874,   779,     0,     0,     0,     0,   401,
-     866,   877,   882,   880,   859,   845,   934,   843,   844,   981,
-       0,   400,     0,   982,   988,   875,   830,   854,   983,   876,
-     857,   864,   873,   867,   935,   821,   826,   825,   824,   823,
-     822,   788,   842,     0,   792,   889,   814,   923,   922,   924,
-     798,   797,   817,   929,   781,   921,   926,   927,   918,   820,
-     862,   920,   930,   928,   919,   818,   925,   939,   940,   937,
-     938,   936,   789,   941,   942,   943,   909,   908,   895,   812,
-     805,   902,   898,   815,   811,   910,   911,   801,   802,   795,
-     804,   907,   906,   903,   899,   916,   917,   915,   905,   901,
-     894,   803,   914,   913,   807,   809,   808,   900,   904,   896,
-     810,   897,   806,   912,   965,   966,   967,   968,   969,   970,
-     946,   947,   945,   951,   952,   953,   948,   949,   950,   819,
-     971,   972,   973,   974,   975,   976,   977,     0,     0,   989,
-     990,   991,   994,   993,   992,   995,   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,   164,   171,   174,   454,   175,
-       0,   176,   177,   178,   179,   180,   181,   182,   185,     0,
-     211,   219,   214,   246,   252,     0,   244,   245,   221,   215,
-     184,   216,   183,   217,   220,   352,   354,   356,   366,   368,
-     372,   374,   377,   382,   385,   388,   390,   392,   394,     0,
-     398,   405,   404,   406,     0,   424,   407,   429,   430,   431,
-     438,   445,   460,   446,   447,   448,   451,   452,   449,   450,
-     475,   477,   478,   479,   476,   524,   525,   526,   527,   528,
-     529,   530,   461,   453,   597,   598,    43,   222,   223,   225,
-     224,   226,   218,   456,   457,   458,   455,   228,   231,   227,
-     229,   230,     0,   773,   790,   883,   892,   890,   792,     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,   256,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     274,   275,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   192,   775,   800,   778,   831,   893,   780,
-     841,   782,   852,   785,   787,   786,   870,   774,   829,   853,
-     877,   934,   935,   929,   921,   927,   918,   818,   939,   940,
-     937,   789,   941,   990,   465,   773,     0,   187,     0,     0,
-     211,     0,   780,   787,   786,     0,   168,   748,   941,     0,
-     219,     0,   466,     0,   491,     0,     0,   771,     0,   772,
-     427,   428,     0,     0,     0,   520,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   750,     0,   752,     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,
-       0,     0,   204,   232,   251,   247,   253,   248,   250,   249,
-       0,     0,     0,   417,     0,     0,   415,     0,   361,     0,
-     416,   409,   414,   413,   412,   411,   410,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   403,   402,   399,     0,
-       0,   425,     0,     0,   439,   442,     0,     0,     0,   532,
-     534,   538,   540,     0,   124,     0,   770,    47,    44,    45,
-      48,    49,     0,     0,     0,     0,    50,    51,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   607,   608,
-     609,     0,   103,   142,     0,     0,   112,     0,     0,     0,
-       0,   127,     0,     0,     0,     0,   255,   257,     0,   234,
-     235,   254,     0,     0,     0,   134,     0,   138,   168,   600,
-       0,    60,     0,    69,     0,     0,     0,    61,     0,     0,
-       0,     0,     0,     0,   323,     0,     0,     0,     0,     0,
-     594,     0,     0,     0,     0,   194,     0,     0,   188,   186,
-       0,     0,   754,     0,     0,     0,   465,     0,   749,     0,
-     467,   492,   491,   488,     0,     0,     0,   522,   521,   426,
-       0,   519,     0,   620,   621,   761,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   626,     0,   202,   203,
-       0,     0,     0,     0,     0,   207,   208,   751,   753,     0,
-       5,    24,     0,    25,     0,     7,    29,     0,    15,     8,
-      30,     0,    19,   883,    77,    16,    78,    20,   193,     0,
-     191,   212,   213,     0,     0,     0,     0,   205,   233,   292,
-     353,   355,   359,   365,   364,   363,     0,   360,   357,   358,
-       0,   369,   376,   375,   373,   379,   380,   381,   378,   383,
-     384,   387,   386,     0,     0,     0,     0,   408,   422,     0,
-       0,   440,   473,     0,   443,   459,   599,   471,     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,   698,   703,
-       0,     0,   699,   733,   686,   688,   689,   690,   692,   694,
-     693,   691,   695,     0,     0,     0,     0,     0,   111,     0,
-     144,     0,     0,   537,   531,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   236,   237,     0,   242,
-     140,     0,     0,   135,     0,     0,     0,     0,     0,     0,
-      62,     0,     0,     0,   273,   279,   276,     0,     0,     0,
-       0,     0,   536,     0,     0,     0,   418,     0,     0,     0,
-       0,   195,     0,     0,   755,     0,     0,     0,     0,   491,
-     489,     0,   480,     0,     0,   469,   470,     0,    13,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   200,     0,     0,
-       0,   435,   436,   437,   434,   634,   433,     0,   432,   209,
-       0,     0,     0,     0,   165,     0,   165,     0,   173,   243,
-       0,   307,   303,   305,     0,   293,   294,   362,     0,     0,
-       0,     0,   664,   370,   637,   641,   643,   645,   647,   650,
-     657,   658,   666,   775,   776,   778,   893,   777,   782,   783,
-     784,   785,   774,   779,     0,   788,   781,   994,   993,   992,
-     995,   389,   543,   549,   550,   569,   560,   568,   567,   566,
-     565,   562,   564,   561,   563,   553,   601,   602,   554,   555,
-     764,   765,   766,   558,   391,   393,   396,   559,   395,   423,
-     444,     0,   441,   472,   125,    56,    57,    54,    55,   131,
-     130,     0,    90,     0,     0,   109,   110,   115,    74,    75,
-      52,    53,    73,   704,     0,   707,   734,     0,   697,   696,
-     701,   700,   732,     0,     0,   709,     0,   705,   708,   687,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   143,   146,   148,     0,     0,     0,   113,
-     116,     0,     0,     0,   168,     0,   259,     0,   542,     0,
-     260,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     238,     0,     0,     0,     0,   286,     0,   283,   288,   241,
-     141,   136,   139,     0,   189,     0,     0,    71,    65,    68,
-      67,     0,    63,   277,     0,     0,   168,     0,   321,   325,
-       0,     0,     0,   328,     0,     0,   334,     0,     0,   341,
-       0,   345,     0,   420,   419,   168,   196,     0,   198,   322,
-       0,     0,     0,     0,   492,     0,   482,     0,   515,   512,
-       0,   516,   517,     0,     0,   511,     0,   486,   514,   513,
-       0,     0,     0,     0,   613,   614,   610,     0,     0,   618,
-     619,   615,   757,   758,   624,   762,   622,     0,     0,     0,
-       0,   628,   780,   787,   786,   941,   201,     0,     0,     0,
-     629,   630,     0,     0,   210,   760,    26,     0,    17,    21,
-      22,   304,   316,     0,   317,     0,   308,   309,   310,   311,
-       0,   296,     0,     0,     0,   648,   661,     0,   367,   371,
-       0,   680,     0,     0,     0,     0,     0,     0,   636,   638,
-     639,   675,   676,   677,   679,   678,     0,     0,   652,   651,
-       0,   655,   659,   673,   671,   670,   663,   667,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   546,   548,   547,   544,
-     397,   474,   133,   132,    91,   105,   721,   702,     0,   726,
-       0,   726,   715,   710,   147,   149,     0,     0,     0,   117,
-     145,     0,    27,     0,   258,     0,     0,   272,   264,     0,
-     268,     0,   262,     0,     0,     0,   281,     0,     0,     0,
-     240,   284,   287,     0,   137,     0,     0,    70,     0,    64,
-     278,     0,     0,   324,   326,   331,     0,   329,     0,     0,
-       0,     0,     0,   335,     0,     0,   349,     0,     0,   342,
-       0,     0,   346,   421,     0,   197,   756,     0,     0,   491,
-       0,     0,   523,     0,   491,     0,   487,     0,    14,     0,
-       0,     0,     0,     0,     0,     0,   627,     0,     0,     0,
-       0,     0,     0,   631,   635,   320,   318,   319,   312,   313,
-     314,   306,     0,     0,   301,     0,   295,   665,   656,   662,
-       0,     0,   735,   736,   746,   745,   744,     0,     0,     0,
-       0,   737,   642,   743,     0,   640,   644,     0,     0,   649,
-     653,     0,   674,   669,   672,   668,   576,   571,     0,     0,
-     586,     0,     0,     0,     0,   556,     0,   574,     0,   577,
-       0,     0,     0,   575,   580,     0,     0,   551,   606,   545,
-     570,   768,   769,   767,   552,   722,     0,     0,   720,   727,
-     728,   724,     0,   719,     0,   717,     0,     0,     0,     0,
-       0,     0,   533,   261,     0,   270,     0,     0,   266,     0,
-     269,   282,   290,   291,   285,   239,     0,     0,     0,    66,
-     280,   539,     0,     0,   332,   336,   330,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   535,
-       0,     0,   491,     0,   518,     0,   491,   541,   611,   612,
-     616,   617,     0,   623,   763,   625,     0,     0,     0,     0,
-     632,   315,   302,   297,     0,   660,   747,     0,     0,   739,
-       0,   685,   684,   683,   682,   681,   646,     0,   738,   572,
-     573,     0,   590,     0,   587,     0,   603,     0,     0,   579,
-     578,   585,   593,     0,   583,     0,   581,   731,   730,   729,
-       0,   723,   716,   714,     0,   711,   712,   706,   150,   152,
-     154,     0,     0,     0,     0,     0,   265,   263,     0,   271,
-       0,   206,   351,    72,   327,   333,     0,   347,   343,   350,
-       0,     0,     0,   337,     0,     0,   339,     0,   501,   495,
-     490,     0,   491,   481,     0,   759,     0,     0,     0,     0,
-     300,   298,   741,   740,     0,     0,     0,     0,   594,     0,
-       0,   604,   557,     0,     0,     0,   725,   718,     0,     0,
-     156,   155,     0,     0,     0,     0,   151,   267,     0,     0,
-       0,     0,     0,     0,   509,   503,     0,   502,   504,   510,
-     507,   497,     0,   496,   498,   508,   483,     0,   484,     0,
-       0,   633,   299,   742,   654,   591,   592,   595,   588,   589,
-     605,   584,   582,   713,   153,   157,     0,     0,     0,     0,
-     289,     0,     0,   340,   338,     0,     0,   494,   505,   506,
-     493,   499,   500,   485,     0,   158,     0,     0,     0,   348,
-     344,     0,     0,     0,     0,     0,     0,     0,     0,   160,
-       0,     0,   159,     0,     0,     0,     0,     0,     0,     0,
-       0,   161
+       165,   168,   168,   168,     0,   801,  1006,   120,   122,   606,
+     893,   902,   842,   806,   804,   785,   894,   897,   849,   810,
+     786,   788,   257,   903,   790,   900,   871,   851,   826,   787,
+     846,   847,   898,   895,   845,   792,   901,   793,   794,   942,
+     954,   941,   843,   862,   856,   795,   844,   797,   796,   943,
+     880,   881,   848,   823,   964,   965,   966,   967,   968,   969,
+     970,   971,   972,   973,   974,   988,   995,   870,   866,   857,
+     837,   784,   865,   873,   882,   989,   861,   470,   838,   839,
+     896,   990,   996,   858,   875,     0,   478,   472,   868,   803,
+     859,   860,   889,   863,   879,   888,   994,   997,   809,   850,
+     891,   471,   878,   884,   789,     0,     0,     0,     0,   403,
+     876,   887,   892,   890,   869,   855,   944,   853,   854,   991,
+       0,   402,     0,   992,   998,   885,   840,   864,   993,   886,
+     867,   874,   883,   877,   945,   831,   836,   835,   834,   833,
+     832,   798,   852,     0,   802,   899,   824,   469,   473,   474,
+     933,   932,   934,   808,   807,   827,   939,   791,   931,   936,
+     937,   928,   830,   872,   930,   940,   938,   929,   828,   935,
+     949,   950,   947,   948,   946,   799,   951,   952,   953,   919,
+     918,   905,   822,   815,   912,   908,   825,   821,   920,   258,
+     811,   812,   805,   814,   917,   916,   913,   909,   926,   927,
+     925,   915,   911,   904,   813,   924,   923,   817,   819,   818,
+     910,   914,   906,   820,   907,   816,   922,   975,   976,   977,
+     978,   979,   980,   956,   957,   955,   961,   962,   963,   958,
+     959,   960,   829,   981,   982,   983,   984,   985,   986,   987,
+       0,     0,   999,  1000,  1001,  1004,  1003,  1002,  1005,   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,   164,   171,
+     174,   461,   175,     0,   176,   177,   178,   179,   180,   181,
+     182,   185,     0,   211,   219,   214,   246,   252,     0,   244,
+       0,   245,   221,   215,   184,   216,   183,   217,   220,   354,
+     356,   358,   368,   370,   374,   376,   379,   384,   387,   390,
+     392,   394,   396,     0,   400,   407,   406,   408,     0,   426,
+     409,   431,   432,   433,   440,   452,   466,   468,   453,   454,
+     455,   458,   459,   456,   457,   485,   487,   488,   489,   486,
+     534,   535,   536,   537,   538,   539,   540,   467,   460,   607,
+     608,    43,   222,   223,   225,   224,   226,   218,   463,   464,
+     465,   462,   228,   231,   227,   229,   230,     0,   783,   800,
+     893,   902,   900,   802,     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,   276,   277,     0,     0,

Follow ups