← Back to team overview

zorba-coders team mailing list archive

[Merge] lp:~zorba-coders/zorba/xquery3.0_funcs into lp:zorba

 

Matthias Brantner has proposed merging lp:~zorba-coders/zorba/xquery3.0_funcs into lp:zorba.

Requested reviews:
  Matthias Brantner (matthias-brantner)
Related bugs:
  Bug #950616 in Zorba: "XQuery 3.0 vs Zorba: has-children#0 not implemented"
  https://bugs.launchpad.net/zorba/+bug/950616
  Bug #950617 in Zorba: "XQuery 3.0 vs Zorba: nilled#0 not implemented"
  https://bugs.launchpad.net/zorba/+bug/950617
  Bug #950618 in Zorba: "XQuery 3.0 vs Zorba: path not implemented"
  https://bugs.launchpad.net/zorba/+bug/950618

For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/xquery3.0_funcs/+merge/104331

Added XQuery 3.0 Functions 
path, has-children#0, nilled#0
-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~zorba-coders/zorba/xquery3.0_funcs/+merge/104331
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'ChangeLog'
--- ChangeLog	2012-05-01 15:54:27 +0000
+++ ChangeLog	2012-05-02 06:48:21 +0000
@@ -3,11 +3,15 @@
 version 2.5
 
 New Features:
-  * fn:available-environment-variables
-  * fn:environment-variables
-  * fn:uri-collection
-  * fn:unparsed-text
-  * fn:unparsed-text-available
+  * XQuery 3.0 functions
+    - fn:available-environment-variables
+    - fn:environment-variables
+    - fn:uri-collection
+    - fn:unparsed-text
+    - fn:unparsed-text-available
+    - fn:has-children#0
+    - fn:nilled#0
+    - fn:path
   * Extended API for Python, Java, PHP and Ruby.
   * Add jvm classpath to zorbacmd and to Zorba API. Tracked by #931816
   * Added full-text module.
@@ -15,14 +19,11 @@
   * Added XQJ support.
   * Added CollectionManager and DocumentManager support for XQJ.
 
-Optimization:
-
 Bug Fixes/Other Changes:
   * Fixed bugs #931501 and #866987 (improved error messages for fn:format-number(). Additionally, the function now throws the FODF1310 error instead of XTDE1310, as the 3.0 spec requires)
   * Fixed bug 955170 (Catch clause with URILiteral-based wilcard NameTest)
   * Fixed bug 955135 (err:XQDY0044 not caught by try-catch expressions)
-  * Fixed bug #986075 (encountering flwor expr with no clauses; due to common 
-	  subexression being formed when inlining var in if-then-else expression) 
+  * Fixed bug #986075 (encountering flwor expr with no clauses; due to common subexression being formed when inlining var in if-then-else expression) 
   * Fixed bug #967864 (var substitution did not update theFreeVars property)
   * Fixed bug #891650 (context size var not always declared within path expr)
   * Fixed bug #948879 (--uri-path doesn't work with fetch:content())
@@ -36,17 +37,14 @@
   * Fixed bug #988412 (date:current-dateTime daylight saving)
   * Fixed bug #912586, #912593 and #912722 (assertion failures with lax validation)
   * Fixed bug #921458 (file:read-text-lines() blocking)
-  * Fixed bug #981405 (do not hoist expr containing try-catch variables out of the
-          associated try-catch expression)
-  * Fixed bug #947627 (throw XQST0099 if more than one declarations of context item
-	               type in same module)
+  * Fixed bug #981405 (do not hoist expr containing try-catch variables out of the associated try-catch expression)
+  * Fixed bug #947627 (throw XQST0099 if more than one declarations of context item type in same module)
   * Fixed bug #980526 (no-copy rule bug due to global var being set in "distant" udf)
   * Fixed bug #949910 (has-children may be invoked on all nodes). Internally, zorba::store::Item::getChildren() now returns NULL on node classes without offspring (instead of raising an error).
-  * Fixed Bug #933490: Error ItemFactoryImpl::createBase64Binary with istream
+  * Fixed Bug #933490 (Error ItemFactoryImpl::createBase64Binary with istream)
   * Fixed bug #867112 (Diagnostic Handler was not working on external APIs)
   * Fixed bug #857842 (Assertion failed with simple content element with comments)
 
-
 version 2.2
 
 New Features:

=== modified file 'modules/w3c/xpath_functions.xq'
--- modules/w3c/xpath_functions.xq	2012-04-24 12:39:38 +0000
+++ modules/w3c/xpath_functions.xq	2012-05-02 06:48:21 +0000
@@ -522,6 +522,12 @@
 declare function fn:parse-xml( $arg as xs:string?, $baseURI as xs:string) as document-node(element(*, xs:untyped)) external;
 
 (:~
+ : @see for semantics please check <a href="http://www.w3.org/TR/xpath-functions-30/#func-parse-xml-fragment";>fn:parse-xml-fragment</a>
+ :)
+declare function fn:parse-xml-fragment( $arg as xs:string?) as document-node(element(*, xs:untyped)) external;
+
+
+(:~
  : @see for semantics please check <a href="http://www.w3.org/TR/xpath-functions-30/#func-prefix-from-QName";>fn:prefix-from-QName</a>
  :)
 declare function fn:prefix-from-QName($arg as xs:QName?) as xs:NCName? external;
@@ -864,6 +870,11 @@
 (:~
  : @see for semantics please check <a href="http://www.w3.org/TR/xpath-functions-30/#func-has-children";>fn:has-children</a>
  :)
+declare function fn:has-children() as xs:boolean external;
+
+(:~
+ : @see for semantics please check <a href="http://www.w3.org/TR/xpath-functions-30/#func-has-children";>fn:has-children</a>
+ :)
 declare function fn:has-children($node as node()?) as xs:boolean external;
 
 (:~
@@ -923,12 +934,17 @@
 
 (:~
  : @see for semantics please check <a href="http://www.w3.org/TR/xpath-functions-30/#func-namespace-uri";>fn:namespace-uri</a>
- :)
+ :)       
 declare function fn:namespace-uri($arg as node()?) as xs:anyURI external;
 
 (:~
  : @see for semantics please check <a href="http://www.w3.org/TR/xpath-functions-30/#func-nilled";>fn:nilled</a>
  :)
+declare function fn:nilled() as xs:boolean external;
+
+(:~
+ : @see for semantics please check <a href="http://www.w3.org/TR/xpath-functions-30/#func-nilled";>fn:nilled</a>
+ :)
 declare function fn:nilled($arg as node()?) as xs:boolean? external;
 
 (:~

=== modified file 'src/compiler/translator/translator.cpp'
--- src/compiler/translator/translator.cpp	2012-05-01 21:21:04 +0000
+++ src/compiler/translator/translator.cpp	2012-05-02 06:48:21 +0000
@@ -694,6 +694,10 @@
   xquery_fns_def_dot.set(FunctionConsts::FN_DATA_0);
   xquery_fns_def_dot.set(FunctionConsts::FN_DOCUMENT_URI_0);
   xquery_fns_def_dot.set(FunctionConsts::FN_NODE_NAME_0);
+  xquery_fns_def_dot.set(FunctionConsts::FN_NILLED_0);
+  xquery_fns_def_dot.set(FunctionConsts::FN_HAS_CHILDREN_0);
+  xquery_fns_def_dot.set(FunctionConsts::FN_PATH_0);
+
 
   op_concatenate = GET_BUILTIN_FUNCTION(OP_CONCATENATE_N);
   assert(op_concatenate != NULL);

=== modified file 'src/functions/pregenerated/func_accessors.cpp'
--- src/functions/pregenerated/func_accessors.cpp	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_accessors.cpp	2012-05-02 06:48:21 +0000
@@ -50,6 +50,15 @@
   return new NodeNameIterator(sctx, loc, argv);
 }
 
+PlanIter_t fn_nilled_3_0::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new NilledIterator(sctx, loc, argv);
+}
 PlanIter_t fn_nilled::codegen(
   CompilerCB*,
   static_context* sctx,
@@ -138,6 +147,17 @@
   {
     
 
+    DECL_WITH_KIND(sctx, fn_nilled_3_0,
+        (createQName("http://www.w3.org/2005/xpath-functions","","nilled";), 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_NILLED_0);
+
+  }
+
+
+  {
+    
+
     DECL_WITH_KIND(sctx, fn_nilled,
         (createQName("http://www.w3.org/2005/xpath-functions","","nilled";), 
         GENV_TYPESYSTEM.ANY_NODE_TYPE_QUESTION, 

=== modified file 'src/functions/pregenerated/func_accessors.h'
--- src/functions/pregenerated/func_accessors.h	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_accessors.h	2012-05-02 06:48:21 +0000
@@ -72,6 +72,22 @@
 
 
 //fn:nilled
+class fn_nilled_3_0 : public function
+{
+public:
+  fn_nilled_3_0(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+theXQueryVersion = StaticContextConsts::xquery_version_3_0;
+  }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return true; }
+
+  CODEGEN_DECL();
+};
+
+//fn:nilled
 class fn_nilled : public function
 {
 public:
@@ -82,7 +98,7 @@
 
   }
 
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return true; }
 
   CODEGEN_DECL();
 };

=== modified file 'src/functions/pregenerated/func_collections.cpp'
--- src/functions/pregenerated/func_collections.cpp	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_collections.cpp	2012-05-02 06:48:21 +0000
@@ -1,934 +1,901 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-
-#include "stdafx.h"
-#include "runtime/collections/collections.h"
-#include "functions/func_collections.h"
-
-
-namespace zorba{
-
-
-
-PlanIter_t fn_collection::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnCollectionIterator(sctx, loc, argv);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-PlanIter_t zorba_store_collections_static_dml_collection_name::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new ZorbaCollectionNameIterator(sctx, loc, argv);
-}
-
-
-
-PlanIter_t zorba_store_indexes_static_ddl_is_available_index::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new IsAvailableIndexIterator(sctx, loc, argv);
-}
-
-PlanIter_t zorba_store_indexes_static_ddl_available_indexes::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new AvailableIndexesIterator(sctx, loc, argv);
-}
-
-PlanIter_t zorba_store_integrity_constraints_static_ddl_is_activated_integrity_constraint::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new IsActivatedICIterator(sctx, loc, argv);
-}
-
-PlanIter_t zorba_store_integrity_constraints_static_ddl_activated_integrity_constraints::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new ActivatedICsIterator(sctx, loc, argv);
-}
-
-PlanIter_t zorba_store_collections_static_ddl_is_declared_collection::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new IsDeclaredCollectionIterator(sctx, loc, argv);
-}
-
-PlanIter_t zorba_store_collections_static_ddl_declared_collections::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new DeclaredCollectionsIterator(sctx, loc, argv);
-}
-
-PlanIter_t zorba_store_indexes_static_ddl_is_declared_index::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new IsDeclaredIndexIterator(sctx, loc, argv);
-}
-
-PlanIter_t zorba_store_indexes_static_ddl_declared_indexes::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new DeclaredIndexesIterator(sctx, loc, argv);
-}
-
-PlanIter_t zorba_store_integrity_constraints_static_ddl_is_declared_integrity_constraint::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new IsDeclaredICIterator(sctx, loc, argv);
-}
-
-PlanIter_t zorba_store_integrity_constraints_static_ddl_declared_integrity_constraints::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new DeclaredICsIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_uri_collection_3_0::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnURICollectionIterator(sctx, loc, argv);
-}
-
-void populate_context_collections(static_context* sctx)
-{
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_collection,
-        (createQName("http://www.w3.org/2005/xpath-functions","","collection";), 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::FN_COLLECTION_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_collection,
-        (createQName("http://www.w3.org/2005/xpath-functions","","collection";), 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::FN_COLLECTION_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_collection,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","collection";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_COLLECTION_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_collection,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","collection";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_COLLECTION_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_index_of,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","index-of";), 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INDEX_OF_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_index_of,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","index-of";), 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INDEX_OF_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_create,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","create";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_CREATE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_create,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","create";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_CREATE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_create,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","create";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_CREATE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_create,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","create";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_CREATE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_delete,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","delete";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_DELETE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_delete,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","delete";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_DELETE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_first,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes-first";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_FIRST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_first,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","insert-nodes-first";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INSERT_NODES_FIRST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_last,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes-last";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_LAST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_last,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","insert-nodes-last";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INSERT_NODES_LAST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_before,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes-before";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_BEFORE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_before,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","insert-nodes-before";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INSERT_NODES_BEFORE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_after,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes-after";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_AFTER_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_after,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","insert-nodes-after";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INSERT_NODES_AFTER_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_first,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes-first";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_FIRST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_first,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","apply-insert-nodes-first";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_APPLY_INSERT_NODES_FIRST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_last,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes-last";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_LAST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_last,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","apply-insert-nodes-last";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_APPLY_INSERT_NODES_LAST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_before,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes-before";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_BEFORE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_before,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","apply-insert-nodes-before";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_APPLY_INSERT_NODES_BEFORE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_after,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes-after";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_AFTER_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_after,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","apply-insert-nodes-after";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_APPLY_INSERT_NODES_AFTER_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_nodes,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-nodes";), 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODES_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_nodes,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-nodes";), 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODES_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_first,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-node-first";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODE_FIRST_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_first,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-nodes-first";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODES_FIRST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_first,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-node-first";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODE_FIRST_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_first,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-nodes-first";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODES_FIRST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_last,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-node-last";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODE_LAST_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_last,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-nodes-last";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODES_LAST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_last,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-node-last";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODE_LAST_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_last,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-nodes-last";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODES_LAST_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_truncate,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","truncate";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_TRUNCATE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_truncate,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","truncate";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.EMPTY_TYPE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_TRUNCATE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_collection_name,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","collection-name";), 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_COLLECTION_NAME_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_collection_name,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","collection-name";), 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_COLLECTION_NAME_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_is_available_collection,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","is-available-collection";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_IS_AVAILABLE_COLLECTION_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_is_available_collection,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","is-available-collection";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_IS_AVAILABLE_COLLECTION_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_available_collections,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","available-collections";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_AVAILABLE_COLLECTIONS_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_available_collections,
-        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","available-collections";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_AVAILABLE_COLLECTIONS_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_indexes_static_ddl_is_available_index,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/indexes/ddl","","is-available-index";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_INDEXES_STATIC_DDL_IS_AVAILABLE_INDEX_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_indexes_static_ddl_available_indexes,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/indexes/ddl","","available-indexes";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_INDEXES_STATIC_DDL_AVAILABLE_INDEXES_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_integrity_constraints_static_ddl_is_activated_integrity_constraint,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl","","is-activated-integrity-constraint";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_INTEGRITY_CONSTRAINTS_STATIC_DDL_IS_ACTIVATED_INTEGRITY_CONSTRAINT_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_integrity_constraints_static_ddl_activated_integrity_constraints,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl","","activated-integrity-constraints";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_INTEGRITY_CONSTRAINTS_STATIC_DDL_ACTIVATED_INTEGRITY_CONSTRAINTS_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_is_declared_collection,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","is-declared-collection";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_IS_DECLARED_COLLECTION_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_declared_collections,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","declared-collections";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_DECLARED_COLLECTIONS_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_indexes_static_ddl_is_declared_index,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/indexes/ddl","","is-declared-index";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_INDEXES_STATIC_DDL_IS_DECLARED_INDEX_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_indexes_static_ddl_declared_indexes,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/indexes/ddl","","declared-indexes";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_INDEXES_STATIC_DDL_DECLARED_INDEXES_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_integrity_constraints_static_ddl_is_declared_integrity_constraint,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl","","is-declared-integrity-constraint";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::ZORBA_STORE_INTEGRITY_CONSTRAINTS_STATIC_DDL_IS_DECLARED_INTEGRITY_CONSTRAINT_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, zorba_store_integrity_constraints_static_ddl_declared_integrity_constraints,
-        (createQName("http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl","","declared-integrity-constraints";), 
-        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
-        FunctionConsts::ZORBA_STORE_INTEGRITY_CONSTRAINTS_STATIC_DDL_DECLARED_INTEGRITY_CONSTRAINTS_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_uri_collection_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","uri-collection";), 
-        GENV_TYPESYSTEM.ANY_URI_TYPE_STAR),
-        FunctionConsts::FN_URI_COLLECTION_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_uri_collection_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","uri-collection";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.ANY_URI_TYPE_STAR),
-        FunctionConsts::FN_URI_COLLECTION_1);
-
-  }
-
-}
-
-
-}
-
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+
+#include "stdafx.h"
+#include "runtime/collections/collections.h"
+#include "functions/func_collections.h"
+
+
+namespace zorba{
+
+
+
+PlanIter_t fn_collection::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnCollectionIterator(sctx, loc, argv);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+PlanIter_t zorba_store_collections_static_dml_collection_name::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new ZorbaCollectionNameIterator(sctx, loc, argv);
+}
+
+
+
+PlanIter_t zorba_store_indexes_static_ddl_is_available_index::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new IsAvailableIndexIterator(sctx, loc, argv);
+}
+
+PlanIter_t zorba_store_indexes_static_ddl_available_indexes::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new AvailableIndexesIterator(sctx, loc, argv);
+}
+
+PlanIter_t zorba_store_integrity_constraints_static_ddl_is_activated_integrity_constraint::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new IsActivatedICIterator(sctx, loc, argv);
+}
+
+PlanIter_t zorba_store_integrity_constraints_static_ddl_activated_integrity_constraints::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new ActivatedICsIterator(sctx, loc, argv);
+}
+
+PlanIter_t zorba_store_collections_static_ddl_is_declared_collection::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new IsDeclaredCollectionIterator(sctx, loc, argv);
+}
+
+PlanIter_t zorba_store_collections_static_ddl_declared_collections::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new DeclaredCollectionsIterator(sctx, loc, argv);
+}
+
+PlanIter_t zorba_store_indexes_static_ddl_is_declared_index::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new IsDeclaredIndexIterator(sctx, loc, argv);
+}
+
+PlanIter_t zorba_store_indexes_static_ddl_declared_indexes::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new DeclaredIndexesIterator(sctx, loc, argv);
+}
+
+PlanIter_t zorba_store_integrity_constraints_static_ddl_is_declared_integrity_constraint::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new IsDeclaredICIterator(sctx, loc, argv);
+}
+
+PlanIter_t zorba_store_integrity_constraints_static_ddl_declared_integrity_constraints::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new DeclaredICsIterator(sctx, loc, argv);
+}
+
+void populate_context_collections(static_context* sctx)
+{
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_collection,
+        (createQName("http://www.w3.org/2005/xpath-functions","","collection";), 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::FN_COLLECTION_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_collection,
+        (createQName("http://www.w3.org/2005/xpath-functions","","collection";), 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::FN_COLLECTION_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_collection,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","collection";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_COLLECTION_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_collection,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","collection";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_COLLECTION_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_index_of,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","index-of";), 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INDEX_OF_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_index_of,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","index-of";), 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INDEX_OF_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_create,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","create";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_CREATE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_create,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","create";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_CREATE_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_create,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","create";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_CREATE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_create,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","create";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_CREATE_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_delete,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","delete";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_DELETE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_delete,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","delete";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_DELETE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_first,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes-first";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_FIRST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_first,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","insert-nodes-first";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INSERT_NODES_FIRST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_last,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes-last";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_LAST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_last,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","insert-nodes-last";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INSERT_NODES_LAST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_before,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes-before";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_BEFORE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_before,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","insert-nodes-before";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INSERT_NODES_BEFORE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_after,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","insert-nodes-after";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_INSERT_NODES_AFTER_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_insert_nodes_after,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","insert-nodes-after";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_INSERT_NODES_AFTER_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_first,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes-first";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_FIRST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_first,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","apply-insert-nodes-first";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_APPLY_INSERT_NODES_FIRST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_last,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes-last";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_LAST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_last,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","apply-insert-nodes-last";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_APPLY_INSERT_NODES_LAST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_before,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes-before";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_BEFORE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_before,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","apply-insert-nodes-before";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_APPLY_INSERT_NODES_BEFORE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_after,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","apply-insert-nodes-after";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_APPLY_INSERT_NODES_AFTER_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_apply_insert_nodes_after,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","apply-insert-nodes-after";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_APPLY_INSERT_NODES_AFTER_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_nodes,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-nodes";), 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODES_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_nodes,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-nodes";), 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODES_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_first,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-node-first";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODE_FIRST_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_first,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-nodes-first";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODES_FIRST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_first,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-node-first";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODE_FIRST_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_first,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-nodes-first";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODES_FIRST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_last,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-node-last";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODE_LAST_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_last,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","delete-nodes-last";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_DELETE_NODES_LAST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_last,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-node-last";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODE_LAST_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_delete_node_last,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","delete-nodes-last";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_DELETE_NODES_LAST_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_truncate,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","truncate";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_TRUNCATE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_truncate,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","truncate";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.EMPTY_TYPE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_TRUNCATE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_collection_name,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/dml","","collection-name";), 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DML_COLLECTION_NAME_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_dml_collection_name,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/dml","","collection-name";), 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_COLLECTION_NAME_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_is_available_collection,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","is-available-collection";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_IS_AVAILABLE_COLLECTION_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_is_available_collection,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","is-available-collection";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_IS_AVAILABLE_COLLECTION_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_available_collections,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","available-collections";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_AVAILABLE_COLLECTIONS_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_available_collections,
+        (createQName("http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl","","available-collections";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_AVAILABLE_COLLECTIONS_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_indexes_static_ddl_is_available_index,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/indexes/ddl","","is-available-index";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_INDEXES_STATIC_DDL_IS_AVAILABLE_INDEX_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_indexes_static_ddl_available_indexes,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/indexes/ddl","","available-indexes";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_INDEXES_STATIC_DDL_AVAILABLE_INDEXES_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_integrity_constraints_static_ddl_is_activated_integrity_constraint,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl","","is-activated-integrity-constraint";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_INTEGRITY_CONSTRAINTS_STATIC_DDL_IS_ACTIVATED_INTEGRITY_CONSTRAINT_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_integrity_constraints_static_ddl_activated_integrity_constraints,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl","","activated-integrity-constraints";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_INTEGRITY_CONSTRAINTS_STATIC_DDL_ACTIVATED_INTEGRITY_CONSTRAINTS_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_is_declared_collection,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","is-declared-collection";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_IS_DECLARED_COLLECTION_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_collections_static_ddl_declared_collections,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/collections/ddl","","declared-collections";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_COLLECTIONS_STATIC_DDL_DECLARED_COLLECTIONS_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_indexes_static_ddl_is_declared_index,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/indexes/ddl","","is-declared-index";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_INDEXES_STATIC_DDL_IS_DECLARED_INDEX_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_indexes_static_ddl_declared_indexes,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/indexes/ddl","","declared-indexes";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_INDEXES_STATIC_DDL_DECLARED_INDEXES_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_integrity_constraints_static_ddl_is_declared_integrity_constraint,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl","","is-declared-integrity-constraint";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::ZORBA_STORE_INTEGRITY_CONSTRAINTS_STATIC_DDL_IS_DECLARED_INTEGRITY_CONSTRAINT_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, zorba_store_integrity_constraints_static_ddl_declared_integrity_constraints,
+        (createQName("http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl","","declared-integrity-constraints";), 
+        GENV_TYPESYSTEM.QNAME_TYPE_STAR),
+        FunctionConsts::ZORBA_STORE_INTEGRITY_CONSTRAINTS_STATIC_DDL_DECLARED_INTEGRITY_CONSTRAINTS_0);
+
+  }
+
+}
+
+
+}
+
+
+

=== modified file 'src/functions/pregenerated/func_collections.h'
--- src/functions/pregenerated/func_collections.h	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_collections.h	2012-05-02 06:48:21 +0000
@@ -1,690 +1,675 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-
-#ifndef ZORBA_FUNCTIONS_COLLECTIONS_H
-#define ZORBA_FUNCTIONS_COLLECTIONS_H
-
-
-#include "common/shared_types.h"
-#include "functions/function_impl.h"
-
-
-namespace zorba {
-
-
-void populate_context_collections(static_context* sctx);
-
-
-
-
-//fn:collection
-class fn_collection : public function
-{
-public:
-  fn_collection(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool isSource() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:collection
-class zorba_store_collections_static_dml_collection : public function
-{
-public:
-  zorba_store_collections_static_dml_collection(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool isSource() const { return true; }
-
-  FunctionConsts::AnnotationValue producesDistinctNodes() const 
-  {
-    return FunctionConsts::YES;
-  }
-
-  FunctionConsts::AnnotationValue producesSortedNodes() const 
-  {
-    return FunctionConsts::YES;
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:index-of
-class zorba_store_collections_static_dml_index_of : public function
-{
-public:
-  zorba_store_collections_static_dml_index_of(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-ddl:create
-class zorba_store_collections_static_ddl_create : public function
-{
-public:
-  zorba_store_collections_static_ddl_create(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-ddl:delete
-class zorba_store_collections_static_ddl_delete : public function
-{
-public:
-  zorba_store_collections_static_ddl_delete(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:insert-nodes
-class zorba_store_collections_static_dml_insert_nodes : public function
-{
-public:
-  zorba_store_collections_static_dml_insert_nodes(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:insert-nodes-first
-class zorba_store_collections_static_dml_insert_nodes_first : public function
-{
-public:
-  zorba_store_collections_static_dml_insert_nodes_first(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:insert-nodes-last
-class zorba_store_collections_static_dml_insert_nodes_last : public function
-{
-public:
-  zorba_store_collections_static_dml_insert_nodes_last(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:insert-nodes-before
-class zorba_store_collections_static_dml_insert_nodes_before : public function
-{
-public:
-  zorba_store_collections_static_dml_insert_nodes_before(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 2; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:insert-nodes-after
-class zorba_store_collections_static_dml_insert_nodes_after : public function
-{
-public:
-  zorba_store_collections_static_dml_insert_nodes_after(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 2; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:apply-insert-nodes
-class zorba_store_collections_static_dml_apply_insert_nodes : public function
-{
-public:
-  zorba_store_collections_static_dml_apply_insert_nodes(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return APPLYING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool propagatesInputNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:apply-insert-nodes-first
-class zorba_store_collections_static_dml_apply_insert_nodes_first : public function
-{
-public:
-  zorba_store_collections_static_dml_apply_insert_nodes_first(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return APPLYING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool propagatesInputNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:apply-insert-nodes-last
-class zorba_store_collections_static_dml_apply_insert_nodes_last : public function
-{
-public:
-  zorba_store_collections_static_dml_apply_insert_nodes_last(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return APPLYING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool propagatesInputNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:apply-insert-nodes-before
-class zorba_store_collections_static_dml_apply_insert_nodes_before : public function
-{
-public:
-  zorba_store_collections_static_dml_apply_insert_nodes_before(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return APPLYING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool propagatesInputNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 2; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:apply-insert-nodes-after
-class zorba_store_collections_static_dml_apply_insert_nodes_after : public function
-{
-public:
-  zorba_store_collections_static_dml_apply_insert_nodes_after(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return APPLYING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool propagatesInputNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 2; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:delete-nodes
-class zorba_store_collections_static_dml_delete_nodes : public function
-{
-public:
-  zorba_store_collections_static_dml_delete_nodes(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 0; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:delete-node-first
-class zorba_store_collections_static_dml_delete_node_first : public function
-{
-public:
-  zorba_store_collections_static_dml_delete_node_first(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:delete-node-last
-class zorba_store_collections_static_dml_delete_node_last : public function
-{
-public:
-  zorba_store_collections_static_dml_delete_node_last(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:truncate
-class zorba_store_collections_static_dml_truncate : public function
-{
-public:
-  zorba_store_collections_static_dml_truncate(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  short getScriptingKind() const { return UPDATING_EXPR; }
-
-  bool accessesDynCtx() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-dml:collection-name
-class zorba_store_collections_static_dml_collection_name : public function
-{
-public:
-  zorba_store_collections_static_dml_collection_name(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-ddl:is-available-collection
-class zorba_store_collections_static_ddl_is_available_collection : public function
-{
-public:
-  zorba_store_collections_static_ddl_is_available_collection(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-ddl:available-collections
-class zorba_store_collections_static_ddl_available_collections : public function
-{
-public:
-  zorba_store_collections_static_ddl_available_collections(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-indexes-static-ddl:is-available-index
-class zorba_store_indexes_static_ddl_is_available_index : public function
-{
-public:
-  zorba_store_indexes_static_ddl_is_available_index(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-indexes-static-ddl:available-indexes
-class zorba_store_indexes_static_ddl_available_indexes : public function
-{
-public:
-  zorba_store_indexes_static_ddl_available_indexes(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-integrity_constraints-static-ddl:is-activated-integrity-constraint
-class zorba_store_integrity_constraints_static_ddl_is_activated_integrity_constraint : public function
-{
-public:
-  zorba_store_integrity_constraints_static_ddl_is_activated_integrity_constraint(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-integrity_constraints-static-ddl:activated-integrity-constraints
-class zorba_store_integrity_constraints_static_ddl_activated_integrity_constraints : public function
-{
-public:
-  zorba_store_integrity_constraints_static_ddl_activated_integrity_constraints(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-ddl:is-declared-collection
-class zorba_store_collections_static_ddl_is_declared_collection : public function
-{
-public:
-  zorba_store_collections_static_ddl_is_declared_collection(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-collections-static-ddl:declared-collections
-class zorba_store_collections_static_ddl_declared_collections : public function
-{
-public:
-  zorba_store_collections_static_ddl_declared_collections(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-indexes-static-ddl:is-declared-index
-class zorba_store_indexes_static_ddl_is_declared_index : public function
-{
-public:
-  zorba_store_indexes_static_ddl_is_declared_index(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-indexes-static-ddl:declared-indexes
-class zorba_store_indexes_static_ddl_declared_indexes : public function
-{
-public:
-  zorba_store_indexes_static_ddl_declared_indexes(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-integrity_constraints-static-ddl:is-declared-integrity-constraint
-class zorba_store_integrity_constraints_static_ddl_is_declared_integrity_constraint : public function
-{
-public:
-  zorba_store_integrity_constraints_static_ddl_is_declared_integrity_constraint(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//zorba-store-integrity_constraints-static-ddl:declared-integrity-constraints
-class zorba_store_integrity_constraints_static_ddl_declared_integrity_constraints : public function
-{
-public:
-  zorba_store_integrity_constraints_static_ddl_declared_integrity_constraints(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:uri-collection
-class fn_uri_collection_3_0 : public function
-{
-public:
-  fn_uri_collection_3_0(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-theXQueryVersion = StaticContextConsts::xquery_version_3_0;
-  }
-
-  CODEGEN_DECL();
-};
-
-
-} //namespace zorba
-
-
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+
+#ifndef ZORBA_FUNCTIONS_COLLECTIONS_H
+#define ZORBA_FUNCTIONS_COLLECTIONS_H
+
+
+#include "common/shared_types.h"
+#include "functions/function_impl.h"
+
+
+namespace zorba {
+
+
+void populate_context_collections(static_context* sctx);
+
+
+
+
+//fn:collection
+class fn_collection : public function
+{
+public:
+  fn_collection(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool isSource() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:collection
+class zorba_store_collections_static_dml_collection : public function
+{
+public:
+  zorba_store_collections_static_dml_collection(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool isSource() const { return true; }
+
+  FunctionConsts::AnnotationValue producesDistinctNodes() const 
+  {
+    return FunctionConsts::YES;
+  }
+
+  FunctionConsts::AnnotationValue producesSortedNodes() const 
+  {
+    return FunctionConsts::YES;
+  }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:index-of
+class zorba_store_collections_static_dml_index_of : public function
+{
+public:
+  zorba_store_collections_static_dml_index_of(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-ddl:create
+class zorba_store_collections_static_ddl_create : public function
+{
+public:
+  zorba_store_collections_static_ddl_create(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-ddl:delete
+class zorba_store_collections_static_ddl_delete : public function
+{
+public:
+  zorba_store_collections_static_ddl_delete(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:insert-nodes
+class zorba_store_collections_static_dml_insert_nodes : public function
+{
+public:
+  zorba_store_collections_static_dml_insert_nodes(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:insert-nodes-first
+class zorba_store_collections_static_dml_insert_nodes_first : public function
+{
+public:
+  zorba_store_collections_static_dml_insert_nodes_first(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:insert-nodes-last
+class zorba_store_collections_static_dml_insert_nodes_last : public function
+{
+public:
+  zorba_store_collections_static_dml_insert_nodes_last(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:insert-nodes-before
+class zorba_store_collections_static_dml_insert_nodes_before : public function
+{
+public:
+  zorba_store_collections_static_dml_insert_nodes_before(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 2; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:insert-nodes-after
+class zorba_store_collections_static_dml_insert_nodes_after : public function
+{
+public:
+  zorba_store_collections_static_dml_insert_nodes_after(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 2; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:apply-insert-nodes
+class zorba_store_collections_static_dml_apply_insert_nodes : public function
+{
+public:
+  zorba_store_collections_static_dml_apply_insert_nodes(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return APPLYING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool propagatesInputNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:apply-insert-nodes-first
+class zorba_store_collections_static_dml_apply_insert_nodes_first : public function
+{
+public:
+  zorba_store_collections_static_dml_apply_insert_nodes_first(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return APPLYING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool propagatesInputNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:apply-insert-nodes-last
+class zorba_store_collections_static_dml_apply_insert_nodes_last : public function
+{
+public:
+  zorba_store_collections_static_dml_apply_insert_nodes_last(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return APPLYING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool propagatesInputNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:apply-insert-nodes-before
+class zorba_store_collections_static_dml_apply_insert_nodes_before : public function
+{
+public:
+  zorba_store_collections_static_dml_apply_insert_nodes_before(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return APPLYING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool propagatesInputNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 2; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:apply-insert-nodes-after
+class zorba_store_collections_static_dml_apply_insert_nodes_after : public function
+{
+public:
+  zorba_store_collections_static_dml_apply_insert_nodes_after(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return APPLYING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool propagatesInputNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 2; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:delete-nodes
+class zorba_store_collections_static_dml_delete_nodes : public function
+{
+public:
+  zorba_store_collections_static_dml_delete_nodes(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 0; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:delete-node-first
+class zorba_store_collections_static_dml_delete_node_first : public function
+{
+public:
+  zorba_store_collections_static_dml_delete_node_first(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:delete-node-last
+class zorba_store_collections_static_dml_delete_node_last : public function
+{
+public:
+  zorba_store_collections_static_dml_delete_node_last(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:truncate
+class zorba_store_collections_static_dml_truncate : public function
+{
+public:
+  zorba_store_collections_static_dml_truncate(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  short getScriptingKind() const { return UPDATING_EXPR; }
+
+  bool accessesDynCtx() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-dml:collection-name
+class zorba_store_collections_static_dml_collection_name : public function
+{
+public:
+  zorba_store_collections_static_dml_collection_name(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-ddl:is-available-collection
+class zorba_store_collections_static_ddl_is_available_collection : public function
+{
+public:
+  zorba_store_collections_static_ddl_is_available_collection(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-ddl:available-collections
+class zorba_store_collections_static_ddl_available_collections : public function
+{
+public:
+  zorba_store_collections_static_ddl_available_collections(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-indexes-static-ddl:is-available-index
+class zorba_store_indexes_static_ddl_is_available_index : public function
+{
+public:
+  zorba_store_indexes_static_ddl_is_available_index(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-indexes-static-ddl:available-indexes
+class zorba_store_indexes_static_ddl_available_indexes : public function
+{
+public:
+  zorba_store_indexes_static_ddl_available_indexes(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-integrity_constraints-static-ddl:is-activated-integrity-constraint
+class zorba_store_integrity_constraints_static_ddl_is_activated_integrity_constraint : public function
+{
+public:
+  zorba_store_integrity_constraints_static_ddl_is_activated_integrity_constraint(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-integrity_constraints-static-ddl:activated-integrity-constraints
+class zorba_store_integrity_constraints_static_ddl_activated_integrity_constraints : public function
+{
+public:
+  zorba_store_integrity_constraints_static_ddl_activated_integrity_constraints(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-ddl:is-declared-collection
+class zorba_store_collections_static_ddl_is_declared_collection : public function
+{
+public:
+  zorba_store_collections_static_ddl_is_declared_collection(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-collections-static-ddl:declared-collections
+class zorba_store_collections_static_ddl_declared_collections : public function
+{
+public:
+  zorba_store_collections_static_ddl_declared_collections(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-indexes-static-ddl:is-declared-index
+class zorba_store_indexes_static_ddl_is_declared_index : public function
+{
+public:
+  zorba_store_indexes_static_ddl_is_declared_index(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-indexes-static-ddl:declared-indexes
+class zorba_store_indexes_static_ddl_declared_indexes : public function
+{
+public:
+  zorba_store_indexes_static_ddl_declared_indexes(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-integrity_constraints-static-ddl:is-declared-integrity-constraint
+class zorba_store_integrity_constraints_static_ddl_is_declared_integrity_constraint : public function
+{
+public:
+  zorba_store_integrity_constraints_static_ddl_is_declared_integrity_constraint(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  CODEGEN_DECL();
+};
+
+
+//zorba-store-integrity_constraints-static-ddl:declared-integrity-constraints
+class zorba_store_integrity_constraints_static_ddl_declared_integrity_constraints : public function
+{
+public:
+  zorba_store_integrity_constraints_static_ddl_declared_integrity_constraints(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  CODEGEN_DECL();
+};
+
+
+} //namespace zorba
+
+
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/functions/pregenerated/func_nodes.cpp'
--- src/functions/pregenerated/func_nodes.cpp	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_nodes.cpp	2012-05-02 06:48:21 +0000
@@ -231,6 +231,16 @@
   return new LeastCommonAncestor(sctx, loc, argv);
 }
 
+PlanIter_t fn_path_3_0::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnPathIterator(sctx, loc, argv);
+}
+
 void populate_context_nodes(static_context* sctx)
 {
   {
@@ -356,6 +366,17 @@
 
     DECL_WITH_KIND(sctx, fn_has_children_3_0,
         (createQName("http://www.w3.org/2005/xpath-functions","","has-children";), 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_HAS_CHILDREN_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_has_children_3_0,
+        (createQName("http://www.w3.org/2005/xpath-functions","","has-children";), 
         GENV_TYPESYSTEM.ANY_NODE_TYPE_QUESTION, 
         GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
         FunctionConsts::FN_HAS_CHILDREN_1);
@@ -538,6 +559,29 @@
 
   }
 
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_path_3_0,
+        (createQName("http://www.w3.org/2005/xpath-functions","","path";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION),
+        FunctionConsts::FN_PATH_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_path_3_0,
+        (createQName("http://www.w3.org/2005/xpath-functions","","path";), 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION),
+        FunctionConsts::FN_PATH_1);
+
+  }
+
 }
 
 

=== modified file 'src/functions/pregenerated/func_nodes.h'
--- src/functions/pregenerated/func_nodes.h	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_nodes.h	2012-05-02 06:48:21 +0000
@@ -372,6 +372,21 @@
 };
 
 
+//fn:path
+class fn_path_3_0 : public function
+{
+public:
+  fn_path_3_0(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+theXQueryVersion = StaticContextConsts::xquery_version_3_0;
+  }
+
+  CODEGEN_DECL();
+};
+
+
 } //namespace zorba
 
 

=== modified file 'src/functions/pregenerated/func_parse_fragment.cpp'
--- src/functions/pregenerated/func_parse_fragment.cpp	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_parse_fragment.cpp	2012-05-02 06:48:21 +0000
@@ -38,7 +38,7 @@
   std::vector<PlanIter_t>& argv,
   expr& ann) const
 {
-  return new FnParseXmlFragmentIterator(sctx, loc, argv);
+  return new FnZorbaParseXmlFragmentIterator(sctx, loc, argv);
 }
 
 void populate_context_parse_fragment(static_context* sctx)

=== modified file 'src/functions/pregenerated/func_sequences.cpp'
--- src/functions/pregenerated/func_sequences.cpp	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_sequences.cpp	2012-05-02 06:48:21 +0000
@@ -1,923 +1,775 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-
-#include "stdafx.h"
-#include "runtime/sequences/sequences.h"
-#include "functions/func_sequences.h"
-#include "system/globalenv.h"
-#include "types/typeops.h"
-#include "compiler/expression/expr_base.h"
-
-
-namespace zorba{
-
-
-
-PlanIter_t op_concatenate::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnConcatIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_index_of::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnIndexOfIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_empty::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnEmptyIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_exists::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnExistsIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_distinct_values::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnDistinctValuesIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_insert_before::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnInsertBeforeIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_remove::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnRemoveIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_reverse::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnReverseIterator(sctx, loc, argv);
-}
-
-
-
-
-
-PlanIter_t fn_one_or_more::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnOneOrMoreIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_deep_equal::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnDeepEqualIterator(sctx, loc, argv);
-}
-
-
-PlanIter_t fn_avg::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnAvgIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_sum::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnSumIterator(sctx, loc, argv);
-}
-
-PlanIter_t op_sum_double::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnSumDoubleIterator(sctx, loc, argv);
-}
-
-PlanIter_t op_sum_float::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnSumFloatIterator(sctx, loc, argv);
-}
-
-PlanIter_t op_sum_decimal::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnSumDecimalIterator(sctx, loc, argv);
-}
-
-PlanIter_t op_sum_integer::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnSumIntegerIterator(sctx, loc, argv);
-}
-
-PlanIter_t op_to::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new OpToIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_id::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnIdIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_element_with_id::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnElementWithIdIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_idref::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnIdRefIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_doc::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnDocIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_doc_available::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnDocAvailableIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_available_environment_variables_3_0::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnAvailableEnvironmentVariablesIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_environment_variable_3_0::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnEnvironmentVariableIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_unparsed_text_3_0::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnUnparsedTextIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_unparsed_text_available_3_0::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnUnparsedTextAvailableIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_unparsed_text_lines_3_0::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnUnparsedTextLinesIterator(sctx, loc, argv);
-}
-
-void populate_context_sequences(static_context* sctx)
-{
-  {
-    std::vector<xqtref_t> lParamTypes;
-    lParamTypes.push_back(GENV_TYPESYSTEM.ITEM_TYPE_STAR);
-
-    DECL_WITH_KIND(sctx, op_concatenate,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","concatenate";), 
-        lParamTypes, GENV_TYPESYSTEM.ITEM_TYPE_STAR, true),
-        FunctionConsts::OP_CONCATENATE_N);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_index_of,
-        (createQName("http://www.w3.org/2005/xpath-functions","","index-of";), 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_STAR),
-        FunctionConsts::FN_INDEX_OF_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_index_of,
-        (createQName("http://www.w3.org/2005/xpath-functions","","index-of";), 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_STAR),
-        FunctionConsts::FN_INDEX_OF_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_empty,
-        (createQName("http://www.w3.org/2005/xpath-functions","","empty";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_EMPTY_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_exists,
-        (createQName("http://www.w3.org/2005/xpath-functions","","exists";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_EXISTS_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_distinct_values,
-        (createQName("http://www.w3.org/2005/xpath-functions","","distinct-values";), 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR),
-        FunctionConsts::FN_DISTINCT_VALUES_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_distinct_values,
-        (createQName("http://www.w3.org/2005/xpath-functions","","distinct-values";), 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR),
-        FunctionConsts::FN_DISTINCT_VALUES_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_insert_before,
-        (createQName("http://www.w3.org/2005/xpath-functions","","insert-before";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
-        FunctionConsts::FN_INSERT_BEFORE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_remove,
-        (createQName("http://www.w3.org/2005/xpath-functions","","remove";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
-        FunctionConsts::FN_REMOVE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_reverse,
-        (createQName("http://www.w3.org/2005/xpath-functions","","reverse";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
-        FunctionConsts::FN_REVERSE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_subsequence,
-        (createQName("http://www.w3.org/2005/xpath-functions","","subsequence";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
-        FunctionConsts::FN_SUBSEQUENCE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_subsequence,
-        (createQName("http://www.w3.org/2005/xpath-functions","","subsequence";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
-        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
-        FunctionConsts::FN_SUBSEQUENCE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_zorba_subsequence_int,
-        (createQName("http://www.zorba-xquery.com/internal/zorba-ops","","subsequence-int";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
-        FunctionConsts::OP_ZORBA_SUBSEQUENCE_INT_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_zorba_subsequence_int,
-        (createQName("http://www.zorba-xquery.com/internal/zorba-ops","","subsequence-int";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
-        FunctionConsts::OP_ZORBA_SUBSEQUENCE_INT_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_zorba_sequence_point_access,
-        (createQName("http://www.zorba-xquery.com/internal/zorba-ops","","sequence-point-access";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.ITEM_TYPE_QUESTION),
-        FunctionConsts::OP_ZORBA_SEQUENCE_POINT_ACCESS_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_zero_or_one,
-        (createQName("http://www.w3.org/2005/xpath-functions","","zero-or-one";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.ITEM_TYPE_QUESTION),
-        FunctionConsts::FN_ZERO_OR_ONE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_one_or_more,
-        (createQName("http://www.w3.org/2005/xpath-functions","","one-or-more";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.ITEM_TYPE_PLUS),
-        FunctionConsts::FN_ONE_OR_MORE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_deep_equal,
-        (createQName("http://www.w3.org/2005/xpath-functions","","deep-equal";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_DEEP_EQUAL_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_deep_equal,
-        (createQName("http://www.w3.org/2005/xpath-functions","","deep-equal";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_DEEP_EQUAL_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_count,
-        (createQName("http://www.w3.org/2005/xpath-functions","","count";), 
-        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
-        FunctionConsts::FN_COUNT_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_avg,
-        (createQName("http://www.w3.org/2005/xpath-functions","","avg";), 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
-        FunctionConsts::FN_AVG_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_sum,
-        (createQName("http://www.w3.org/2005/xpath-functions","","sum";), 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_ONE),
-        FunctionConsts::FN_SUM_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_sum,
-        (createQName("http://www.w3.org/2005/xpath-functions","","sum";), 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
-        FunctionConsts::FN_SUM_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_sum_double,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_double";), 
-        GENV_TYPESYSTEM.DOUBLE_TYPE_STAR, 
-        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE),
-        FunctionConsts::OP_SUM_DOUBLE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_sum_double,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_double";), 
-        GENV_TYPESYSTEM.DOUBLE_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
-        FunctionConsts::OP_SUM_DOUBLE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_sum_float,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_float";), 
-        GENV_TYPESYSTEM.FLOAT_TYPE_STAR, 
-        GENV_TYPESYSTEM.FLOAT_TYPE_ONE),
-        FunctionConsts::OP_SUM_FLOAT_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_sum_float,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_float";), 
-        GENV_TYPESYSTEM.FLOAT_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
-        FunctionConsts::OP_SUM_FLOAT_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_sum_decimal,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_decimal";), 
-        GENV_TYPESYSTEM.DECIMAL_TYPE_STAR, 
-        GENV_TYPESYSTEM.DECIMAL_TYPE_ONE),
-        FunctionConsts::OP_SUM_DECIMAL_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_sum_decimal,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_decimal";), 
-        GENV_TYPESYSTEM.DECIMAL_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
-        FunctionConsts::OP_SUM_DECIMAL_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_sum_integer,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_integer";), 
-        GENV_TYPESYSTEM.INTEGER_TYPE_STAR, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
-        FunctionConsts::OP_SUM_INTEGER_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_sum_integer,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_integer";), 
-        GENV_TYPESYSTEM.INTEGER_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
-        FunctionConsts::OP_SUM_INTEGER_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_to,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","to";), 
-        GENV_TYPESYSTEM.INTEGER_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_STAR),
-        FunctionConsts::OP_TO_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_id,
-        (createQName("http://www.w3.org/2005/xpath-functions","","id";), 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
-        GENV_TYPESYSTEM.ELEMENT_TYPE_STAR),
-        FunctionConsts::FN_ID_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_id,
-        (createQName("http://www.w3.org/2005/xpath-functions","","id";), 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ELEMENT_TYPE_STAR),
-        FunctionConsts::FN_ID_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_element_with_id,
-        (createQName("http://www.w3.org/2005/xpath-functions","","element-with-id";), 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
-        GENV_TYPESYSTEM.ELEMENT_TYPE_STAR),
-        FunctionConsts::FN_ELEMENT_WITH_ID_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_element_with_id,
-        (createQName("http://www.w3.org/2005/xpath-functions","","element-with-id";), 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ELEMENT_TYPE_STAR),
-        FunctionConsts::FN_ELEMENT_WITH_ID_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_idref,
-        (createQName("http://www.w3.org/2005/xpath-functions","","idref";), 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::FN_IDREF_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_idref,
-        (createQName("http://www.w3.org/2005/xpath-functions","","idref";), 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
-        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
-        FunctionConsts::FN_IDREF_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_doc,
-        (createQName("http://www.w3.org/2005/xpath-functions","","doc";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.DOCUMENT_UNTYPED_TYPE_QUESTION),
-        FunctionConsts::FN_DOC_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_doc_available,
-        (createQName("http://www.w3.org/2005/xpath-functions","","doc-available";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_DOC_AVAILABLE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_available_environment_variables_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","available-environment-variables";), 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR),
-        FunctionConsts::FN_AVAILABLE_ENVIRONMENT_VARIABLES_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_environment_variable_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","environment-variable";), 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION),
-        FunctionConsts::FN_ENVIRONMENT_VARIABLE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_unparsed_text_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","unparsed-text";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION),
-        FunctionConsts::FN_UNPARSED_TEXT_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_unparsed_text_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","unparsed-text";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION),
-        FunctionConsts::FN_UNPARSED_TEXT_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_unparsed_text_available_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","unparsed-text-available";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION),
-        FunctionConsts::FN_UNPARSED_TEXT_AVAILABLE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_unparsed_text_available_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","unparsed-text-available";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION),
-        FunctionConsts::FN_UNPARSED_TEXT_AVAILABLE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_unparsed_text_lines_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","unparsed-text-lines";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR),
-        FunctionConsts::FN_UNPARSED_TEXT_LINES_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_unparsed_text_lines_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","unparsed-text-lines";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR),
-        FunctionConsts::FN_UNPARSED_TEXT_LINES_2);
-
-  }
-
-}
-
-
-}
-
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+
+#include "stdafx.h"
+#include "runtime/sequences/sequences.h"
+#include "functions/func_sequences.h"
+#include "system/globalenv.h"
+#include "types/typeops.h"
+#include "compiler/expression/expr_base.h"
+
+
+namespace zorba{
+
+
+
+PlanIter_t op_concatenate::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnConcatIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_index_of::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnIndexOfIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_empty::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnEmptyIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_exists::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnExistsIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_distinct_values::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnDistinctValuesIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_insert_before::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnInsertBeforeIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_remove::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnRemoveIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_reverse::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnReverseIterator(sctx, loc, argv);
+}
+
+
+
+
+
+PlanIter_t fn_one_or_more::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnOneOrMoreIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_deep_equal::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnDeepEqualIterator(sctx, loc, argv);
+}
+
+
+PlanIter_t fn_avg::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnAvgIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_sum::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnSumIterator(sctx, loc, argv);
+}
+
+PlanIter_t op_sum_double::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnSumDoubleIterator(sctx, loc, argv);
+}
+
+PlanIter_t op_sum_float::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnSumFloatIterator(sctx, loc, argv);
+}
+
+PlanIter_t op_sum_decimal::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnSumDecimalIterator(sctx, loc, argv);
+}
+
+PlanIter_t op_sum_integer::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnSumIntegerIterator(sctx, loc, argv);
+}
+
+PlanIter_t op_to::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new OpToIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_id::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnIdIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_element_with_id::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnElementWithIdIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_idref::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnIdRefIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_doc::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnDocIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_doc_available::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnDocAvailableIterator(sctx, loc, argv);
+}
+
+void populate_context_sequences(static_context* sctx)
+{
+  {
+    std::vector<xqtref_t> lParamTypes;
+    lParamTypes.push_back(GENV_TYPESYSTEM.ITEM_TYPE_STAR);
+
+    DECL_WITH_KIND(sctx, op_concatenate,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","concatenate";), 
+        lParamTypes, GENV_TYPESYSTEM.ITEM_TYPE_STAR, true),
+        FunctionConsts::OP_CONCATENATE_N);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_index_of,
+        (createQName("http://www.w3.org/2005/xpath-functions","","index-of";), 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_STAR),
+        FunctionConsts::FN_INDEX_OF_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_index_of,
+        (createQName("http://www.w3.org/2005/xpath-functions","","index-of";), 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_STAR),
+        FunctionConsts::FN_INDEX_OF_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_empty,
+        (createQName("http://www.w3.org/2005/xpath-functions","","empty";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_EMPTY_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_exists,
+        (createQName("http://www.w3.org/2005/xpath-functions","","exists";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_EXISTS_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_distinct_values,
+        (createQName("http://www.w3.org/2005/xpath-functions","","distinct-values";), 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR),
+        FunctionConsts::FN_DISTINCT_VALUES_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_distinct_values,
+        (createQName("http://www.w3.org/2005/xpath-functions","","distinct-values";), 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR),
+        FunctionConsts::FN_DISTINCT_VALUES_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_insert_before,
+        (createQName("http://www.w3.org/2005/xpath-functions","","insert-before";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
+        FunctionConsts::FN_INSERT_BEFORE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_remove,
+        (createQName("http://www.w3.org/2005/xpath-functions","","remove";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
+        FunctionConsts::FN_REMOVE_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_reverse,
+        (createQName("http://www.w3.org/2005/xpath-functions","","reverse";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
+        FunctionConsts::FN_REVERSE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_subsequence,
+        (createQName("http://www.w3.org/2005/xpath-functions","","subsequence";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
+        FunctionConsts::FN_SUBSEQUENCE_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_subsequence,
+        (createQName("http://www.w3.org/2005/xpath-functions","","subsequence";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
+        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
+        FunctionConsts::FN_SUBSEQUENCE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_zorba_subsequence_int,
+        (createQName("http://www.zorba-xquery.com/internal/zorba-ops","","subsequence-int";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
+        FunctionConsts::OP_ZORBA_SUBSEQUENCE_INT_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_zorba_subsequence_int,
+        (createQName("http://www.zorba-xquery.com/internal/zorba-ops","","subsequence-int";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR),
+        FunctionConsts::OP_ZORBA_SUBSEQUENCE_INT_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_zorba_sequence_point_access,
+        (createQName("http://www.zorba-xquery.com/internal/zorba-ops","","sequence-point-access";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.ITEM_TYPE_QUESTION),
+        FunctionConsts::OP_ZORBA_SEQUENCE_POINT_ACCESS_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_zero_or_one,
+        (createQName("http://www.w3.org/2005/xpath-functions","","zero-or-one";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.ITEM_TYPE_QUESTION),
+        FunctionConsts::FN_ZERO_OR_ONE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_one_or_more,
+        (createQName("http://www.w3.org/2005/xpath-functions","","one-or-more";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.ITEM_TYPE_PLUS),
+        FunctionConsts::FN_ONE_OR_MORE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_deep_equal,
+        (createQName("http://www.w3.org/2005/xpath-functions","","deep-equal";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_DEEP_EQUAL_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_deep_equal,
+        (createQName("http://www.w3.org/2005/xpath-functions","","deep-equal";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_DEEP_EQUAL_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_count,
+        (createQName("http://www.w3.org/2005/xpath-functions","","count";), 
+        GENV_TYPESYSTEM.ITEM_TYPE_STAR, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
+        FunctionConsts::FN_COUNT_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_avg,
+        (createQName("http://www.w3.org/2005/xpath-functions","","avg";), 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
+        FunctionConsts::FN_AVG_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_sum,
+        (createQName("http://www.w3.org/2005/xpath-functions","","sum";), 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_ONE),
+        FunctionConsts::FN_SUM_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_sum,
+        (createQName("http://www.w3.org/2005/xpath-functions","","sum";), 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
+        FunctionConsts::FN_SUM_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_sum_double,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_double";), 
+        GENV_TYPESYSTEM.DOUBLE_TYPE_STAR, 
+        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE),
+        FunctionConsts::OP_SUM_DOUBLE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_sum_double,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_double";), 
+        GENV_TYPESYSTEM.DOUBLE_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
+        FunctionConsts::OP_SUM_DOUBLE_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_sum_float,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_float";), 
+        GENV_TYPESYSTEM.FLOAT_TYPE_STAR, 
+        GENV_TYPESYSTEM.FLOAT_TYPE_ONE),
+        FunctionConsts::OP_SUM_FLOAT_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_sum_float,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_float";), 
+        GENV_TYPESYSTEM.FLOAT_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
+        FunctionConsts::OP_SUM_FLOAT_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_sum_decimal,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_decimal";), 
+        GENV_TYPESYSTEM.DECIMAL_TYPE_STAR, 
+        GENV_TYPESYSTEM.DECIMAL_TYPE_ONE),
+        FunctionConsts::OP_SUM_DECIMAL_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_sum_decimal,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_decimal";), 
+        GENV_TYPESYSTEM.DECIMAL_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
+        FunctionConsts::OP_SUM_DECIMAL_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_sum_integer,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_integer";), 
+        GENV_TYPESYSTEM.INTEGER_TYPE_STAR, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
+        FunctionConsts::OP_SUM_INTEGER_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_sum_integer,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","sum_integer";), 
+        GENV_TYPESYSTEM.INTEGER_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION),
+        FunctionConsts::OP_SUM_INTEGER_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_to,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","to";), 
+        GENV_TYPESYSTEM.INTEGER_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_STAR),
+        FunctionConsts::OP_TO_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_id,
+        (createQName("http://www.w3.org/2005/xpath-functions","","id";), 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
+        GENV_TYPESYSTEM.ELEMENT_TYPE_STAR),
+        FunctionConsts::FN_ID_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_id,
+        (createQName("http://www.w3.org/2005/xpath-functions","","id";), 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ELEMENT_TYPE_STAR),
+        FunctionConsts::FN_ID_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_element_with_id,
+        (createQName("http://www.w3.org/2005/xpath-functions","","element-with-id";), 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
+        GENV_TYPESYSTEM.ELEMENT_TYPE_STAR),
+        FunctionConsts::FN_ELEMENT_WITH_ID_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_element_with_id,
+        (createQName("http://www.w3.org/2005/xpath-functions","","element-with-id";), 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ELEMENT_TYPE_STAR),
+        FunctionConsts::FN_ELEMENT_WITH_ID_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_idref,
+        (createQName("http://www.w3.org/2005/xpath-functions","","idref";), 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::FN_IDREF_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_idref,
+        (createQName("http://www.w3.org/2005/xpath-functions","","idref";), 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_ONE, 
+        GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
+        FunctionConsts::FN_IDREF_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_doc,
+        (createQName("http://www.w3.org/2005/xpath-functions","","doc";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.DOCUMENT_UNTYPED_TYPE_QUESTION),
+        FunctionConsts::FN_DOC_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_doc_available,
+        (createQName("http://www.w3.org/2005/xpath-functions","","doc-available";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_DOC_AVAILABLE_1);
+
+  }
+
+}
+
+
+}
+
+
+

=== modified file 'src/functions/pregenerated/func_sequences.h'
--- src/functions/pregenerated/func_sequences.h	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_sequences.h	2012-05-02 06:48:21 +0000
@@ -1,708 +1,633 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-
-#ifndef ZORBA_FUNCTIONS_SEQUENCES_H
-#define ZORBA_FUNCTIONS_SEQUENCES_H
-
-
-#include "common/shared_types.h"
-#include "functions/function_impl.h"
-
-
-namespace zorba {
-
-
-void populate_context_sequences(static_context* sctx);
-
-
-
-
-//op:concatenate
-class op_concatenate : public function
-{
-public:
-  op_concatenate(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:index-of
-class fn_index_of : public function
-{
-public:
-  fn_index_of(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:empty
-class fn_empty : public function
-{
-public:
-  fn_empty(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:exists
-class fn_exists : public function
-{
-public:
-  fn_exists(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:distinct-values
-class fn_distinct_values : public function
-{
-public:
-  fn_distinct_values(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  CODEGEN_DECL();
-};
-
-
-//fn:insert-before
-class fn_insert_before : public function
-{
-public:
-  fn_insert_before(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:remove
-class fn_remove : public function
-{
-public:
-  fn_remove(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
-
-  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:reverse
-class fn_reverse : public function
-{
-public:
-  fn_reverse(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:subsequence
-class fn_subsequence : public function
-{
-public:
-  fn_subsequence(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
-
-  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  bool serializable() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//op-zorba:subsequence-int
-class op_zorba_subsequence_int : public function
-{
-public:
-  op_zorba_subsequence_int(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
-
-  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//op-zorba:sequence-point-access
-class op_zorba_sequence_point_access : public function
-{
-public:
-  op_zorba_sequence_point_access(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
-
-  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:zero-or-one
-class fn_zero_or_one : public function
-{
-public:
-  fn_zero_or_one(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:one-or-more
-class fn_one_or_more : public function
-{
-public:
-  fn_one_or_more(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  xqtref_t getReturnType(const fo_expr* caller) const;
-
-  bool isMap(ulong producer) const { return producer == 0; }
-
-  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
-
-  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:deep-equal
-class fn_deep_equal : public function
-{
-public:
-  fn_deep_equal(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:count
-class fn_count : public function
-{
-public:
-  fn_count(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:avg
-class fn_avg : public function
-{
-public:
-  fn_avg(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  CODEGEN_DECL();
-};
-
-
-//fn:sum
-class fn_sum : public function
-{
-public:
-  fn_sum(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool specializable() const { return true; }
-
-  function* specialize( static_context* sctx,
-                        const std::vector<xqtref_t>& argTypes) const;
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  CODEGEN_DECL();
-};
-
-
-//op:sum_double
-class op_sum_double : public function
-{
-public:
-  op_sum_double(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  CODEGEN_DECL();
-};
-
-
-//op:sum_float
-class op_sum_float : public function
-{
-public:
-  op_sum_float(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  CODEGEN_DECL();
-};
-
-
-//op:sum_decimal
-class op_sum_decimal : public function
-{
-public:
-  op_sum_decimal(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  CODEGEN_DECL();
-};
-
-
-//op:sum_integer
-class op_sum_integer : public function
-{
-public:
-  op_sum_integer(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  CODEGEN_DECL();
-};
-
-
-//op:to
-class op_to : public function
-{
-public:
-  op_to(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:id
-class fn_id : public function
-{
-public:
-  fn_id(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  FunctionConsts::AnnotationValue producesDistinctNodes() const 
-  {
-    return FunctionConsts::YES;
-  }
-
-  FunctionConsts::AnnotationValue producesSortedNodes() const 
-  {
-    return FunctionConsts::YES;
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:element-with-id
-class fn_element_with_id : public function
-{
-public:
-  fn_element_with_id(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  FunctionConsts::AnnotationValue producesDistinctNodes() const 
-  {
-    return FunctionConsts::YES;
-  }
-
-  FunctionConsts::AnnotationValue producesSortedNodes() const 
-  {
-    return FunctionConsts::YES;
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:idref
-class fn_idref : public function
-{
-public:
-  fn_idref(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  FunctionConsts::AnnotationValue producesDistinctNodes() const 
-  {
-    return FunctionConsts::YES;
-  }
-
-  FunctionConsts::AnnotationValue producesSortedNodes() const 
-  {
-    return FunctionConsts::YES;
-  }
-
-  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
-
-  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
-
-  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:doc
-class fn_doc : public function
-{
-public:
-  fn_doc(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  bool accessesDynCtx() const { return true; }
-
-  bool isSource() const { return true; }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:doc-available
-class fn_doc_available : public function
-{
-public:
-  fn_doc_available(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:available-environment-variables
-class fn_available_environment_variables_3_0 : public function
-{
-public:
-  fn_available_environment_variables_3_0(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-theXQueryVersion = StaticContextConsts::xquery_version_3_0;
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:environment-variable
-class fn_environment_variable_3_0 : public function
-{
-public:
-  fn_environment_variable_3_0(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-theXQueryVersion = StaticContextConsts::xquery_version_3_0;
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:unparsed-text
-class fn_unparsed_text_3_0 : public function
-{
-public:
-  fn_unparsed_text_3_0(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-theXQueryVersion = StaticContextConsts::xquery_version_3_0;
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:unparsed-text-available
-class fn_unparsed_text_available_3_0 : public function
-{
-public:
-  fn_unparsed_text_available_3_0(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-theXQueryVersion = StaticContextConsts::xquery_version_3_0;
-  }
-
-  CODEGEN_DECL();
-};
-
-
-//fn:unparsed-text-lines
-class fn_unparsed_text_lines_3_0 : public function
-{
-public:
-  fn_unparsed_text_lines_3_0(const signature& sig, FunctionConsts::FunctionKind kind)
-    : 
-    function(sig, kind)
-  {
-theXQueryVersion = StaticContextConsts::xquery_version_3_0;
-  }
-
-  CODEGEN_DECL();
-};
-
-
-} //namespace zorba
-
-
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+
+#ifndef ZORBA_FUNCTIONS_SEQUENCES_H
+#define ZORBA_FUNCTIONS_SEQUENCES_H
+
+
+#include "common/shared_types.h"
+#include "functions/function_impl.h"
+
+
+namespace zorba {
+
+
+void populate_context_sequences(static_context* sctx);
+
+
+
+
+//op:concatenate
+class op_concatenate : public function
+{
+public:
+  op_concatenate(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:index-of
+class fn_index_of : public function
+{
+public:
+  fn_index_of(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:empty
+class fn_empty : public function
+{
+public:
+  fn_empty(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:exists
+class fn_exists : public function
+{
+public:
+  fn_exists(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:distinct-values
+class fn_distinct_values : public function
+{
+public:
+  fn_distinct_values(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  CODEGEN_DECL();
+};
+
+
+//fn:insert-before
+class fn_insert_before : public function
+{
+public:
+  fn_insert_before(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:remove
+class fn_remove : public function
+{
+public:
+  fn_remove(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
+
+  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:reverse
+class fn_reverse : public function
+{
+public:
+  fn_reverse(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:subsequence
+class fn_subsequence : public function
+{
+public:
+  fn_subsequence(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
+
+  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  bool serializable() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//op-zorba:subsequence-int
+class op_zorba_subsequence_int : public function
+{
+public:
+  op_zorba_subsequence_int(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
+
+  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//op-zorba:sequence-point-access
+class op_zorba_sequence_point_access : public function
+{
+public:
+  op_zorba_sequence_point_access(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
+
+  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:zero-or-one
+class fn_zero_or_one : public function
+{
+public:
+  fn_zero_or_one(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:one-or-more
+class fn_one_or_more : public function
+{
+public:
+  fn_one_or_more(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  xqtref_t getReturnType(const fo_expr* caller) const;
+
+  bool isMap(ulong producer) const { return producer == 0; }
+
+  bool propagatesDistinctNodes(csize producer) const { return producer == 0; }
+
+  bool propagatesSortedNodes(csize producer) const { return producer == 0; }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:deep-equal
+class fn_deep_equal : public function
+{
+public:
+  fn_deep_equal(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:count
+class fn_count : public function
+{
+public:
+  fn_count(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return false; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:avg
+class fn_avg : public function
+{
+public:
+  fn_avg(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  CODEGEN_DECL();
+};
+
+
+//fn:sum
+class fn_sum : public function
+{
+public:
+  fn_sum(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool specializable() const { return true; }
+
+  function* specialize( static_context* sctx,
+                        const std::vector<xqtref_t>& argTypes) const;
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  CODEGEN_DECL();
+};
+
+
+//op:sum_double
+class op_sum_double : public function
+{
+public:
+  op_sum_double(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  CODEGEN_DECL();
+};
+
+
+//op:sum_float
+class op_sum_float : public function
+{
+public:
+  op_sum_float(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  CODEGEN_DECL();
+};
+
+
+//op:sum_decimal
+class op_sum_decimal : public function
+{
+public:
+  op_sum_decimal(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  CODEGEN_DECL();
+};
+
+
+//op:sum_integer
+class op_sum_integer : public function
+{
+public:
+  op_sum_integer(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  CODEGEN_DECL();
+};
+
+
+//op:to
+class op_to : public function
+{
+public:
+  op_to(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:id
+class fn_id : public function
+{
+public:
+  fn_id(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  FunctionConsts::AnnotationValue producesDistinctNodes() const 
+  {
+    return FunctionConsts::YES;
+  }
+
+  FunctionConsts::AnnotationValue producesSortedNodes() const 
+  {
+    return FunctionConsts::YES;
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:element-with-id
+class fn_element_with_id : public function
+{
+public:
+  fn_element_with_id(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  FunctionConsts::AnnotationValue producesDistinctNodes() const 
+  {
+    return FunctionConsts::YES;
+  }
+
+  FunctionConsts::AnnotationValue producesSortedNodes() const 
+  {
+    return FunctionConsts::YES;
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:idref
+class fn_idref : public function
+{
+public:
+  fn_idref(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  FunctionConsts::AnnotationValue producesDistinctNodes() const 
+  {
+    return FunctionConsts::YES;
+  }
+
+  FunctionConsts::AnnotationValue producesSortedNodes() const 
+  {
+    return FunctionConsts::YES;
+  }
+
+  BoolAnnotationValue ignoresSortedNodes(expr* fo, csize producer) const;
+
+  BoolAnnotationValue ignoresDuplicateNodes(expr* fo, csize producer) const;
+
+  bool mustCopyInputNodes(expr* fo, csize producer) const { return producer == 1; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:doc
+class fn_doc : public function
+{
+public:
+  fn_doc(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  bool accessesDynCtx() const { return true; }
+
+  bool isSource() const { return true; }
+
+  CODEGEN_DECL();
+};
+
+
+//fn:doc-available
+class fn_doc_available : public function
+{
+public:
+  fn_doc_available(const signature& sig, FunctionConsts::FunctionKind kind)
+    : 
+    function(sig, kind)
+  {
+
+  }
+
+  CODEGEN_DECL();
+};
+
+
+} //namespace zorba
+
+
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/functions/pregenerated/func_strings.cpp'
--- src/functions/pregenerated/func_strings.cpp	2012-04-24 12:39:38 +0000
+++ src/functions/pregenerated/func_strings.cpp	2012-05-02 06:48:21 +0000
@@ -1,895 +1,922 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-
-#include "stdafx.h"
-#include "runtime/strings/strings.h"
-#include "functions/func_strings.h"
-
-
-namespace zorba{
-
-
-
-PlanIter_t fn_codepoints_to_string::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new CodepointsToStringIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_string_to_codepoints::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new StringToCodepointsIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_compare::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new CompareStrIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_codepoint_equal::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new CodepointEqualIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_concat::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new ConcatStrIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_string_join_3_0::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new StringJoinIterator(sctx, loc, argv);
-}
-PlanIter_t fn_string_join::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new StringJoinIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_substring::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new SubstringIterator(sctx, loc, argv);
-}
-
-PlanIter_t op_substring_int::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new SubstringIntOptIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_string_length::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new StringLengthIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_normalize_space::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new NormalizeSpaceIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_normalize_unicode::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new NormalizeUnicodeIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_upper_case::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new UpperCaseIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_lower_case::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new LowerCaseIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_translate::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new TranslateIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_encode_for_uri::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new EncodeForUriIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_iri_to_uri::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new IriToUriIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_escape_html_uri::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new EscapeHtmlUriIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_contains::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new ContainsIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_starts_with::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new StartsWithIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_ends_with::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new EndsWithIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_substring_before::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new SubstringBeforeIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_substring_after::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new SubstringAfterIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_matches::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnMatchesIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_replace::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnReplaceIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_tokenize::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnTokenizeIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_analyze_string_3_0::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new FnAnalyzeStringIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_zorba_string_materialize::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new StringMaterializeIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_zorba_string_is_streamable::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new StringIsStreamableIterator(sctx, loc, argv);
-}
-
-PlanIter_t fn_zorba_string_split::codegen(
-  CompilerCB*,
-  static_context* sctx,
-  const QueryLoc& loc,
-  std::vector<PlanIter_t>& argv,
-  expr& ann) const
-{
-  return new StringSplitIterator(sctx, loc, argv);
-}
-
-void populate_context_strings(static_context* sctx)
-{
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_codepoints_to_string,
-        (createQName("http://www.w3.org/2005/xpath-functions","","codepoints-to-string";), 
-        GENV_TYPESYSTEM.INTEGER_TYPE_STAR, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_CODEPOINTS_TO_STRING_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_string_to_codepoints,
-        (createQName("http://www.w3.org/2005/xpath-functions","","string-to-codepoints";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_STAR),
-        FunctionConsts::FN_STRING_TO_CODEPOINTS_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_compare,
-        (createQName("http://www.w3.org/2005/xpath-functions","","compare";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_QUESTION),
-        FunctionConsts::FN_COMPARE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_compare,
-        (createQName("http://www.w3.org/2005/xpath-functions","","compare";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_QUESTION),
-        FunctionConsts::FN_COMPARE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_codepoint_equal,
-        (createQName("http://www.w3.org/2005/xpath-functions","","codepoint-equal";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_QUESTION),
-        FunctionConsts::FN_CODEPOINT_EQUAL_2);
-
-  }
-
-
-  {
-    std::vector<xqtref_t> lParamTypes;
-    lParamTypes.push_back(GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION);
-
-    DECL_WITH_KIND(sctx, fn_concat,
-        (createQName("http://www.w3.org/2005/xpath-functions","","concat";), 
-        lParamTypes, GENV_TYPESYSTEM.STRING_TYPE_ONE, true),
-        FunctionConsts::FN_CONCAT_N);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_string_join_3_0,
-        (createQName("http://www.w3.org/2005/xpath-functions","","string-join";), 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_STRING_JOIN_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_string_join,
-        (createQName("http://www.w3.org/2005/xpath-functions","","string-join";), 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_STRING_JOIN_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_substring,
-        (createQName("http://www.w3.org/2005/xpath-functions","","substring";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_SUBSTRING_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_substring,
-        (createQName("http://www.w3.org/2005/xpath-functions","","substring";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
-        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_SUBSTRING_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_substring_int,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","substring_int";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::OP_SUBSTRING_INT_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, op_substring_int,
-        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","substring_int";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::OP_SUBSTRING_INT_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_string_length,
-        (createQName("http://www.w3.org/2005/xpath-functions","","string-length";), 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
-        FunctionConsts::FN_STRING_LENGTH_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_string_length,
-        (createQName("http://www.w3.org/2005/xpath-functions","","string-length";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
-        FunctionConsts::FN_STRING_LENGTH_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_normalize_space,
-        (createQName("http://www.w3.org/2005/xpath-functions","","normalize-space";), 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_NORMALIZE_SPACE_0);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_normalize_space,
-        (createQName("http://www.w3.org/2005/xpath-functions","","normalize-space";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_NORMALIZE_SPACE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_normalize_unicode,
-        (createQName("http://www.w3.org/2005/xpath-functions","","normalize-unicode";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_NORMALIZE_UNICODE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_normalize_unicode,
-        (createQName("http://www.w3.org/2005/xpath-functions","","normalize-unicode";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_NORMALIZE_UNICODE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_upper_case,
-        (createQName("http://www.w3.org/2005/xpath-functions","","upper-case";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_UPPER_CASE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_lower_case,
-        (createQName("http://www.w3.org/2005/xpath-functions","","lower-case";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_LOWER_CASE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_translate,
-        (createQName("http://www.w3.org/2005/xpath-functions","","translate";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_TRANSLATE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_encode_for_uri,
-        (createQName("http://www.w3.org/2005/xpath-functions","","encode-for-uri";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_ENCODE_FOR_URI_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_iri_to_uri,
-        (createQName("http://www.w3.org/2005/xpath-functions","","iri-to-uri";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_IRI_TO_URI_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_escape_html_uri,
-        (createQName("http://www.w3.org/2005/xpath-functions","","escape-html-uri";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_ESCAPE_HTML_URI_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_contains,
-        (createQName("http://www.w3.org/2005/xpath-functions","","contains";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_CONTAINS_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_contains,
-        (createQName("http://www.w3.org/2005/xpath-functions","","contains";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_CONTAINS_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_starts_with,
-        (createQName("http://www.w3.org/2005/xpath-functions","","starts-with";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_STARTS_WITH_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_starts_with,
-        (createQName("http://www.w3.org/2005/xpath-functions","","starts-with";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_STARTS_WITH_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_ends_with,
-        (createQName("http://www.w3.org/2005/xpath-functions","","ends-with";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_ENDS_WITH_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_ends_with,
-        (createQName("http://www.w3.org/2005/xpath-functions","","ends-with";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_ENDS_WITH_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_substring_before,
-        (createQName("http://www.w3.org/2005/xpath-functions","","substring-before";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_SUBSTRING_BEFORE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_substring_before,
-        (createQName("http://www.w3.org/2005/xpath-functions","","substring-before";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_SUBSTRING_BEFORE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_substring_after,
-        (createQName("http://www.w3.org/2005/xpath-functions","","substring-after";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_SUBSTRING_AFTER_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_substring_after,
-        (createQName("http://www.w3.org/2005/xpath-functions","","substring-after";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_SUBSTRING_AFTER_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_matches,
-        (createQName("http://www.w3.org/2005/xpath-functions","","matches";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_MATCHES_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_matches,
-        (createQName("http://www.w3.org/2005/xpath-functions","","matches";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_MATCHES_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_replace,
-        (createQName("http://www.w3.org/2005/xpath-functions","","replace";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_REPLACE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_replace,
-        (createQName("http://www.w3.org/2005/xpath-functions","","replace";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_REPLACE_4);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_tokenize,
-        (createQName("http://www.w3.org/2005/xpath-functions","","tokenize";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR),
-        FunctionConsts::FN_TOKENIZE_2);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_tokenize,
-        (createQName("http://www.w3.org/2005/xpath-functions","","tokenize";), 
-        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR),
-        FunctionConsts::FN_TOKENIZE_3);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_zorba_string_materialize,
-        (createQName("http://www.zorba-xquery.com/modules/string","","materialize";), 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE),
-        FunctionConsts::FN_ZORBA_STRING_MATERIALIZE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_zorba_string_is_streamable,
-        (createQName("http://www.zorba-xquery.com/modules/string","","is-streamable";), 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
-        FunctionConsts::FN_ZORBA_STRING_IS_STREAMABLE_1);
-
-  }
-
-
-  {
-    
-
-    DECL_WITH_KIND(sctx, fn_zorba_string_split,
-        (createQName("http://www.zorba-xquery.com/modules/string","","split";), 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
-        GENV_TYPESYSTEM.STRING_TYPE_STAR),
-        FunctionConsts::FN_ZORBA_STRING_SPLIT_2);
-
-  }
-
-}
-
-
-}
-
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+
+#include "stdafx.h"
+#include "runtime/strings/strings.h"
+#include "functions/func_strings.h"
+
+
+namespace zorba{
+
+
+
+PlanIter_t fn_codepoints_to_string::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new CodepointsToStringIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_string_to_codepoints::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new StringToCodepointsIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_compare::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new CompareStrIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_codepoint_equal::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new CodepointEqualIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_concat::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new ConcatStrIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_string_join_3_0::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new StringJoinIterator(sctx, loc, argv);
+}
+PlanIter_t fn_string_join::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new StringJoinIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_substring::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new SubstringIterator(sctx, loc, argv);
+}
+
+PlanIter_t op_substring_int::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new SubstringIntOptIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_string_length::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new StringLengthIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_normalize_space::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new NormalizeSpaceIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_normalize_unicode::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new NormalizeUnicodeIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_upper_case::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new UpperCaseIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_lower_case::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new LowerCaseIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_translate::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new TranslateIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_encode_for_uri::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new EncodeForUriIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_iri_to_uri::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new IriToUriIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_escape_html_uri::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new EscapeHtmlUriIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_contains::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new ContainsIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_starts_with::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new StartsWithIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_ends_with::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new EndsWithIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_substring_before::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new SubstringBeforeIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_substring_after::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new SubstringAfterIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_matches::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnMatchesIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_replace::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnReplaceIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_tokenize::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnTokenizeIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_analyze_string_3_0::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new FnAnalyzeStringIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_zorba_string_materialize::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new StringMaterializeIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_zorba_string_is_streamable::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new StringIsStreamableIterator(sctx, loc, argv);
+}
+
+PlanIter_t fn_zorba_string_split::codegen(
+  CompilerCB*,
+  static_context* sctx,
+  const QueryLoc& loc,
+  std::vector<PlanIter_t>& argv,
+  expr& ann) const
+{
+  return new StringSplitIterator(sctx, loc, argv);
+}
+
+void populate_context_strings(static_context* sctx)
+{
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_codepoints_to_string,
+        (createQName("http://www.w3.org/2005/xpath-functions","","codepoints-to-string";), 
+        GENV_TYPESYSTEM.INTEGER_TYPE_STAR, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_CODEPOINTS_TO_STRING_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_string_to_codepoints,
+        (createQName("http://www.w3.org/2005/xpath-functions","","string-to-codepoints";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_STAR),
+        FunctionConsts::FN_STRING_TO_CODEPOINTS_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_compare,
+        (createQName("http://www.w3.org/2005/xpath-functions","","compare";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_QUESTION),
+        FunctionConsts::FN_COMPARE_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_compare,
+        (createQName("http://www.w3.org/2005/xpath-functions","","compare";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_QUESTION),
+        FunctionConsts::FN_COMPARE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_codepoint_equal,
+        (createQName("http://www.w3.org/2005/xpath-functions","","codepoint-equal";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_QUESTION),
+        FunctionConsts::FN_CODEPOINT_EQUAL_2);
+
+  }
+
+
+  {
+    std::vector<xqtref_t> lParamTypes;
+    lParamTypes.push_back(GENV_TYPESYSTEM.ANY_ATOMIC_TYPE_QUESTION);
+
+    DECL_WITH_KIND(sctx, fn_concat,
+        (createQName("http://www.w3.org/2005/xpath-functions","","concat";), 
+        lParamTypes, GENV_TYPESYSTEM.STRING_TYPE_ONE, true),
+        FunctionConsts::FN_CONCAT_N);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_string_join_3_0,
+        (createQName("http://www.w3.org/2005/xpath-functions","","string-join";), 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_STRING_JOIN_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_string_join,
+        (createQName("http://www.w3.org/2005/xpath-functions","","string-join";), 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_STRING_JOIN_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_substring,
+        (createQName("http://www.w3.org/2005/xpath-functions","","substring";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_SUBSTRING_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_substring,
+        (createQName("http://www.w3.org/2005/xpath-functions","","substring";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
+        GENV_TYPESYSTEM.DOUBLE_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_SUBSTRING_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_substring_int,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","substring_int";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::OP_SUBSTRING_INT_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, op_substring_int,
+        (createQName("http://www.zorba-xquery.com/internal/xquery-ops","","substring_int";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::OP_SUBSTRING_INT_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_string_length,
+        (createQName("http://www.w3.org/2005/xpath-functions","","string-length";), 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
+        FunctionConsts::FN_STRING_LENGTH_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_string_length,
+        (createQName("http://www.w3.org/2005/xpath-functions","","string-length";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.INTEGER_TYPE_ONE),
+        FunctionConsts::FN_STRING_LENGTH_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_normalize_space,
+        (createQName("http://www.w3.org/2005/xpath-functions","","normalize-space";), 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_NORMALIZE_SPACE_0);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_normalize_space,
+        (createQName("http://www.w3.org/2005/xpath-functions","","normalize-space";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_NORMALIZE_SPACE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_normalize_unicode,
+        (createQName("http://www.w3.org/2005/xpath-functions","","normalize-unicode";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_NORMALIZE_UNICODE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_normalize_unicode,
+        (createQName("http://www.w3.org/2005/xpath-functions","","normalize-unicode";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_NORMALIZE_UNICODE_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_upper_case,
+        (createQName("http://www.w3.org/2005/xpath-functions","","upper-case";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_UPPER_CASE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_lower_case,
+        (createQName("http://www.w3.org/2005/xpath-functions","","lower-case";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_LOWER_CASE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_translate,
+        (createQName("http://www.w3.org/2005/xpath-functions","","translate";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_TRANSLATE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_encode_for_uri,
+        (createQName("http://www.w3.org/2005/xpath-functions","","encode-for-uri";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_ENCODE_FOR_URI_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_iri_to_uri,
+        (createQName("http://www.w3.org/2005/xpath-functions","","iri-to-uri";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_IRI_TO_URI_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_escape_html_uri,
+        (createQName("http://www.w3.org/2005/xpath-functions","","escape-html-uri";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_ESCAPE_HTML_URI_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_contains,
+        (createQName("http://www.w3.org/2005/xpath-functions","","contains";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_CONTAINS_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_contains,
+        (createQName("http://www.w3.org/2005/xpath-functions","","contains";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_CONTAINS_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_starts_with,
+        (createQName("http://www.w3.org/2005/xpath-functions","","starts-with";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_STARTS_WITH_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_starts_with,
+        (createQName("http://www.w3.org/2005/xpath-functions","","starts-with";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_STARTS_WITH_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_ends_with,
+        (createQName("http://www.w3.org/2005/xpath-functions","","ends-with";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_ENDS_WITH_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_ends_with,
+        (createQName("http://www.w3.org/2005/xpath-functions","","ends-with";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_ENDS_WITH_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_substring_before,
+        (createQName("http://www.w3.org/2005/xpath-functions","","substring-before";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_SUBSTRING_BEFORE_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_substring_before,
+        (createQName("http://www.w3.org/2005/xpath-functions","","substring-before";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_SUBSTRING_BEFORE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_substring_after,
+        (createQName("http://www.w3.org/2005/xpath-functions","","substring-after";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_SUBSTRING_AFTER_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_substring_after,
+        (createQName("http://www.w3.org/2005/xpath-functions","","substring-after";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_SUBSTRING_AFTER_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_matches,
+        (createQName("http://www.w3.org/2005/xpath-functions","","matches";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_MATCHES_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_matches,
+        (createQName("http://www.w3.org/2005/xpath-functions","","matches";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_MATCHES_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_replace,
+        (createQName("http://www.w3.org/2005/xpath-functions","","replace";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_REPLACE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_replace,
+        (createQName("http://www.w3.org/2005/xpath-functions","","replace";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_REPLACE_4);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_tokenize,
+        (createQName("http://www.w3.org/2005/xpath-functions","","tokenize";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR),
+        FunctionConsts::FN_TOKENIZE_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_tokenize,
+        (createQName("http://www.w3.org/2005/xpath-functions","","tokenize";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR),
+        FunctionConsts::FN_TOKENIZE_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_analyze_string_3_0,
+        (createQName("http://www.w3.org/2005/xpath-functions","","analyze-string";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.ELEMENT_TYPE_ONE),
+        FunctionConsts::FN_ANALYZE_STRING_2);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_analyze_string_3_0,
+        (createQName("http://www.w3.org/2005/xpath-functions","","analyze-string";), 
+        GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.ELEMENT_TYPE_ONE),
+        FunctionConsts::FN_ANALYZE_STRING_3);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_zorba_string_materialize,
+        (createQName("http://www.zorba-xquery.com/modules/string","","materialize";), 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE),
+        FunctionConsts::FN_ZORBA_STRING_MATERIALIZE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_zorba_string_is_streamable,
+        (createQName("http://www.zorba-xquery.com/modules/string","","is-streamable";), 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.BOOLEAN_TYPE_ONE),
+        FunctionConsts::FN_ZORBA_STRING_IS_STREAMABLE_1);
+
+  }
+
+
+  {
+    
+
+    DECL_WITH_KIND(sctx, fn_zorba_string_split,
+        (createQName("http://www.zorba-xquery.com/modules/string","","split";), 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_ONE, 
+        GENV_TYPESYSTEM.STRING_TYPE_STAR),
+        FunctionConsts::FN_ZORBA_STRING_SPLIT_2);
+
+  }
+
+}
+
+
+}
+
+
+

=== modified file 'src/functions/pregenerated/function_enum.h'
--- src/functions/pregenerated/function_enum.h	2012-04-26 13:25:13 +0000
+++ src/functions/pregenerated/function_enum.h	2012-05-02 06:48:21 +0000
@@ -22,6 +22,7 @@
 // ******************************************
   FN_NODE_NAME_0,
   FN_NODE_NAME_1,
+  FN_NILLED_0,
   FN_NILLED_1,
   FN_STRING_0,
   FN_STRING_1,
@@ -251,6 +252,7 @@
   FN_LANG_2,
   FN_NUMBER_0,
   FN_NUMBER_1,
+  FN_HAS_CHILDREN_0,
   FN_HAS_CHILDREN_1,
   FN_INNERMOST_1,
   FN_OUTERMOST_1,
@@ -266,6 +268,8 @@
   FN_ZORBA_NODE_PRECEDING_SIBLING_OF_2,
   FN_ZORBA_NODE_LEVEL_1,
   FN_ZORBA_NODE_LEAST_COMMON_ANCESTOR_2,
+  FN_PATH_0,
+  FN_PATH_1,
   FN_ABS_1,
   FN_CEILING_1,
   FN_FLOOR_1,

=== modified file 'src/runtime/accessors/accessors_impl.cpp'
--- src/runtime/accessors/accessors_impl.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/accessors/accessors_impl.cpp	2012-05-02 06:48:21 +0000
@@ -79,8 +79,7 @@
   if (consumeNext(inNode, theChildren[0].getp(), planState))
   {
     if (inNode->isNode()) {
-      result = inNode->getNilled();
-      STACK_PUSH(result != NULL, state);
+      STACK_PUSH(GENV_ITEMFACTORY->createBoolean(result, inNode->getNilled() != NULL), state);
     } else
 			throw XQUERY_EXCEPTION(
 				err::XPTY0004,

=== modified file 'src/runtime/accessors/pregenerated/accessors.cpp'
--- src/runtime/accessors/pregenerated/accessors.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/accessors/pregenerated/accessors.cpp	2012-05-02 06:48:21 +0000
@@ -1,221 +1,221 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-#include "stdafx.h"
-#include "zorbatypes/rchandle.h"
-#include "zorbatypes/zstring.h"
-#include "runtime/visitors/planiter_visitor.h"
-#include "runtime/accessors/accessors.h"
-#include "system/globalenv.h"
-
-
-#include "store/api/iterator.h"
-
-namespace zorba {
-
-// <NodeNameIterator>
-NodeNameIterator::class_factory<NodeNameIterator>
-NodeNameIterator::g_class_factory;
-
-
-void NodeNameIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-NodeNameIterator::~NodeNameIterator() {}
-
-// </NodeNameIterator>
-
-
-// <NilledIterator>
-NilledIterator::class_factory<NilledIterator>
-NilledIterator::g_class_factory;
-
-
-void NilledIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-NilledIterator::~NilledIterator() {}
-
-// </NilledIterator>
-
-
-// <FnStringIterator>
-FnStringIterator::class_factory<FnStringIterator>
-FnStringIterator::g_class_factory;
-
-
-void FnStringIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-FnStringIterator::~FnStringIterator() {}
-
-FnStringIteratorState::FnStringIteratorState() {}
-
-FnStringIteratorState::~FnStringIteratorState() {}
-
-
-void FnStringIteratorState::init(PlanState& planState) {
-  PlanIteratorState::init(planState);
-  hasOutput = false;
-}
-
-void FnStringIteratorState::reset(PlanState& planState) {
-  PlanIteratorState::reset(planState);
-  hasOutput = false;
-}
-// </FnStringIterator>
-
-
-// <FnDataIterator>
-FnDataIterator::class_factory<FnDataIterator>
-FnDataIterator::g_class_factory;
-
-
-void FnDataIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-FnDataIterator::~FnDataIterator() {}
-
-FnDataIteratorState::FnDataIteratorState() {}
-
-FnDataIteratorState::~FnDataIteratorState() {}
-
-
-void FnDataIteratorState::init(PlanState& planState) {
-  PlanIteratorState::init(planState);
-  theTypedValueIter = NULL;
-}
-
-void FnDataIteratorState::reset(PlanState& planState) {
-  PlanIteratorState::reset(planState);
-  theTypedValueIter = NULL;
-}
-// </FnDataIterator>
-
-
-// <BaseUriIterator>
-BaseUriIterator::class_factory<BaseUriIterator>
-BaseUriIterator::g_class_factory;
-
-
-void BaseUriIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-BaseUriIterator::~BaseUriIterator() {}
-
-// </BaseUriIterator>
-
-
-// <DocumentUriIterator>
-DocumentUriIterator::class_factory<DocumentUriIterator>
-DocumentUriIterator::g_class_factory;
-
-
-void DocumentUriIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-DocumentUriIterator::~DocumentUriIterator() {}
-
-// </DocumentUriIterator>
-
-
-// <RootIterator>
-RootIterator::class_factory<RootIterator>
-RootIterator::g_class_factory;
-
-
-void RootIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-RootIterator::~RootIterator() {}
-
-// </RootIterator>
-
-
-
-}
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+#include "stdafx.h"
+#include "zorbatypes/rchandle.h"
+#include "zorbatypes/zstring.h"
+#include "runtime/visitors/planiter_visitor.h"
+#include "runtime/accessors/accessors.h"
+#include "system/globalenv.h"
+
+
+#include "store/api/iterator.h"
+
+namespace zorba {
+
+// <NodeNameIterator>
+NodeNameIterator::class_factory<NodeNameIterator>
+NodeNameIterator::g_class_factory;
+
+
+void NodeNameIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+NodeNameIterator::~NodeNameIterator() {}
+
+// </NodeNameIterator>
+
+
+// <NilledIterator>
+NilledIterator::class_factory<NilledIterator>
+NilledIterator::g_class_factory;
+
+
+void NilledIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+NilledIterator::~NilledIterator() {}
+
+// </NilledIterator>
+
+
+// <FnStringIterator>
+FnStringIterator::class_factory<FnStringIterator>
+FnStringIterator::g_class_factory;
+
+
+void FnStringIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+FnStringIterator::~FnStringIterator() {}
+
+FnStringIteratorState::FnStringIteratorState() {}
+
+FnStringIteratorState::~FnStringIteratorState() {}
+
+
+void FnStringIteratorState::init(PlanState& planState) {
+  PlanIteratorState::init(planState);
+  hasOutput = false;
+}
+
+void FnStringIteratorState::reset(PlanState& planState) {
+  PlanIteratorState::reset(planState);
+  hasOutput = false;
+}
+// </FnStringIterator>
+
+
+// <FnDataIterator>
+FnDataIterator::class_factory<FnDataIterator>
+FnDataIterator::g_class_factory;
+
+
+void FnDataIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+FnDataIterator::~FnDataIterator() {}
+
+FnDataIteratorState::FnDataIteratorState() {}
+
+FnDataIteratorState::~FnDataIteratorState() {}
+
+
+void FnDataIteratorState::init(PlanState& planState) {
+  PlanIteratorState::init(planState);
+  theTypedValueIter = NULL;
+}
+
+void FnDataIteratorState::reset(PlanState& planState) {
+  PlanIteratorState::reset(planState);
+  theTypedValueIter = NULL;
+}
+// </FnDataIterator>
+
+
+// <BaseUriIterator>
+BaseUriIterator::class_factory<BaseUriIterator>
+BaseUriIterator::g_class_factory;
+
+
+void BaseUriIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+BaseUriIterator::~BaseUriIterator() {}
+
+// </BaseUriIterator>
+
+
+// <DocumentUriIterator>
+DocumentUriIterator::class_factory<DocumentUriIterator>
+DocumentUriIterator::g_class_factory;
+
+
+void DocumentUriIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+DocumentUriIterator::~DocumentUriIterator() {}
+
+// </DocumentUriIterator>
+
+
+// <RootIterator>
+RootIterator::class_factory<RootIterator>
+RootIterator::g_class_factory;
+
+
+void RootIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+RootIterator::~RootIterator() {}
+
+// </RootIterator>
+
+
+
+}
+
+

=== modified file 'src/runtime/accessors/pregenerated/accessors.h'
--- src/runtime/accessors/pregenerated/accessors.h	2012-04-24 12:39:38 +0000
+++ src/runtime/accessors/pregenerated/accessors.h	2012-05-02 06:48:21 +0000
@@ -1,314 +1,314 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-#ifndef ZORBA_RUNTIME_ACCESSORS_ACCESSORS_H
-#define ZORBA_RUNTIME_ACCESSORS_ACCESSORS_H
-
-
-#include "common/shared_types.h"
-
-
-
-#include "runtime/base/narybase.h"
-
-
-namespace zorba {
-
-/**
- * fn:node-name
- * Author: Zorba Team
- */
-class NodeNameIterator : public NaryBaseIterator<NodeNameIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(NodeNameIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(NodeNameIterator,
-    NaryBaseIterator<NodeNameIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<NodeNameIterator, PlanIteratorState>*)this);
-  }
-
-  NodeNameIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<NodeNameIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~NodeNameIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:nilled
- * Author: Zorba Team
- */
-class NilledIterator : public NaryBaseIterator<NilledIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(NilledIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(NilledIterator,
-    NaryBaseIterator<NilledIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<NilledIterator, PlanIteratorState>*)this);
-  }
-
-  NilledIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<NilledIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~NilledIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:string
- * Author: Zorba Team
- */
-class FnStringIteratorState : public PlanIteratorState
-{
-public:
-  bool hasOutput; //
-
-  FnStringIteratorState();
-
-  ~FnStringIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class FnStringIterator : public NaryBaseIterator<FnStringIterator, FnStringIteratorState>
-{ 
-protected:
-  bool theEmptyStringOnNULL; //
-public:
-  SERIALIZABLE_CLASS(FnStringIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(FnStringIterator,
-    NaryBaseIterator<FnStringIterator, FnStringIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<FnStringIterator, FnStringIteratorState>*)this);
-
-    ar & theEmptyStringOnNULL;
-  }
-
-  FnStringIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool emptyStringOnNULL)
-    : 
-    NaryBaseIterator<FnStringIterator, FnStringIteratorState>(sctx, loc, children),
-    theEmptyStringOnNULL(emptyStringOnNULL)
-  {}
-
-  virtual ~FnStringIterator();
-
-  bool isUpdating() const { return theEmptyStringOnNULL; }
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:data
- * Author: Zorba Team
- */
-class FnDataIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t theTypedValueIter; //
-
-  FnDataIteratorState();
-
-  ~FnDataIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class FnDataIterator : public NaryBaseIterator<FnDataIterator, FnDataIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(FnDataIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(FnDataIterator,
-    NaryBaseIterator<FnDataIterator, FnDataIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<FnDataIterator, FnDataIteratorState>*)this);
-  }
-
-  FnDataIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<FnDataIterator, FnDataIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~FnDataIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:base-uri
- * Author: Zorba Team
- */
-class BaseUriIterator : public NaryBaseIterator<BaseUriIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(BaseUriIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(BaseUriIterator,
-    NaryBaseIterator<BaseUriIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<BaseUriIterator, PlanIteratorState>*)this);
-  }
-
-  BaseUriIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<BaseUriIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~BaseUriIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:document-uri
- * Author: Zorba Team
- */
-class DocumentUriIterator : public NaryBaseIterator<DocumentUriIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(DocumentUriIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DocumentUriIterator,
-    NaryBaseIterator<DocumentUriIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<DocumentUriIterator, PlanIteratorState>*)this);
-  }
-
-  DocumentUriIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<DocumentUriIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~DocumentUriIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:root
- * Author: Zorba Team
- */
-class RootIterator : public NaryBaseIterator<RootIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(RootIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(RootIterator,
-    NaryBaseIterator<RootIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<RootIterator, PlanIteratorState>*)this);
-  }
-
-  RootIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<RootIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~RootIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-}
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+#ifndef ZORBA_RUNTIME_ACCESSORS_ACCESSORS_H
+#define ZORBA_RUNTIME_ACCESSORS_ACCESSORS_H
+
+
+#include "common/shared_types.h"
+
+
+
+#include "runtime/base/narybase.h"
+
+
+namespace zorba {
+
+/**
+ * fn:node-name
+ * Author: Zorba Team
+ */
+class NodeNameIterator : public NaryBaseIterator<NodeNameIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(NodeNameIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(NodeNameIterator,
+    NaryBaseIterator<NodeNameIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<NodeNameIterator, PlanIteratorState>*)this);
+  }
+
+  NodeNameIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<NodeNameIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~NodeNameIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:nilled
+ * Author: Zorba Team
+ */
+class NilledIterator : public NaryBaseIterator<NilledIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(NilledIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(NilledIterator,
+    NaryBaseIterator<NilledIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<NilledIterator, PlanIteratorState>*)this);
+  }
+
+  NilledIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<NilledIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~NilledIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:string
+ * Author: Zorba Team
+ */
+class FnStringIteratorState : public PlanIteratorState
+{
+public:
+  bool hasOutput; //
+
+  FnStringIteratorState();
+
+  ~FnStringIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class FnStringIterator : public NaryBaseIterator<FnStringIterator, FnStringIteratorState>
+{ 
+protected:
+  bool theEmptyStringOnNULL; //
+public:
+  SERIALIZABLE_CLASS(FnStringIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(FnStringIterator,
+    NaryBaseIterator<FnStringIterator, FnStringIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<FnStringIterator, FnStringIteratorState>*)this);
+
+    ar & theEmptyStringOnNULL;
+  }
+
+  FnStringIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool emptyStringOnNULL)
+    : 
+    NaryBaseIterator<FnStringIterator, FnStringIteratorState>(sctx, loc, children),
+    theEmptyStringOnNULL(emptyStringOnNULL)
+  {}
+
+  virtual ~FnStringIterator();
+
+  bool isUpdating() const { return theEmptyStringOnNULL; }
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:data
+ * Author: Zorba Team
+ */
+class FnDataIteratorState : public PlanIteratorState
+{
+public:
+  store::Iterator_t theTypedValueIter; //
+
+  FnDataIteratorState();
+
+  ~FnDataIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class FnDataIterator : public NaryBaseIterator<FnDataIterator, FnDataIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(FnDataIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(FnDataIterator,
+    NaryBaseIterator<FnDataIterator, FnDataIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<FnDataIterator, FnDataIteratorState>*)this);
+  }
+
+  FnDataIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<FnDataIterator, FnDataIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~FnDataIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:base-uri
+ * Author: Zorba Team
+ */
+class BaseUriIterator : public NaryBaseIterator<BaseUriIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(BaseUriIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(BaseUriIterator,
+    NaryBaseIterator<BaseUriIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<BaseUriIterator, PlanIteratorState>*)this);
+  }
+
+  BaseUriIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<BaseUriIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~BaseUriIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:document-uri
+ * Author: Zorba Team
+ */
+class DocumentUriIterator : public NaryBaseIterator<DocumentUriIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(DocumentUriIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DocumentUriIterator,
+    NaryBaseIterator<DocumentUriIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<DocumentUriIterator, PlanIteratorState>*)this);
+  }
+
+  DocumentUriIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<DocumentUriIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~DocumentUriIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:root
+ * Author: Zorba Team
+ */
+class RootIterator : public NaryBaseIterator<RootIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(RootIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(RootIterator,
+    NaryBaseIterator<RootIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<RootIterator, PlanIteratorState>*)this);
+  }
+
+  RootIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<RootIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~RootIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+}
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/runtime/any_uri/pregenerated/any_uri.cpp'
--- src/runtime/any_uri/pregenerated/any_uri.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/any_uri/pregenerated/any_uri.cpp	2012-05-02 06:48:21 +0000
@@ -1,60 +1,60 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-#include "stdafx.h"
-#include "zorbatypes/rchandle.h"
-#include "zorbatypes/zstring.h"
-#include "runtime/visitors/planiter_visitor.h"
-#include "runtime/any_uri/any_uri.h"
-#include "system/globalenv.h"
-
-
-
-namespace zorba {
-
-// <ResolveUriIterator>
-ResolveUriIterator::class_factory<ResolveUriIterator>
-ResolveUriIterator::g_class_factory;
-
-
-void ResolveUriIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ResolveUriIterator::~ResolveUriIterator() {}
-
-// </ResolveUriIterator>
-
-
-
-}
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+#include "stdafx.h"
+#include "zorbatypes/rchandle.h"
+#include "zorbatypes/zstring.h"
+#include "runtime/visitors/planiter_visitor.h"
+#include "runtime/any_uri/any_uri.h"
+#include "system/globalenv.h"
+
+
+
+namespace zorba {
+
+// <ResolveUriIterator>
+ResolveUriIterator::class_factory<ResolveUriIterator>
+ResolveUriIterator::g_class_factory;
+
+
+void ResolveUriIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ResolveUriIterator::~ResolveUriIterator() {}
+
+// </ResolveUriIterator>
+
+
+
+}
+
+

=== modified file 'src/runtime/any_uri/pregenerated/any_uri.h'
--- src/runtime/any_uri/pregenerated/any_uri.h	2012-04-24 12:39:38 +0000
+++ src/runtime/any_uri/pregenerated/any_uri.h	2012-05-02 06:48:21 +0000
@@ -1,76 +1,76 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-#ifndef ZORBA_RUNTIME_ANY_URI_ANY_URI_H
-#define ZORBA_RUNTIME_ANY_URI_ANY_URI_H
-
-
-#include "common/shared_types.h"
-
-
-
-#include "runtime/base/narybase.h"
-
-
-namespace zorba {
-
-/**
- * fn:resolve-uri
- * Author: Zorba Team
- */
-class ResolveUriIterator : public NaryBaseIterator<ResolveUriIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ResolveUriIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ResolveUriIterator,
-    NaryBaseIterator<ResolveUriIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ResolveUriIterator, PlanIteratorState>*)this);
-  }
-
-  ResolveUriIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<ResolveUriIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~ResolveUriIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-}
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+#ifndef ZORBA_RUNTIME_ANY_URI_ANY_URI_H
+#define ZORBA_RUNTIME_ANY_URI_ANY_URI_H
+
+
+#include "common/shared_types.h"
+
+
+
+#include "runtime/base/narybase.h"
+
+
+namespace zorba {
+
+/**
+ * fn:resolve-uri
+ * Author: Zorba Team
+ */
+class ResolveUriIterator : public NaryBaseIterator<ResolveUriIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ResolveUriIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ResolveUriIterator,
+    NaryBaseIterator<ResolveUriIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ResolveUriIterator, PlanIteratorState>*)this);
+  }
+
+  ResolveUriIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<ResolveUriIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~ResolveUriIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+}
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/runtime/base64/pregenerated/base64.cpp'
--- src/runtime/base64/pregenerated/base64.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/base64/pregenerated/base64.cpp	2012-05-02 06:48:21 +0000
@@ -1,82 +1,82 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-#include "stdafx.h"
-#include "zorbatypes/rchandle.h"
-#include "zorbatypes/zstring.h"
-#include "runtime/visitors/planiter_visitor.h"
-#include "runtime/base64/base64.h"
-#include "system/globalenv.h"
-
-
-
-namespace zorba {
-
-// <Base64DecodeIterator>
-Base64DecodeIterator::class_factory<Base64DecodeIterator>
-Base64DecodeIterator::g_class_factory;
-
-
-void Base64DecodeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-Base64DecodeIterator::~Base64DecodeIterator() {}
-
-// </Base64DecodeIterator>
-
-
-// <Base64EncodeIterator>
-Base64EncodeIterator::class_factory<Base64EncodeIterator>
-Base64EncodeIterator::g_class_factory;
-
-
-void Base64EncodeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-Base64EncodeIterator::~Base64EncodeIterator() {}
-
-// </Base64EncodeIterator>
-
-
-
-}
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+#include "stdafx.h"
+#include "zorbatypes/rchandle.h"
+#include "zorbatypes/zstring.h"
+#include "runtime/visitors/planiter_visitor.h"
+#include "runtime/base64/base64.h"
+#include "system/globalenv.h"
+
+
+
+namespace zorba {
+
+// <Base64DecodeIterator>
+Base64DecodeIterator::class_factory<Base64DecodeIterator>
+Base64DecodeIterator::g_class_factory;
+
+
+void Base64DecodeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+Base64DecodeIterator::~Base64DecodeIterator() {}
+
+// </Base64DecodeIterator>
+
+
+// <Base64EncodeIterator>
+Base64EncodeIterator::class_factory<Base64EncodeIterator>
+Base64EncodeIterator::g_class_factory;
+
+
+void Base64EncodeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+Base64EncodeIterator::~Base64EncodeIterator() {}
+
+// </Base64EncodeIterator>
+
+
+
+}
+
+

=== modified file 'src/runtime/base64/pregenerated/base64.h'
--- src/runtime/base64/pregenerated/base64.h	2012-04-24 12:39:38 +0000
+++ src/runtime/base64/pregenerated/base64.h	2012-05-02 06:48:21 +0000
@@ -1,110 +1,110 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-#ifndef ZORBA_RUNTIME_BASE64_BASE64_H
-#define ZORBA_RUNTIME_BASE64_BASE64_H
-
-
-#include "common/shared_types.h"
-
-
-
-#include "runtime/base/narybase.h"
-
-
-namespace zorba {
-
-/**
- * base64:decode
- * Author: Zorba Team
- */
-class Base64DecodeIterator : public NaryBaseIterator<Base64DecodeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(Base64DecodeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(Base64DecodeIterator,
-    NaryBaseIterator<Base64DecodeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<Base64DecodeIterator, PlanIteratorState>*)this);
-  }
-
-  Base64DecodeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<Base64DecodeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~Base64DecodeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * base64:encode
- * Author: Zorba Team
- */
-class Base64EncodeIterator : public NaryBaseIterator<Base64EncodeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(Base64EncodeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(Base64EncodeIterator,
-    NaryBaseIterator<Base64EncodeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<Base64EncodeIterator, PlanIteratorState>*)this);
-  }
-
-  Base64EncodeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<Base64EncodeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~Base64EncodeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-}
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+#ifndef ZORBA_RUNTIME_BASE64_BASE64_H
+#define ZORBA_RUNTIME_BASE64_BASE64_H
+
+
+#include "common/shared_types.h"
+
+
+
+#include "runtime/base/narybase.h"
+
+
+namespace zorba {
+
+/**
+ * base64:decode
+ * Author: Zorba Team
+ */
+class Base64DecodeIterator : public NaryBaseIterator<Base64DecodeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(Base64DecodeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(Base64DecodeIterator,
+    NaryBaseIterator<Base64DecodeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<Base64DecodeIterator, PlanIteratorState>*)this);
+  }
+
+  Base64DecodeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<Base64DecodeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~Base64DecodeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * base64:encode
+ * Author: Zorba Team
+ */
+class Base64EncodeIterator : public NaryBaseIterator<Base64EncodeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(Base64EncodeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(Base64EncodeIterator,
+    NaryBaseIterator<Base64EncodeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<Base64EncodeIterator, PlanIteratorState>*)this);
+  }
+
+  Base64EncodeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<Base64EncodeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~Base64EncodeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+}
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/runtime/booleans/pregenerated/booleans.cpp'
--- src/runtime/booleans/pregenerated/booleans.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/booleans/pregenerated/booleans.cpp	2012-05-02 06:48:21 +0000
@@ -1,104 +1,104 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-#include "stdafx.h"
-#include "zorbatypes/rchandle.h"
-#include "zorbatypes/zstring.h"
-#include "runtime/visitors/planiter_visitor.h"
-#include "runtime/booleans/booleans.h"
-#include "system/globalenv.h"
-
-
-
-namespace zorba {
-
-// <IsSameNodeIterator>
-IsSameNodeIterator::class_factory<IsSameNodeIterator>
-IsSameNodeIterator::g_class_factory;
-
-
-void IsSameNodeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-IsSameNodeIterator::~IsSameNodeIterator() {}
-
-// </IsSameNodeIterator>
-
-
-// <NodeBeforeIterator>
-NodeBeforeIterator::class_factory<NodeBeforeIterator>
-NodeBeforeIterator::g_class_factory;
-
-
-void NodeBeforeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-NodeBeforeIterator::~NodeBeforeIterator() {}
-
-// </NodeBeforeIterator>
-
-
-// <NodeAfterIterator>
-NodeAfterIterator::class_factory<NodeAfterIterator>
-NodeAfterIterator::g_class_factory;
-
-
-void NodeAfterIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-NodeAfterIterator::~NodeAfterIterator() {}
-
-// </NodeAfterIterator>
-
-
-
-}
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+#include "stdafx.h"
+#include "zorbatypes/rchandle.h"
+#include "zorbatypes/zstring.h"
+#include "runtime/visitors/planiter_visitor.h"
+#include "runtime/booleans/booleans.h"
+#include "system/globalenv.h"
+
+
+
+namespace zorba {
+
+// <IsSameNodeIterator>
+IsSameNodeIterator::class_factory<IsSameNodeIterator>
+IsSameNodeIterator::g_class_factory;
+
+
+void IsSameNodeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+IsSameNodeIterator::~IsSameNodeIterator() {}
+
+// </IsSameNodeIterator>
+
+
+// <NodeBeforeIterator>
+NodeBeforeIterator::class_factory<NodeBeforeIterator>
+NodeBeforeIterator::g_class_factory;
+
+
+void NodeBeforeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+NodeBeforeIterator::~NodeBeforeIterator() {}
+
+// </NodeBeforeIterator>
+
+
+// <NodeAfterIterator>
+NodeAfterIterator::class_factory<NodeAfterIterator>
+NodeAfterIterator::g_class_factory;
+
+
+void NodeAfterIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+NodeAfterIterator::~NodeAfterIterator() {}
+
+// </NodeAfterIterator>
+
+
+
+}
+
+

=== modified file 'src/runtime/booleans/pregenerated/booleans.h'
--- src/runtime/booleans/pregenerated/booleans.h	2012-04-24 12:39:38 +0000
+++ src/runtime/booleans/pregenerated/booleans.h	2012-05-02 06:48:21 +0000
@@ -1,144 +1,144 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-#ifndef ZORBA_RUNTIME_BOOLEANS_BOOLEANS_H
-#define ZORBA_RUNTIME_BOOLEANS_BOOLEANS_H
-
-
-#include "common/shared_types.h"
-
-
-
-#include "runtime/base/narybase.h"
-
-
-namespace zorba {
-
-/**
- * op:is-same-node
- * Author: Zorba Team
- */
-class IsSameNodeIterator : public NaryBaseIterator<IsSameNodeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(IsSameNodeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsSameNodeIterator,
-    NaryBaseIterator<IsSameNodeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<IsSameNodeIterator, PlanIteratorState>*)this);
-  }
-
-  IsSameNodeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<IsSameNodeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~IsSameNodeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * op:node-before
- * Author: Zorba Team
- */
-class NodeBeforeIterator : public NaryBaseIterator<NodeBeforeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(NodeBeforeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(NodeBeforeIterator,
-    NaryBaseIterator<NodeBeforeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<NodeBeforeIterator, PlanIteratorState>*)this);
-  }
-
-  NodeBeforeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<NodeBeforeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~NodeBeforeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * op:node-after
- * Author: Zorba Team
- */
-class NodeAfterIterator : public NaryBaseIterator<NodeAfterIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(NodeAfterIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(NodeAfterIterator,
-    NaryBaseIterator<NodeAfterIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<NodeAfterIterator, PlanIteratorState>*)this);
-  }
-
-  NodeAfterIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<NodeAfterIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~NodeAfterIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-}
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+#ifndef ZORBA_RUNTIME_BOOLEANS_BOOLEANS_H
+#define ZORBA_RUNTIME_BOOLEANS_BOOLEANS_H
+
+
+#include "common/shared_types.h"
+
+
+
+#include "runtime/base/narybase.h"
+
+
+namespace zorba {
+
+/**
+ * op:is-same-node
+ * Author: Zorba Team
+ */
+class IsSameNodeIterator : public NaryBaseIterator<IsSameNodeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(IsSameNodeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsSameNodeIterator,
+    NaryBaseIterator<IsSameNodeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<IsSameNodeIterator, PlanIteratorState>*)this);
+  }
+
+  IsSameNodeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<IsSameNodeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~IsSameNodeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * op:node-before
+ * Author: Zorba Team
+ */
+class NodeBeforeIterator : public NaryBaseIterator<NodeBeforeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(NodeBeforeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(NodeBeforeIterator,
+    NaryBaseIterator<NodeBeforeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<NodeBeforeIterator, PlanIteratorState>*)this);
+  }
+
+  NodeBeforeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<NodeBeforeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~NodeBeforeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * op:node-after
+ * Author: Zorba Team
+ */
+class NodeAfterIterator : public NaryBaseIterator<NodeAfterIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(NodeAfterIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(NodeAfterIterator,
+    NaryBaseIterator<NodeAfterIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<NodeAfterIterator, PlanIteratorState>*)this);
+  }
+
+  NodeAfterIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<NodeAfterIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~NodeAfterIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+}
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/runtime/collections/pregenerated/collections.cpp'
--- src/runtime/collections/pregenerated/collections.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/collections/pregenerated/collections.cpp	2012-05-02 06:48:21 +0000
@@ -1,803 +1,779 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-#include "stdafx.h"
-#include "zorbatypes/rchandle.h"
-#include "zorbatypes/zstring.h"
-#include "runtime/visitors/planiter_visitor.h"
-#include "runtime/collections/collections.h"
-#include "system/globalenv.h"
-
-
-#include "store/api/iterator.h"
-
-namespace zorba {
-
-// <FnCollectionIterator>
-FnCollectionIterator::class_factory<FnCollectionIterator>
-FnCollectionIterator::g_class_factory;
-
-
-void FnCollectionIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-FnCollectionIterator::~FnCollectionIterator() {}
-
-FnCollectionIteratorState::FnCollectionIteratorState() {}
-
-// </FnCollectionIterator>
-
-
-// <ZorbaCollectionIterator>
-ZorbaCollectionIterator::class_factory<ZorbaCollectionIterator>
-ZorbaCollectionIterator::g_class_factory;
-
-
-void ZorbaCollectionIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaCollectionIterator::~ZorbaCollectionIterator() {}
-
-ZorbaCollectionIteratorState::ZorbaCollectionIteratorState() {}
-
-// </ZorbaCollectionIterator>
-
-
-// <ZorbaIndexOfIterator>
-ZorbaIndexOfIterator::class_factory<ZorbaIndexOfIterator>
-ZorbaIndexOfIterator::g_class_factory;
-
-
-void ZorbaIndexOfIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaIndexOfIterator::~ZorbaIndexOfIterator() {}
-
-// </ZorbaIndexOfIterator>
-
-
-// <ZorbaCreateCollectionIterator>
-ZorbaCreateCollectionIterator::class_factory<ZorbaCreateCollectionIterator>
-ZorbaCreateCollectionIterator::g_class_factory;
-
-
-void ZorbaCreateCollectionIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaCreateCollectionIterator::~ZorbaCreateCollectionIterator() {}
-
-// </ZorbaCreateCollectionIterator>
-
-
-// <ZorbaDeleteCollectionIterator>
-ZorbaDeleteCollectionIterator::class_factory<ZorbaDeleteCollectionIterator>
-ZorbaDeleteCollectionIterator::g_class_factory;
-
-
-void ZorbaDeleteCollectionIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaDeleteCollectionIterator::~ZorbaDeleteCollectionIterator() {}
-
-// </ZorbaDeleteCollectionIterator>
-
-
-// <ZorbaInsertNodesIterator>
-ZorbaInsertNodesIterator::class_factory<ZorbaInsertNodesIterator>
-ZorbaInsertNodesIterator::g_class_factory;
-
-
-void ZorbaInsertNodesIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaInsertNodesIterator::~ZorbaInsertNodesIterator() {}
-
-// </ZorbaInsertNodesIterator>
-
-
-// <ZorbaInsertNodesFirstIterator>
-ZorbaInsertNodesFirstIterator::class_factory<ZorbaInsertNodesFirstIterator>
-ZorbaInsertNodesFirstIterator::g_class_factory;
-
-
-void ZorbaInsertNodesFirstIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaInsertNodesFirstIterator::~ZorbaInsertNodesFirstIterator() {}
-
-// </ZorbaInsertNodesFirstIterator>
-
-
-// <ZorbaInsertNodesLastIterator>
-ZorbaInsertNodesLastIterator::class_factory<ZorbaInsertNodesLastIterator>
-ZorbaInsertNodesLastIterator::g_class_factory;
-
-
-void ZorbaInsertNodesLastIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaInsertNodesLastIterator::~ZorbaInsertNodesLastIterator() {}
-
-// </ZorbaInsertNodesLastIterator>
-
-
-// <ZorbaInsertNodesBeforeIterator>
-ZorbaInsertNodesBeforeIterator::class_factory<ZorbaInsertNodesBeforeIterator>
-ZorbaInsertNodesBeforeIterator::g_class_factory;
-
-
-void ZorbaInsertNodesBeforeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaInsertNodesBeforeIterator::~ZorbaInsertNodesBeforeIterator() {}
-
-// </ZorbaInsertNodesBeforeIterator>
-
-
-// <ZorbaInsertNodesAfterIterator>
-ZorbaInsertNodesAfterIterator::class_factory<ZorbaInsertNodesAfterIterator>
-ZorbaInsertNodesAfterIterator::g_class_factory;
-
-
-void ZorbaInsertNodesAfterIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaInsertNodesAfterIterator::~ZorbaInsertNodesAfterIterator() {}
-
-// </ZorbaInsertNodesAfterIterator>
-
-
-// <ZorbaApplyInsertNodesIterator>
-ZorbaApplyInsertNodesIterator::class_factory<ZorbaApplyInsertNodesIterator>
-ZorbaApplyInsertNodesIterator::g_class_factory;
-
-
-void ZorbaApplyInsertNodesIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaApplyInsertNodesIterator::~ZorbaApplyInsertNodesIterator() {}
-
-ZorbaApplyInsertNodesIteratorState::ZorbaApplyInsertNodesIteratorState() {}
-
-// </ZorbaApplyInsertNodesIterator>
-
-
-// <ZorbaApplyInsertNodesFirstIterator>
-ZorbaApplyInsertNodesFirstIterator::class_factory<ZorbaApplyInsertNodesFirstIterator>
-ZorbaApplyInsertNodesFirstIterator::g_class_factory;
-
-
-void ZorbaApplyInsertNodesFirstIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaApplyInsertNodesFirstIterator::~ZorbaApplyInsertNodesFirstIterator() {}
-
-ZorbaApplyInsertNodesFirstIteratorState::ZorbaApplyInsertNodesFirstIteratorState() {}
-
-// </ZorbaApplyInsertNodesFirstIterator>
-
-
-// <ZorbaApplyInsertNodesLastIterator>
-ZorbaApplyInsertNodesLastIterator::class_factory<ZorbaApplyInsertNodesLastIterator>
-ZorbaApplyInsertNodesLastIterator::g_class_factory;
-
-
-void ZorbaApplyInsertNodesLastIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaApplyInsertNodesLastIterator::~ZorbaApplyInsertNodesLastIterator() {}
-
-ZorbaApplyInsertNodesLastIteratorState::ZorbaApplyInsertNodesLastIteratorState() {}
-
-// </ZorbaApplyInsertNodesLastIterator>
-
-
-// <ZorbaApplyInsertNodesBeforeIterator>
-ZorbaApplyInsertNodesBeforeIterator::class_factory<ZorbaApplyInsertNodesBeforeIterator>
-ZorbaApplyInsertNodesBeforeIterator::g_class_factory;
-
-
-void ZorbaApplyInsertNodesBeforeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaApplyInsertNodesBeforeIterator::~ZorbaApplyInsertNodesBeforeIterator() {}
-
-ZorbaApplyInsertNodesBeforeIteratorState::ZorbaApplyInsertNodesBeforeIteratorState() {}
-
-// </ZorbaApplyInsertNodesBeforeIterator>
-
-
-// <ZorbaApplyInsertNodesAfterIterator>
-ZorbaApplyInsertNodesAfterIterator::class_factory<ZorbaApplyInsertNodesAfterIterator>
-ZorbaApplyInsertNodesAfterIterator::g_class_factory;
-
-
-void ZorbaApplyInsertNodesAfterIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaApplyInsertNodesAfterIterator::~ZorbaApplyInsertNodesAfterIterator() {}
-
-ZorbaApplyInsertNodesAfterIteratorState::ZorbaApplyInsertNodesAfterIteratorState() {}
-
-// </ZorbaApplyInsertNodesAfterIterator>
-
-
-// <ZorbaDeleteNodesIterator>
-ZorbaDeleteNodesIterator::class_factory<ZorbaDeleteNodesIterator>
-ZorbaDeleteNodesIterator::g_class_factory;
-
-
-void ZorbaDeleteNodesIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaDeleteNodesIterator::~ZorbaDeleteNodesIterator() {}
-
-// </ZorbaDeleteNodesIterator>
-
-
-// <ZorbaDeleteNodesFirstIterator>
-ZorbaDeleteNodesFirstIterator::class_factory<ZorbaDeleteNodesFirstIterator>
-ZorbaDeleteNodesFirstIterator::g_class_factory;
-
-
-void ZorbaDeleteNodesFirstIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaDeleteNodesFirstIterator::~ZorbaDeleteNodesFirstIterator() {}
-
-// </ZorbaDeleteNodesFirstIterator>
-
-
-// <ZorbaDeleteNodesLastIterator>
-ZorbaDeleteNodesLastIterator::class_factory<ZorbaDeleteNodesLastIterator>
-ZorbaDeleteNodesLastIterator::g_class_factory;
-
-
-void ZorbaDeleteNodesLastIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaDeleteNodesLastIterator::~ZorbaDeleteNodesLastIterator() {}
-
-// </ZorbaDeleteNodesLastIterator>
-
-
-// <ZorbaTruncateCollectionIterator>
-ZorbaTruncateCollectionIterator::class_factory<ZorbaTruncateCollectionIterator>
-ZorbaTruncateCollectionIterator::g_class_factory;
-
-
-void ZorbaTruncateCollectionIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaTruncateCollectionIterator::~ZorbaTruncateCollectionIterator() {}
-
-// </ZorbaTruncateCollectionIterator>
-
-
-// <ZorbaCollectionNameIterator>
-ZorbaCollectionNameIterator::class_factory<ZorbaCollectionNameIterator>
-ZorbaCollectionNameIterator::g_class_factory;
-
-
-void ZorbaCollectionNameIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ZorbaCollectionNameIterator::~ZorbaCollectionNameIterator() {}
-
-// </ZorbaCollectionNameIterator>
-
-
-// <IsAvailableCollectionIterator>
-IsAvailableCollectionIterator::class_factory<IsAvailableCollectionIterator>
-IsAvailableCollectionIterator::g_class_factory;
-
-
-void IsAvailableCollectionIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-IsAvailableCollectionIterator::~IsAvailableCollectionIterator() {}
-
-// </IsAvailableCollectionIterator>
-
-
-// <AvailableCollectionsIterator>
-AvailableCollectionsIterator::class_factory<AvailableCollectionsIterator>
-AvailableCollectionsIterator::g_class_factory;
-
-
-void AvailableCollectionsIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-AvailableCollectionsIterator::~AvailableCollectionsIterator() {}
-
-AvailableCollectionsIteratorState::AvailableCollectionsIteratorState() {}
-
-// </AvailableCollectionsIterator>
-
-
-// <IsAvailableIndexIterator>
-IsAvailableIndexIterator::class_factory<IsAvailableIndexIterator>
-IsAvailableIndexIterator::g_class_factory;
-
-
-void IsAvailableIndexIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-IsAvailableIndexIterator::~IsAvailableIndexIterator() {}
-
-// </IsAvailableIndexIterator>
-
-
-// <AvailableIndexesIterator>
-AvailableIndexesIterator::class_factory<AvailableIndexesIterator>
-AvailableIndexesIterator::g_class_factory;
-
-
-void AvailableIndexesIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-AvailableIndexesIterator::~AvailableIndexesIterator() {}
-
-AvailableIndexesIteratorState::AvailableIndexesIteratorState() {}
-
-// </AvailableIndexesIterator>
-
-
-// <IsActivatedICIterator>
-IsActivatedICIterator::class_factory<IsActivatedICIterator>
-IsActivatedICIterator::g_class_factory;
-
-
-void IsActivatedICIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-IsActivatedICIterator::~IsActivatedICIterator() {}
-
-// </IsActivatedICIterator>
-
-
-// <ActivatedICsIterator>
-ActivatedICsIterator::class_factory<ActivatedICsIterator>
-ActivatedICsIterator::g_class_factory;
-
-
-void ActivatedICsIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ActivatedICsIterator::~ActivatedICsIterator() {}
-
-ActivatedICsIteratorState::ActivatedICsIteratorState() {}
-
-// </ActivatedICsIterator>
-
-
-// <IsDeclaredCollectionIterator>
-IsDeclaredCollectionIterator::class_factory<IsDeclaredCollectionIterator>
-IsDeclaredCollectionIterator::g_class_factory;
-
-
-void IsDeclaredCollectionIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-IsDeclaredCollectionIterator::~IsDeclaredCollectionIterator() {}
-
-// </IsDeclaredCollectionIterator>
-
-
-// <DeclaredCollectionsIterator>
-DeclaredCollectionsIterator::class_factory<DeclaredCollectionsIterator>
-DeclaredCollectionsIterator::g_class_factory;
-
-
-void DeclaredCollectionsIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-DeclaredCollectionsIterator::~DeclaredCollectionsIterator() {}
-
-DeclaredCollectionsIteratorState::DeclaredCollectionsIteratorState() {}
-
-// </DeclaredCollectionsIterator>
-
-
-// <IsDeclaredIndexIterator>
-IsDeclaredIndexIterator::class_factory<IsDeclaredIndexIterator>
-IsDeclaredIndexIterator::g_class_factory;
-
-
-void IsDeclaredIndexIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-IsDeclaredIndexIterator::~IsDeclaredIndexIterator() {}
-
-// </IsDeclaredIndexIterator>
-
-
-// <DeclaredIndexesIterator>
-DeclaredIndexesIterator::class_factory<DeclaredIndexesIterator>
-DeclaredIndexesIterator::g_class_factory;
-
-
-void DeclaredIndexesIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-DeclaredIndexesIterator::~DeclaredIndexesIterator() {}
-
-DeclaredIndexesIteratorState::DeclaredIndexesIteratorState() {}
-
-
-void DeclaredIndexesIteratorState::init(PlanState& planState) {
-  PlanIteratorState::init(planState);
-  nameItState = NULL;
-}
-// </DeclaredIndexesIterator>
-
-
-// <IsDeclaredICIterator>
-IsDeclaredICIterator::class_factory<IsDeclaredICIterator>
-IsDeclaredICIterator::g_class_factory;
-
-
-void IsDeclaredICIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-IsDeclaredICIterator::~IsDeclaredICIterator() {}
-
-// </IsDeclaredICIterator>
-
-
-// <DeclaredICsIterator>
-DeclaredICsIterator::class_factory<DeclaredICsIterator>
-DeclaredICsIterator::g_class_factory;
-
-
-void DeclaredICsIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-DeclaredICsIterator::~DeclaredICsIterator() {}
-
-DeclaredICsIteratorState::DeclaredICsIteratorState() {}
-
-
-void DeclaredICsIteratorState::init(PlanState& planState) {
-  PlanIteratorState::init(planState);
-  nameItState = NULL;
-}
-// </DeclaredICsIterator>
-
-
-// <FnURICollectionIterator>
-FnURICollectionIterator::class_factory<FnURICollectionIterator>
-FnURICollectionIterator::g_class_factory;
-
-
-void FnURICollectionIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-FnURICollectionIterator::~FnURICollectionIterator() {}
-
-FnURICollectionIteratorState::FnURICollectionIteratorState() {}
-
-// </FnURICollectionIterator>
-
-
-
-}
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+#include "stdafx.h"
+#include "zorbatypes/rchandle.h"
+#include "zorbatypes/zstring.h"
+#include "runtime/visitors/planiter_visitor.h"
+#include "runtime/collections/collections.h"
+#include "system/globalenv.h"
+
+
+#include "store/api/iterator.h"
+
+namespace zorba {
+
+// <FnCollectionIterator>
+FnCollectionIterator::class_factory<FnCollectionIterator>
+FnCollectionIterator::g_class_factory;
+
+
+void FnCollectionIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+FnCollectionIterator::~FnCollectionIterator() {}
+
+FnCollectionIteratorState::FnCollectionIteratorState() {}
+
+// </FnCollectionIterator>
+
+
+// <ZorbaCollectionIterator>
+ZorbaCollectionIterator::class_factory<ZorbaCollectionIterator>
+ZorbaCollectionIterator::g_class_factory;
+
+
+void ZorbaCollectionIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaCollectionIterator::~ZorbaCollectionIterator() {}
+
+ZorbaCollectionIteratorState::ZorbaCollectionIteratorState() {}
+
+// </ZorbaCollectionIterator>
+
+
+// <ZorbaIndexOfIterator>
+ZorbaIndexOfIterator::class_factory<ZorbaIndexOfIterator>
+ZorbaIndexOfIterator::g_class_factory;
+
+
+void ZorbaIndexOfIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaIndexOfIterator::~ZorbaIndexOfIterator() {}
+
+// </ZorbaIndexOfIterator>
+
+
+// <ZorbaCreateCollectionIterator>
+ZorbaCreateCollectionIterator::class_factory<ZorbaCreateCollectionIterator>
+ZorbaCreateCollectionIterator::g_class_factory;
+
+
+void ZorbaCreateCollectionIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaCreateCollectionIterator::~ZorbaCreateCollectionIterator() {}
+
+// </ZorbaCreateCollectionIterator>
+
+
+// <ZorbaDeleteCollectionIterator>
+ZorbaDeleteCollectionIterator::class_factory<ZorbaDeleteCollectionIterator>
+ZorbaDeleteCollectionIterator::g_class_factory;
+
+
+void ZorbaDeleteCollectionIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaDeleteCollectionIterator::~ZorbaDeleteCollectionIterator() {}
+
+// </ZorbaDeleteCollectionIterator>
+
+
+// <ZorbaInsertNodesIterator>
+ZorbaInsertNodesIterator::class_factory<ZorbaInsertNodesIterator>
+ZorbaInsertNodesIterator::g_class_factory;
+
+
+void ZorbaInsertNodesIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaInsertNodesIterator::~ZorbaInsertNodesIterator() {}
+
+// </ZorbaInsertNodesIterator>
+
+
+// <ZorbaInsertNodesFirstIterator>
+ZorbaInsertNodesFirstIterator::class_factory<ZorbaInsertNodesFirstIterator>
+ZorbaInsertNodesFirstIterator::g_class_factory;
+
+
+void ZorbaInsertNodesFirstIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaInsertNodesFirstIterator::~ZorbaInsertNodesFirstIterator() {}
+
+// </ZorbaInsertNodesFirstIterator>
+
+
+// <ZorbaInsertNodesLastIterator>
+ZorbaInsertNodesLastIterator::class_factory<ZorbaInsertNodesLastIterator>
+ZorbaInsertNodesLastIterator::g_class_factory;
+
+
+void ZorbaInsertNodesLastIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaInsertNodesLastIterator::~ZorbaInsertNodesLastIterator() {}
+
+// </ZorbaInsertNodesLastIterator>
+
+
+// <ZorbaInsertNodesBeforeIterator>
+ZorbaInsertNodesBeforeIterator::class_factory<ZorbaInsertNodesBeforeIterator>
+ZorbaInsertNodesBeforeIterator::g_class_factory;
+
+
+void ZorbaInsertNodesBeforeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaInsertNodesBeforeIterator::~ZorbaInsertNodesBeforeIterator() {}
+
+// </ZorbaInsertNodesBeforeIterator>
+
+
+// <ZorbaInsertNodesAfterIterator>
+ZorbaInsertNodesAfterIterator::class_factory<ZorbaInsertNodesAfterIterator>
+ZorbaInsertNodesAfterIterator::g_class_factory;
+
+
+void ZorbaInsertNodesAfterIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaInsertNodesAfterIterator::~ZorbaInsertNodesAfterIterator() {}
+
+// </ZorbaInsertNodesAfterIterator>
+
+
+// <ZorbaApplyInsertNodesIterator>
+ZorbaApplyInsertNodesIterator::class_factory<ZorbaApplyInsertNodesIterator>
+ZorbaApplyInsertNodesIterator::g_class_factory;
+
+
+void ZorbaApplyInsertNodesIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaApplyInsertNodesIterator::~ZorbaApplyInsertNodesIterator() {}
+
+ZorbaApplyInsertNodesIteratorState::ZorbaApplyInsertNodesIteratorState() {}
+
+// </ZorbaApplyInsertNodesIterator>
+
+
+// <ZorbaApplyInsertNodesFirstIterator>
+ZorbaApplyInsertNodesFirstIterator::class_factory<ZorbaApplyInsertNodesFirstIterator>
+ZorbaApplyInsertNodesFirstIterator::g_class_factory;
+
+
+void ZorbaApplyInsertNodesFirstIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaApplyInsertNodesFirstIterator::~ZorbaApplyInsertNodesFirstIterator() {}
+
+ZorbaApplyInsertNodesFirstIteratorState::ZorbaApplyInsertNodesFirstIteratorState() {}
+
+// </ZorbaApplyInsertNodesFirstIterator>
+
+
+// <ZorbaApplyInsertNodesLastIterator>
+ZorbaApplyInsertNodesLastIterator::class_factory<ZorbaApplyInsertNodesLastIterator>
+ZorbaApplyInsertNodesLastIterator::g_class_factory;
+
+
+void ZorbaApplyInsertNodesLastIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaApplyInsertNodesLastIterator::~ZorbaApplyInsertNodesLastIterator() {}
+
+ZorbaApplyInsertNodesLastIteratorState::ZorbaApplyInsertNodesLastIteratorState() {}
+
+// </ZorbaApplyInsertNodesLastIterator>
+
+
+// <ZorbaApplyInsertNodesBeforeIterator>
+ZorbaApplyInsertNodesBeforeIterator::class_factory<ZorbaApplyInsertNodesBeforeIterator>
+ZorbaApplyInsertNodesBeforeIterator::g_class_factory;
+
+
+void ZorbaApplyInsertNodesBeforeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaApplyInsertNodesBeforeIterator::~ZorbaApplyInsertNodesBeforeIterator() {}
+
+ZorbaApplyInsertNodesBeforeIteratorState::ZorbaApplyInsertNodesBeforeIteratorState() {}
+
+// </ZorbaApplyInsertNodesBeforeIterator>
+
+
+// <ZorbaApplyInsertNodesAfterIterator>
+ZorbaApplyInsertNodesAfterIterator::class_factory<ZorbaApplyInsertNodesAfterIterator>
+ZorbaApplyInsertNodesAfterIterator::g_class_factory;
+
+
+void ZorbaApplyInsertNodesAfterIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaApplyInsertNodesAfterIterator::~ZorbaApplyInsertNodesAfterIterator() {}
+
+ZorbaApplyInsertNodesAfterIteratorState::ZorbaApplyInsertNodesAfterIteratorState() {}
+
+// </ZorbaApplyInsertNodesAfterIterator>
+
+
+// <ZorbaDeleteNodesIterator>
+ZorbaDeleteNodesIterator::class_factory<ZorbaDeleteNodesIterator>
+ZorbaDeleteNodesIterator::g_class_factory;
+
+
+void ZorbaDeleteNodesIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaDeleteNodesIterator::~ZorbaDeleteNodesIterator() {}
+
+// </ZorbaDeleteNodesIterator>
+
+
+// <ZorbaDeleteNodesFirstIterator>
+ZorbaDeleteNodesFirstIterator::class_factory<ZorbaDeleteNodesFirstIterator>
+ZorbaDeleteNodesFirstIterator::g_class_factory;
+
+
+void ZorbaDeleteNodesFirstIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaDeleteNodesFirstIterator::~ZorbaDeleteNodesFirstIterator() {}
+
+// </ZorbaDeleteNodesFirstIterator>
+
+
+// <ZorbaDeleteNodesLastIterator>
+ZorbaDeleteNodesLastIterator::class_factory<ZorbaDeleteNodesLastIterator>
+ZorbaDeleteNodesLastIterator::g_class_factory;
+
+
+void ZorbaDeleteNodesLastIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaDeleteNodesLastIterator::~ZorbaDeleteNodesLastIterator() {}
+
+// </ZorbaDeleteNodesLastIterator>
+
+
+// <ZorbaTruncateCollectionIterator>
+ZorbaTruncateCollectionIterator::class_factory<ZorbaTruncateCollectionIterator>
+ZorbaTruncateCollectionIterator::g_class_factory;
+
+
+void ZorbaTruncateCollectionIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaTruncateCollectionIterator::~ZorbaTruncateCollectionIterator() {}
+
+// </ZorbaTruncateCollectionIterator>
+
+
+// <ZorbaCollectionNameIterator>
+ZorbaCollectionNameIterator::class_factory<ZorbaCollectionNameIterator>
+ZorbaCollectionNameIterator::g_class_factory;
+
+
+void ZorbaCollectionNameIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ZorbaCollectionNameIterator::~ZorbaCollectionNameIterator() {}
+
+// </ZorbaCollectionNameIterator>
+
+
+// <IsAvailableCollectionIterator>
+IsAvailableCollectionIterator::class_factory<IsAvailableCollectionIterator>
+IsAvailableCollectionIterator::g_class_factory;
+
+
+void IsAvailableCollectionIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+IsAvailableCollectionIterator::~IsAvailableCollectionIterator() {}
+
+// </IsAvailableCollectionIterator>
+
+
+// <AvailableCollectionsIterator>
+AvailableCollectionsIterator::class_factory<AvailableCollectionsIterator>
+AvailableCollectionsIterator::g_class_factory;
+
+
+void AvailableCollectionsIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+AvailableCollectionsIterator::~AvailableCollectionsIterator() {}
+
+AvailableCollectionsIteratorState::AvailableCollectionsIteratorState() {}
+
+// </AvailableCollectionsIterator>
+
+
+// <IsAvailableIndexIterator>
+IsAvailableIndexIterator::class_factory<IsAvailableIndexIterator>
+IsAvailableIndexIterator::g_class_factory;
+
+
+void IsAvailableIndexIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+IsAvailableIndexIterator::~IsAvailableIndexIterator() {}
+
+// </IsAvailableIndexIterator>
+
+
+// <AvailableIndexesIterator>
+AvailableIndexesIterator::class_factory<AvailableIndexesIterator>
+AvailableIndexesIterator::g_class_factory;
+
+
+void AvailableIndexesIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+AvailableIndexesIterator::~AvailableIndexesIterator() {}
+
+AvailableIndexesIteratorState::AvailableIndexesIteratorState() {}
+
+// </AvailableIndexesIterator>
+
+
+// <IsActivatedICIterator>
+IsActivatedICIterator::class_factory<IsActivatedICIterator>
+IsActivatedICIterator::g_class_factory;
+
+
+void IsActivatedICIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+IsActivatedICIterator::~IsActivatedICIterator() {}
+
+// </IsActivatedICIterator>
+
+
+// <ActivatedICsIterator>
+ActivatedICsIterator::class_factory<ActivatedICsIterator>
+ActivatedICsIterator::g_class_factory;
+
+
+void ActivatedICsIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ActivatedICsIterator::~ActivatedICsIterator() {}
+
+ActivatedICsIteratorState::ActivatedICsIteratorState() {}
+
+// </ActivatedICsIterator>
+
+
+// <IsDeclaredCollectionIterator>
+IsDeclaredCollectionIterator::class_factory<IsDeclaredCollectionIterator>
+IsDeclaredCollectionIterator::g_class_factory;
+
+
+void IsDeclaredCollectionIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+IsDeclaredCollectionIterator::~IsDeclaredCollectionIterator() {}
+
+// </IsDeclaredCollectionIterator>
+
+
+// <DeclaredCollectionsIterator>
+DeclaredCollectionsIterator::class_factory<DeclaredCollectionsIterator>
+DeclaredCollectionsIterator::g_class_factory;
+
+
+void DeclaredCollectionsIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+DeclaredCollectionsIterator::~DeclaredCollectionsIterator() {}
+
+DeclaredCollectionsIteratorState::DeclaredCollectionsIteratorState() {}
+
+// </DeclaredCollectionsIterator>
+
+
+// <IsDeclaredIndexIterator>
+IsDeclaredIndexIterator::class_factory<IsDeclaredIndexIterator>
+IsDeclaredIndexIterator::g_class_factory;
+
+
+void IsDeclaredIndexIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+IsDeclaredIndexIterator::~IsDeclaredIndexIterator() {}
+
+// </IsDeclaredIndexIterator>
+
+
+// <DeclaredIndexesIterator>
+DeclaredIndexesIterator::class_factory<DeclaredIndexesIterator>
+DeclaredIndexesIterator::g_class_factory;
+
+
+void DeclaredIndexesIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+DeclaredIndexesIterator::~DeclaredIndexesIterator() {}
+
+DeclaredIndexesIteratorState::DeclaredIndexesIteratorState() {}
+
+
+void DeclaredIndexesIteratorState::init(PlanState& planState) {
+  PlanIteratorState::init(planState);
+  nameItState = NULL;
+}
+// </DeclaredIndexesIterator>
+
+
+// <IsDeclaredICIterator>
+IsDeclaredICIterator::class_factory<IsDeclaredICIterator>
+IsDeclaredICIterator::g_class_factory;
+
+
+void IsDeclaredICIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+IsDeclaredICIterator::~IsDeclaredICIterator() {}
+
+// </IsDeclaredICIterator>
+
+
+// <DeclaredICsIterator>
+DeclaredICsIterator::class_factory<DeclaredICsIterator>
+DeclaredICsIterator::g_class_factory;
+
+
+void DeclaredICsIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+DeclaredICsIterator::~DeclaredICsIterator() {}
+
+DeclaredICsIteratorState::DeclaredICsIteratorState() {}
+
+
+void DeclaredICsIteratorState::init(PlanState& planState) {
+  PlanIteratorState::init(planState);
+  nameItState = NULL;
+}
+// </DeclaredICsIterator>
+
+
+
+}
+
+

=== modified file 'src/runtime/collections/pregenerated/collections.h'
--- src/runtime/collections/pregenerated/collections.h	2012-04-24 12:39:38 +0000
+++ src/runtime/collections/pregenerated/collections.h	2012-05-02 06:48:21 +0000
@@ -1,1527 +1,1476 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-#ifndef ZORBA_RUNTIME_COLLECTIONS_COLLECTIONS_H
-#define ZORBA_RUNTIME_COLLECTIONS_COLLECTIONS_H
-
-
-#include "common/shared_types.h"
-
-
-
-#include "runtime/base/narybase.h"
-#include "runtime/collections/collections_base.h"
-
-
-namespace zorba {
-class StaticallyKnownCollection;
-/**
- * 
- *      fn:collection
- *    
- * Author: Zorba Team
- */
-class FnCollectionIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t theIterator; //the current iterator
-  bool theIteratorOpened; //flag indicating whether theIterator was opened
-
-  FnCollectionIteratorState();
-
-  ~FnCollectionIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class FnCollectionIterator : public NaryBaseIterator<FnCollectionIterator, FnCollectionIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(FnCollectionIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(FnCollectionIterator,
-    NaryBaseIterator<FnCollectionIterator, FnCollectionIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<FnCollectionIterator, FnCollectionIteratorState>*)this);
-  }
-
-  FnCollectionIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<FnCollectionIterator, FnCollectionIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~FnCollectionIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:collection
- *    
- * Author: Zorba Team
- */
-class ZorbaCollectionIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t theIterator; //the current iterator
-  bool theIteratorOpened; //flag indicating whether theIterator was opened
-
-  ZorbaCollectionIteratorState();
-
-  ~ZorbaCollectionIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class ZorbaCollectionIterator : public NaryBaseIterator<ZorbaCollectionIterator, ZorbaCollectionIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(ZorbaCollectionIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaCollectionIterator,
-    NaryBaseIterator<ZorbaCollectionIterator, ZorbaCollectionIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ZorbaCollectionIterator, ZorbaCollectionIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  ZorbaCollectionIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<ZorbaCollectionIterator, ZorbaCollectionIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~ZorbaCollectionIterator();
-
-  bool isDynamic() const { return theDynamicCollection; }
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:index-of
- *    
- * Author: Zorba Team
- */
-class ZorbaIndexOfIterator : public NaryBaseIterator<ZorbaIndexOfIterator, PlanIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(ZorbaIndexOfIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaIndexOfIterator,
-    NaryBaseIterator<ZorbaIndexOfIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ZorbaIndexOfIterator, PlanIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  ZorbaIndexOfIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<ZorbaIndexOfIterator, PlanIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~ZorbaIndexOfIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:create
- *    
- * Author: Zorba Team
- */
-class ZorbaCreateCollectionIterator : public NaryBaseIterator<ZorbaCreateCollectionIterator, PlanIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(ZorbaCreateCollectionIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaCreateCollectionIterator,
-    NaryBaseIterator<ZorbaCreateCollectionIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ZorbaCreateCollectionIterator, PlanIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  ZorbaCreateCollectionIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<ZorbaCreateCollectionIterator, PlanIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~ZorbaCreateCollectionIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:delete
- *    
- * Author: Zorba Team
- */
-class ZorbaDeleteCollectionIterator : public NaryBaseIterator<ZorbaDeleteCollectionIterator, PlanIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(ZorbaDeleteCollectionIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaDeleteCollectionIterator,
-    NaryBaseIterator<ZorbaDeleteCollectionIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ZorbaDeleteCollectionIterator, PlanIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  ZorbaDeleteCollectionIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<ZorbaDeleteCollectionIterator, PlanIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~ZorbaDeleteCollectionIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:insert-nodes
- *    
- * Author: Zorba Team
- */
-class ZorbaInsertNodesIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaInsertNodesIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesIterator,
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesIterator, PlanIteratorState>*)this);
-  }
-
-  ZorbaInsertNodesIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection)
-  {}
-
-  virtual ~ZorbaInsertNodesIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:insert-nodes-first
- *    
- * Author: Zorba Team
- */
-class ZorbaInsertNodesFirstIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesFirstIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaInsertNodesFirstIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesFirstIterator,
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesFirstIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesFirstIterator, PlanIteratorState>*)this);
-  }
-
-  ZorbaInsertNodesFirstIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesFirstIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection)
-  {}
-
-  virtual ~ZorbaInsertNodesFirstIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:insert-nodes-last
- *    
- * Author: Zorba Team
- */
-class ZorbaInsertNodesLastIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesLastIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaInsertNodesLastIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesLastIterator,
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesLastIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesLastIterator, PlanIteratorState>*)this);
-  }
-
-  ZorbaInsertNodesLastIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesLastIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection)
-  {}
-
-  virtual ~ZorbaInsertNodesLastIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:insert-nodes-before
- *    
- * Author: Zorba Team
- */
-class ZorbaInsertNodesBeforeIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesBeforeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaInsertNodesBeforeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesBeforeIterator,
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesBeforeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesBeforeIterator, PlanIteratorState>*)this);
-  }
-
-  ZorbaInsertNodesBeforeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesBeforeIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection)
-  {}
-
-  virtual ~ZorbaInsertNodesBeforeIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:insert-nodes-after
- *    
- * Author: Zorba Team
- */
-class ZorbaInsertNodesAfterIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesAfterIterator, PlanIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(ZorbaInsertNodesAfterIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesAfterIterator,
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesAfterIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesAfterIterator, PlanIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  ZorbaInsertNodesAfterIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaInsertNodesAfterIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~ZorbaInsertNodesAfterIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:apply-insert-nodes
- *    
- * Author: Zorba Team
- */
-class ZorbaApplyInsertNodesIteratorState : public PlanIteratorState
-{
-public:
-  std::vector<store::Item_t> nodes; //the nodes that have been inserted
-  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
-
-  ZorbaApplyInsertNodesIteratorState();
-
-  ~ZorbaApplyInsertNodesIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class ZorbaApplyInsertNodesIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesIterator, ZorbaApplyInsertNodesIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesIterator,
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesIterator, ZorbaApplyInsertNodesIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesIterator, ZorbaApplyInsertNodesIteratorState>*)this);
-  }
-
-  ZorbaApplyInsertNodesIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesIterator, ZorbaApplyInsertNodesIteratorState>(sctx, loc, children, aDynamicCollection)
-  {}
-
-  virtual ~ZorbaApplyInsertNodesIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:apply-insertnodes-first
- *    
- * Author: Zorba Team
- */
-class ZorbaApplyInsertNodesFirstIteratorState : public PlanIteratorState
-{
-public:
-  std::vector<store::Item_t> nodes; //the nodes that have been inserted
-  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
-
-  ZorbaApplyInsertNodesFirstIteratorState();
-
-  ~ZorbaApplyInsertNodesFirstIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class ZorbaApplyInsertNodesFirstIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesFirstIterator, ZorbaApplyInsertNodesFirstIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesFirstIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesFirstIterator,
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesFirstIterator, ZorbaApplyInsertNodesFirstIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesFirstIterator, ZorbaApplyInsertNodesFirstIteratorState>*)this);
-  }
-
-  ZorbaApplyInsertNodesFirstIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesFirstIterator, ZorbaApplyInsertNodesFirstIteratorState>(sctx, loc, children, aDynamicCollection)
-  {}
-
-  virtual ~ZorbaApplyInsertNodesFirstIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:apply-insertnodes-last
- *    
- * Author: Zorba Team
- */
-class ZorbaApplyInsertNodesLastIteratorState : public PlanIteratorState
-{
-public:
-  std::vector<store::Item_t> nodes; //the nodes that have been inserted
-  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
-
-  ZorbaApplyInsertNodesLastIteratorState();
-
-  ~ZorbaApplyInsertNodesLastIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class ZorbaApplyInsertNodesLastIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesLastIterator, ZorbaApplyInsertNodesLastIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesLastIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesLastIterator,
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesLastIterator, ZorbaApplyInsertNodesLastIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesLastIterator, ZorbaApplyInsertNodesLastIteratorState>*)this);
-  }
-
-  ZorbaApplyInsertNodesLastIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesLastIterator, ZorbaApplyInsertNodesLastIteratorState>(sctx, loc, children, aDynamicCollection)
-  {}
-
-  virtual ~ZorbaApplyInsertNodesLastIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:apply-insert-nodes-before
- *    
- * Author: Zorba Team
- */
-class ZorbaApplyInsertNodesBeforeIteratorState : public PlanIteratorState
-{
-public:
-  std::vector<store::Item_t> nodes; //the nodes that have been inserted
-  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
-
-  ZorbaApplyInsertNodesBeforeIteratorState();
-
-  ~ZorbaApplyInsertNodesBeforeIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class ZorbaApplyInsertNodesBeforeIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesBeforeIterator, ZorbaApplyInsertNodesBeforeIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesBeforeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesBeforeIterator,
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesBeforeIterator, ZorbaApplyInsertNodesBeforeIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesBeforeIterator, ZorbaApplyInsertNodesBeforeIteratorState>*)this);
-  }
-
-  ZorbaApplyInsertNodesBeforeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesBeforeIterator, ZorbaApplyInsertNodesBeforeIteratorState>(sctx, loc, children, aDynamicCollection)
-  {}
-
-  virtual ~ZorbaApplyInsertNodesBeforeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:apply-insertnodes-after
- *    
- * Author: Zorba Team
- */
-class ZorbaApplyInsertNodesAfterIteratorState : public PlanIteratorState
-{
-public:
-  std::vector<store::Item_t> nodes; //the nodes that have been inserted
-  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
-
-  ZorbaApplyInsertNodesAfterIteratorState();
-
-  ~ZorbaApplyInsertNodesAfterIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class ZorbaApplyInsertNodesAfterIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesAfterIterator, ZorbaApplyInsertNodesAfterIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesAfterIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesAfterIterator,
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesAfterIterator, ZorbaApplyInsertNodesAfterIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesAfterIterator, ZorbaApplyInsertNodesAfterIteratorState>*)this);
-  }
-
-  ZorbaApplyInsertNodesAfterIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesAfterIterator, ZorbaApplyInsertNodesAfterIteratorState>(sctx, loc, children, aDynamicCollection)
-  {}
-
-  virtual ~ZorbaApplyInsertNodesAfterIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:delete-nodes
- *    
- * Author: Zorba Team
- */
-class ZorbaDeleteNodesIterator : public NaryBaseIterator<ZorbaDeleteNodesIterator, PlanIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(ZorbaDeleteNodesIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaDeleteNodesIterator,
-    NaryBaseIterator<ZorbaDeleteNodesIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ZorbaDeleteNodesIterator, PlanIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  ZorbaDeleteNodesIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<ZorbaDeleteNodesIterator, PlanIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~ZorbaDeleteNodesIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:delete-node-first
- *    
- * Author: Zorba Team
- */
-class ZorbaDeleteNodesFirstIterator : public NaryBaseIterator<ZorbaDeleteNodesFirstIterator, PlanIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(ZorbaDeleteNodesFirstIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaDeleteNodesFirstIterator,
-    NaryBaseIterator<ZorbaDeleteNodesFirstIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ZorbaDeleteNodesFirstIterator, PlanIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  ZorbaDeleteNodesFirstIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<ZorbaDeleteNodesFirstIterator, PlanIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~ZorbaDeleteNodesFirstIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:delete-node-last
- *    
- * Author: Zorba Team
- */
-class ZorbaDeleteNodesLastIterator : public NaryBaseIterator<ZorbaDeleteNodesLastIterator, PlanIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(ZorbaDeleteNodesLastIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaDeleteNodesLastIterator,
-    NaryBaseIterator<ZorbaDeleteNodesLastIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ZorbaDeleteNodesLastIterator, PlanIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  ZorbaDeleteNodesLastIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<ZorbaDeleteNodesLastIterator, PlanIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~ZorbaDeleteNodesLastIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:truncate
- *    
- * Author: Zorba Team
- */
-class ZorbaTruncateCollectionIterator : public NaryBaseIterator<ZorbaTruncateCollectionIterator, PlanIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(ZorbaTruncateCollectionIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaTruncateCollectionIterator,
-    NaryBaseIterator<ZorbaTruncateCollectionIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ZorbaTruncateCollectionIterator, PlanIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  ZorbaTruncateCollectionIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<ZorbaTruncateCollectionIterator, PlanIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~ZorbaTruncateCollectionIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      zorba:collection-name
- *    
- * Author: Zorba Team
- */
-class ZorbaCollectionNameIterator : public NaryBaseIterator<ZorbaCollectionNameIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ZorbaCollectionNameIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaCollectionNameIterator,
-    NaryBaseIterator<ZorbaCollectionNameIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ZorbaCollectionNameIterator, PlanIteratorState>*)this);
-  }
-
-  ZorbaCollectionNameIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<ZorbaCollectionNameIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~ZorbaCollectionNameIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      dc:is-available-collection
- *    
- * Author: Zorba Team
- */
-class IsAvailableCollectionIterator : public NaryBaseIterator<IsAvailableCollectionIterator, PlanIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(IsAvailableCollectionIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsAvailableCollectionIterator,
-    NaryBaseIterator<IsAvailableCollectionIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<IsAvailableCollectionIterator, PlanIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  IsAvailableCollectionIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<IsAvailableCollectionIterator, PlanIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~IsAvailableCollectionIterator();
-
-public:
-  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      dc:available-collections
- *    
- * Author: Zorba Team
- */
-class AvailableCollectionsIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t nameItState; //the current iterator
-
-  AvailableCollectionsIteratorState();
-
-  ~AvailableCollectionsIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class AvailableCollectionsIterator : public NaryBaseIterator<AvailableCollectionsIterator, AvailableCollectionsIteratorState>
-{ 
-protected:
-  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
-public:
-  SERIALIZABLE_CLASS(AvailableCollectionsIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(AvailableCollectionsIterator,
-    NaryBaseIterator<AvailableCollectionsIterator, AvailableCollectionsIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<AvailableCollectionsIterator, AvailableCollectionsIteratorState>*)this);
-
-    ar & theDynamicCollection;
-  }
-
-  AvailableCollectionsIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children,
-    bool aDynamicCollection)
-    : 
-    NaryBaseIterator<AvailableCollectionsIterator, AvailableCollectionsIteratorState>(sctx, loc, children),
-    theDynamicCollection(aDynamicCollection)
-  {}
-
-  virtual ~AvailableCollectionsIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      dc:is-available-index
- *    
- * Author: Zorba Team
- */
-class IsAvailableIndexIterator : public NaryBaseIterator<IsAvailableIndexIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(IsAvailableIndexIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsAvailableIndexIterator,
-    NaryBaseIterator<IsAvailableIndexIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<IsAvailableIndexIterator, PlanIteratorState>*)this);
-  }
-
-  IsAvailableIndexIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<IsAvailableIndexIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~IsAvailableIndexIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      dc:available-indexes
- *    
- * Author: Zorba Team
- */
-class AvailableIndexesIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t nameItState; //the current iterator
-
-  AvailableIndexesIteratorState();
-
-  ~AvailableIndexesIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class AvailableIndexesIterator : public NaryBaseIterator<AvailableIndexesIterator, AvailableIndexesIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(AvailableIndexesIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(AvailableIndexesIterator,
-    NaryBaseIterator<AvailableIndexesIterator, AvailableIndexesIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<AvailableIndexesIterator, AvailableIndexesIteratorState>*)this);
-  }
-
-  AvailableIndexesIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<AvailableIndexesIterator, AvailableIndexesIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~AvailableIndexesIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      dc:is-activated-integrity-constraint
- *    
- * Author: Zorba Team
- */
-class IsActivatedICIterator : public NaryBaseIterator<IsActivatedICIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(IsActivatedICIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsActivatedICIterator,
-    NaryBaseIterator<IsActivatedICIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<IsActivatedICIterator, PlanIteratorState>*)this);
-  }
-
-  IsActivatedICIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<IsActivatedICIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~IsActivatedICIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      dc:activated-integrity-constraints
- *    
- * Author: Zorba Team
- */
-class ActivatedICsIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t nameItState; //the current iterator
-
-  ActivatedICsIteratorState();
-
-  ~ActivatedICsIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class ActivatedICsIterator : public NaryBaseIterator<ActivatedICsIterator, ActivatedICsIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ActivatedICsIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ActivatedICsIterator,
-    NaryBaseIterator<ActivatedICsIterator, ActivatedICsIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ActivatedICsIterator, ActivatedICsIteratorState>*)this);
-  }
-
-  ActivatedICsIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<ActivatedICsIterator, ActivatedICsIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~ActivatedICsIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      sc:is-declared-collection
- *    
- * Author: Zorba Team
- */
-class IsDeclaredCollectionIterator : public NaryBaseIterator<IsDeclaredCollectionIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(IsDeclaredCollectionIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsDeclaredCollectionIterator,
-    NaryBaseIterator<IsDeclaredCollectionIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<IsDeclaredCollectionIterator, PlanIteratorState>*)this);
-  }
-
-  IsDeclaredCollectionIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<IsDeclaredCollectionIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~IsDeclaredCollectionIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      sc:declared-collections
- *    
- * Author: Zorba Team
- */
-class DeclaredCollectionsIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t nameItState; //the current iterator
-
-  DeclaredCollectionsIteratorState();
-
-  ~DeclaredCollectionsIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class DeclaredCollectionsIterator : public NaryBaseIterator<DeclaredCollectionsIterator, DeclaredCollectionsIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(DeclaredCollectionsIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DeclaredCollectionsIterator,
-    NaryBaseIterator<DeclaredCollectionsIterator, DeclaredCollectionsIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<DeclaredCollectionsIterator, DeclaredCollectionsIteratorState>*)this);
-  }
-
-  DeclaredCollectionsIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<DeclaredCollectionsIterator, DeclaredCollectionsIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~DeclaredCollectionsIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      sc:is-declared-index
- *    
- * Author: Zorba Team
- */
-class IsDeclaredIndexIterator : public NaryBaseIterator<IsDeclaredIndexIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(IsDeclaredIndexIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsDeclaredIndexIterator,
-    NaryBaseIterator<IsDeclaredIndexIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<IsDeclaredIndexIterator, PlanIteratorState>*)this);
-  }
-
-  IsDeclaredIndexIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<IsDeclaredIndexIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~IsDeclaredIndexIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      sc:declared-indexes
- *    
- * Author: Zorba Team
- */
-class DeclaredIndexesIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t nameItState; //the current iterator
-
-  DeclaredIndexesIteratorState();
-
-  ~DeclaredIndexesIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class DeclaredIndexesIterator : public NaryBaseIterator<DeclaredIndexesIterator, DeclaredIndexesIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(DeclaredIndexesIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DeclaredIndexesIterator,
-    NaryBaseIterator<DeclaredIndexesIterator, DeclaredIndexesIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<DeclaredIndexesIterator, DeclaredIndexesIteratorState>*)this);
-  }
-
-  DeclaredIndexesIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<DeclaredIndexesIterator, DeclaredIndexesIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~DeclaredIndexesIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      sc:is-declared-integrity-constraint
- *    
- * Author: Zorba Team
- */
-class IsDeclaredICIterator : public NaryBaseIterator<IsDeclaredICIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(IsDeclaredICIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsDeclaredICIterator,
-    NaryBaseIterator<IsDeclaredICIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<IsDeclaredICIterator, PlanIteratorState>*)this);
-  }
-
-  IsDeclaredICIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<IsDeclaredICIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~IsDeclaredICIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      sc:declared-integrity-constrints
- *    
- * Author: Zorba Team
- */
-class DeclaredICsIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t nameItState; //the current iterator
-
-  DeclaredICsIteratorState();
-
-  ~DeclaredICsIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class DeclaredICsIterator : public NaryBaseIterator<DeclaredICsIterator, DeclaredICsIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(DeclaredICsIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DeclaredICsIterator,
-    NaryBaseIterator<DeclaredICsIterator, DeclaredICsIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<DeclaredICsIterator, DeclaredICsIteratorState>*)this);
-  }
-
-  DeclaredICsIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<DeclaredICsIterator, DeclaredICsIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~DeclaredICsIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * 
- *      Returns a sequence of xs:anyURI values representing the document URIs of the 
- *      documents in a collection.
- *    
- * Author: Zorba Team
- */
-class FnURICollectionIteratorState : public PlanIteratorState
-{
-public:
-  store::Iterator_t theIterator; //the current iterator
-  bool theIteratorOpened; //flag indicating whether theIterator was opened
-
-  FnURICollectionIteratorState();
-
-  ~FnURICollectionIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class FnURICollectionIterator : public NaryBaseIterator<FnURICollectionIterator, FnURICollectionIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(FnURICollectionIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(FnURICollectionIterator,
-    NaryBaseIterator<FnURICollectionIterator, FnURICollectionIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<FnURICollectionIterator, FnURICollectionIteratorState>*)this);
-  }
-
-  FnURICollectionIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<FnURICollectionIterator, FnURICollectionIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~FnURICollectionIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-}
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+#ifndef ZORBA_RUNTIME_COLLECTIONS_COLLECTIONS_H
+#define ZORBA_RUNTIME_COLLECTIONS_COLLECTIONS_H
+
+
+#include "common/shared_types.h"
+
+
+
+#include "runtime/base/narybase.h"
+#include "runtime/collections/collections_base.h"
+
+
+namespace zorba {
+class StaticallyKnownCollection;
+/**
+ * 
+ *      fn:collection
+ *    
+ * Author: Zorba Team
+ */
+class FnCollectionIteratorState : public PlanIteratorState
+{
+public:
+  store::Iterator_t theIterator; //the current iterator
+  bool theIteratorOpened; //flag indicating whether theIterator was opened
+
+  FnCollectionIteratorState();
+
+  ~FnCollectionIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class FnCollectionIterator : public NaryBaseIterator<FnCollectionIterator, FnCollectionIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(FnCollectionIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(FnCollectionIterator,
+    NaryBaseIterator<FnCollectionIterator, FnCollectionIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<FnCollectionIterator, FnCollectionIteratorState>*)this);
+  }
+
+  FnCollectionIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<FnCollectionIterator, FnCollectionIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~FnCollectionIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:collection
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaCollectionIteratorState : public PlanIteratorState
+{
+public:
+  store::Iterator_t theIterator; //the current iterator
+  bool theIteratorOpened; //flag indicating whether theIterator was opened
+
+  ZorbaCollectionIteratorState();
+
+  ~ZorbaCollectionIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class ZorbaCollectionIterator : public NaryBaseIterator<ZorbaCollectionIterator, ZorbaCollectionIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(ZorbaCollectionIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaCollectionIterator,
+    NaryBaseIterator<ZorbaCollectionIterator, ZorbaCollectionIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ZorbaCollectionIterator, ZorbaCollectionIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  ZorbaCollectionIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<ZorbaCollectionIterator, ZorbaCollectionIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~ZorbaCollectionIterator();
+
+  bool isDynamic() const { return theDynamicCollection; }
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:index-of
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaIndexOfIterator : public NaryBaseIterator<ZorbaIndexOfIterator, PlanIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(ZorbaIndexOfIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaIndexOfIterator,
+    NaryBaseIterator<ZorbaIndexOfIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ZorbaIndexOfIterator, PlanIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  ZorbaIndexOfIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<ZorbaIndexOfIterator, PlanIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~ZorbaIndexOfIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:create
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaCreateCollectionIterator : public NaryBaseIterator<ZorbaCreateCollectionIterator, PlanIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(ZorbaCreateCollectionIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaCreateCollectionIterator,
+    NaryBaseIterator<ZorbaCreateCollectionIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ZorbaCreateCollectionIterator, PlanIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  ZorbaCreateCollectionIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<ZorbaCreateCollectionIterator, PlanIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~ZorbaCreateCollectionIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:delete
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaDeleteCollectionIterator : public NaryBaseIterator<ZorbaDeleteCollectionIterator, PlanIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(ZorbaDeleteCollectionIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaDeleteCollectionIterator,
+    NaryBaseIterator<ZorbaDeleteCollectionIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ZorbaDeleteCollectionIterator, PlanIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  ZorbaDeleteCollectionIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<ZorbaDeleteCollectionIterator, PlanIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~ZorbaDeleteCollectionIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:insert-nodes
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaInsertNodesIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaInsertNodesIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesIterator,
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesIterator, PlanIteratorState>*)this);
+  }
+
+  ZorbaInsertNodesIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection)
+  {}
+
+  virtual ~ZorbaInsertNodesIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:insert-nodes-first
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaInsertNodesFirstIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesFirstIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaInsertNodesFirstIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesFirstIterator,
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesFirstIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesFirstIterator, PlanIteratorState>*)this);
+  }
+
+  ZorbaInsertNodesFirstIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesFirstIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection)
+  {}
+
+  virtual ~ZorbaInsertNodesFirstIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:insert-nodes-last
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaInsertNodesLastIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesLastIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaInsertNodesLastIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesLastIterator,
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesLastIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesLastIterator, PlanIteratorState>*)this);
+  }
+
+  ZorbaInsertNodesLastIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesLastIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection)
+  {}
+
+  virtual ~ZorbaInsertNodesLastIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:insert-nodes-before
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaInsertNodesBeforeIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesBeforeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaInsertNodesBeforeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesBeforeIterator,
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesBeforeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesBeforeIterator, PlanIteratorState>*)this);
+  }
+
+  ZorbaInsertNodesBeforeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesBeforeIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection)
+  {}
+
+  virtual ~ZorbaInsertNodesBeforeIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:insert-nodes-after
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaInsertNodesAfterIterator : public ZorbaCollectionIteratorHelper<ZorbaInsertNodesAfterIterator, PlanIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(ZorbaInsertNodesAfterIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaInsertNodesAfterIterator,
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesAfterIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaInsertNodesAfterIterator, PlanIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  ZorbaInsertNodesAfterIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaInsertNodesAfterIterator, PlanIteratorState>(sctx, loc, children, aDynamicCollection),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~ZorbaInsertNodesAfterIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:apply-insert-nodes
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaApplyInsertNodesIteratorState : public PlanIteratorState
+{
+public:
+  std::vector<store::Item_t> nodes; //the nodes that have been inserted
+  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
+
+  ZorbaApplyInsertNodesIteratorState();
+
+  ~ZorbaApplyInsertNodesIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class ZorbaApplyInsertNodesIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesIterator, ZorbaApplyInsertNodesIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesIterator,
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesIterator, ZorbaApplyInsertNodesIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesIterator, ZorbaApplyInsertNodesIteratorState>*)this);
+  }
+
+  ZorbaApplyInsertNodesIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesIterator, ZorbaApplyInsertNodesIteratorState>(sctx, loc, children, aDynamicCollection)
+  {}
+
+  virtual ~ZorbaApplyInsertNodesIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:apply-insertnodes-first
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaApplyInsertNodesFirstIteratorState : public PlanIteratorState
+{
+public:
+  std::vector<store::Item_t> nodes; //the nodes that have been inserted
+  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
+
+  ZorbaApplyInsertNodesFirstIteratorState();
+
+  ~ZorbaApplyInsertNodesFirstIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class ZorbaApplyInsertNodesFirstIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesFirstIterator, ZorbaApplyInsertNodesFirstIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesFirstIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesFirstIterator,
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesFirstIterator, ZorbaApplyInsertNodesFirstIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesFirstIterator, ZorbaApplyInsertNodesFirstIteratorState>*)this);
+  }
+
+  ZorbaApplyInsertNodesFirstIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesFirstIterator, ZorbaApplyInsertNodesFirstIteratorState>(sctx, loc, children, aDynamicCollection)
+  {}
+
+  virtual ~ZorbaApplyInsertNodesFirstIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:apply-insertnodes-last
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaApplyInsertNodesLastIteratorState : public PlanIteratorState
+{
+public:
+  std::vector<store::Item_t> nodes; //the nodes that have been inserted
+  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
+
+  ZorbaApplyInsertNodesLastIteratorState();
+
+  ~ZorbaApplyInsertNodesLastIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class ZorbaApplyInsertNodesLastIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesLastIterator, ZorbaApplyInsertNodesLastIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesLastIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesLastIterator,
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesLastIterator, ZorbaApplyInsertNodesLastIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesLastIterator, ZorbaApplyInsertNodesLastIteratorState>*)this);
+  }
+
+  ZorbaApplyInsertNodesLastIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesLastIterator, ZorbaApplyInsertNodesLastIteratorState>(sctx, loc, children, aDynamicCollection)
+  {}
+
+  virtual ~ZorbaApplyInsertNodesLastIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:apply-insert-nodes-before
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaApplyInsertNodesBeforeIteratorState : public PlanIteratorState
+{
+public:
+  std::vector<store::Item_t> nodes; //the nodes that have been inserted
+  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
+
+  ZorbaApplyInsertNodesBeforeIteratorState();
+
+  ~ZorbaApplyInsertNodesBeforeIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class ZorbaApplyInsertNodesBeforeIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesBeforeIterator, ZorbaApplyInsertNodesBeforeIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesBeforeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesBeforeIterator,
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesBeforeIterator, ZorbaApplyInsertNodesBeforeIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesBeforeIterator, ZorbaApplyInsertNodesBeforeIteratorState>*)this);
+  }
+
+  ZorbaApplyInsertNodesBeforeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesBeforeIterator, ZorbaApplyInsertNodesBeforeIteratorState>(sctx, loc, children, aDynamicCollection)
+  {}
+
+  virtual ~ZorbaApplyInsertNodesBeforeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:apply-insertnodes-after
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaApplyInsertNodesAfterIteratorState : public PlanIteratorState
+{
+public:
+  std::vector<store::Item_t> nodes; //the nodes that have been inserted
+  std::vector<store::Item_t>::const_iterator iterator; //iterator over the nodes
+
+  ZorbaApplyInsertNodesAfterIteratorState();
+
+  ~ZorbaApplyInsertNodesAfterIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class ZorbaApplyInsertNodesAfterIterator : public ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesAfterIterator, ZorbaApplyInsertNodesAfterIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaApplyInsertNodesAfterIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaApplyInsertNodesAfterIterator,
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesAfterIterator, ZorbaApplyInsertNodesAfterIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesAfterIterator, ZorbaApplyInsertNodesAfterIteratorState>*)this);
+  }
+
+  ZorbaApplyInsertNodesAfterIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    ZorbaCollectionIteratorHelper<ZorbaApplyInsertNodesAfterIterator, ZorbaApplyInsertNodesAfterIteratorState>(sctx, loc, children, aDynamicCollection)
+  {}
+
+  virtual ~ZorbaApplyInsertNodesAfterIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:delete-nodes
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaDeleteNodesIterator : public NaryBaseIterator<ZorbaDeleteNodesIterator, PlanIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(ZorbaDeleteNodesIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaDeleteNodesIterator,
+    NaryBaseIterator<ZorbaDeleteNodesIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ZorbaDeleteNodesIterator, PlanIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  ZorbaDeleteNodesIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<ZorbaDeleteNodesIterator, PlanIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~ZorbaDeleteNodesIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:delete-node-first
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaDeleteNodesFirstIterator : public NaryBaseIterator<ZorbaDeleteNodesFirstIterator, PlanIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(ZorbaDeleteNodesFirstIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaDeleteNodesFirstIterator,
+    NaryBaseIterator<ZorbaDeleteNodesFirstIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ZorbaDeleteNodesFirstIterator, PlanIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  ZorbaDeleteNodesFirstIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<ZorbaDeleteNodesFirstIterator, PlanIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~ZorbaDeleteNodesFirstIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:delete-node-last
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaDeleteNodesLastIterator : public NaryBaseIterator<ZorbaDeleteNodesLastIterator, PlanIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(ZorbaDeleteNodesLastIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaDeleteNodesLastIterator,
+    NaryBaseIterator<ZorbaDeleteNodesLastIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ZorbaDeleteNodesLastIterator, PlanIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  ZorbaDeleteNodesLastIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<ZorbaDeleteNodesLastIterator, PlanIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~ZorbaDeleteNodesLastIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:truncate
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaTruncateCollectionIterator : public NaryBaseIterator<ZorbaTruncateCollectionIterator, PlanIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(ZorbaTruncateCollectionIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaTruncateCollectionIterator,
+    NaryBaseIterator<ZorbaTruncateCollectionIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ZorbaTruncateCollectionIterator, PlanIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  ZorbaTruncateCollectionIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<ZorbaTruncateCollectionIterator, PlanIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~ZorbaTruncateCollectionIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      zorba:collection-name
+ *    
+ * Author: Zorba Team
+ */
+class ZorbaCollectionNameIterator : public NaryBaseIterator<ZorbaCollectionNameIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ZorbaCollectionNameIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ZorbaCollectionNameIterator,
+    NaryBaseIterator<ZorbaCollectionNameIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ZorbaCollectionNameIterator, PlanIteratorState>*)this);
+  }
+
+  ZorbaCollectionNameIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<ZorbaCollectionNameIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~ZorbaCollectionNameIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      dc:is-available-collection
+ *    
+ * Author: Zorba Team
+ */
+class IsAvailableCollectionIterator : public NaryBaseIterator<IsAvailableCollectionIterator, PlanIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(IsAvailableCollectionIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsAvailableCollectionIterator,
+    NaryBaseIterator<IsAvailableCollectionIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<IsAvailableCollectionIterator, PlanIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  IsAvailableCollectionIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<IsAvailableCollectionIterator, PlanIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~IsAvailableCollectionIterator();
+
+public:
+  const StaticallyKnownCollection* getCollection(const static_context* sctx, const store::Item_t& name, const QueryLoc& loc, bool dyn_coll, store::Collection_t& coll) const;
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      dc:available-collections
+ *    
+ * Author: Zorba Team
+ */
+class AvailableCollectionsIteratorState : public PlanIteratorState
+{
+public:
+  store::Iterator_t nameItState; //the current iterator
+
+  AvailableCollectionsIteratorState();
+
+  ~AvailableCollectionsIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class AvailableCollectionsIterator : public NaryBaseIterator<AvailableCollectionsIterator, AvailableCollectionsIteratorState>
+{ 
+protected:
+  bool theDynamicCollection; //whether it's the function of the dynamic or the static collection module
+public:
+  SERIALIZABLE_CLASS(AvailableCollectionsIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(AvailableCollectionsIterator,
+    NaryBaseIterator<AvailableCollectionsIterator, AvailableCollectionsIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<AvailableCollectionsIterator, AvailableCollectionsIteratorState>*)this);
+
+    ar & theDynamicCollection;
+  }
+
+  AvailableCollectionsIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children,
+    bool aDynamicCollection)
+    : 
+    NaryBaseIterator<AvailableCollectionsIterator, AvailableCollectionsIteratorState>(sctx, loc, children),
+    theDynamicCollection(aDynamicCollection)
+  {}
+
+  virtual ~AvailableCollectionsIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      dc:is-available-index
+ *    
+ * Author: Zorba Team
+ */
+class IsAvailableIndexIterator : public NaryBaseIterator<IsAvailableIndexIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(IsAvailableIndexIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsAvailableIndexIterator,
+    NaryBaseIterator<IsAvailableIndexIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<IsAvailableIndexIterator, PlanIteratorState>*)this);
+  }
+
+  IsAvailableIndexIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<IsAvailableIndexIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~IsAvailableIndexIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      dc:available-indexes
+ *    
+ * Author: Zorba Team
+ */
+class AvailableIndexesIteratorState : public PlanIteratorState
+{
+public:
+  store::Iterator_t nameItState; //the current iterator
+
+  AvailableIndexesIteratorState();
+
+  ~AvailableIndexesIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class AvailableIndexesIterator : public NaryBaseIterator<AvailableIndexesIterator, AvailableIndexesIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(AvailableIndexesIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(AvailableIndexesIterator,
+    NaryBaseIterator<AvailableIndexesIterator, AvailableIndexesIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<AvailableIndexesIterator, AvailableIndexesIteratorState>*)this);
+  }
+
+  AvailableIndexesIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<AvailableIndexesIterator, AvailableIndexesIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~AvailableIndexesIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      dc:is-activated-integrity-constraint
+ *    
+ * Author: Zorba Team
+ */
+class IsActivatedICIterator : public NaryBaseIterator<IsActivatedICIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(IsActivatedICIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsActivatedICIterator,
+    NaryBaseIterator<IsActivatedICIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<IsActivatedICIterator, PlanIteratorState>*)this);
+  }
+
+  IsActivatedICIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<IsActivatedICIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~IsActivatedICIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      dc:activated-integrity-constraints
+ *    
+ * Author: Zorba Team
+ */
+class ActivatedICsIteratorState : public PlanIteratorState
+{
+public:
+  store::Iterator_t nameItState; //the current iterator
+
+  ActivatedICsIteratorState();
+
+  ~ActivatedICsIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class ActivatedICsIterator : public NaryBaseIterator<ActivatedICsIterator, ActivatedICsIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ActivatedICsIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ActivatedICsIterator,
+    NaryBaseIterator<ActivatedICsIterator, ActivatedICsIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ActivatedICsIterator, ActivatedICsIteratorState>*)this);
+  }
+
+  ActivatedICsIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<ActivatedICsIterator, ActivatedICsIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~ActivatedICsIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      sc:is-declared-collection
+ *    
+ * Author: Zorba Team
+ */
+class IsDeclaredCollectionIterator : public NaryBaseIterator<IsDeclaredCollectionIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(IsDeclaredCollectionIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsDeclaredCollectionIterator,
+    NaryBaseIterator<IsDeclaredCollectionIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<IsDeclaredCollectionIterator, PlanIteratorState>*)this);
+  }
+
+  IsDeclaredCollectionIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<IsDeclaredCollectionIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~IsDeclaredCollectionIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      sc:declared-collections
+ *    
+ * Author: Zorba Team
+ */
+class DeclaredCollectionsIteratorState : public PlanIteratorState
+{
+public:
+  store::Iterator_t nameItState; //the current iterator
+
+  DeclaredCollectionsIteratorState();
+
+  ~DeclaredCollectionsIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class DeclaredCollectionsIterator : public NaryBaseIterator<DeclaredCollectionsIterator, DeclaredCollectionsIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(DeclaredCollectionsIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DeclaredCollectionsIterator,
+    NaryBaseIterator<DeclaredCollectionsIterator, DeclaredCollectionsIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<DeclaredCollectionsIterator, DeclaredCollectionsIteratorState>*)this);
+  }
+
+  DeclaredCollectionsIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<DeclaredCollectionsIterator, DeclaredCollectionsIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~DeclaredCollectionsIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      sc:is-declared-index
+ *    
+ * Author: Zorba Team
+ */
+class IsDeclaredIndexIterator : public NaryBaseIterator<IsDeclaredIndexIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(IsDeclaredIndexIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsDeclaredIndexIterator,
+    NaryBaseIterator<IsDeclaredIndexIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<IsDeclaredIndexIterator, PlanIteratorState>*)this);
+  }
+
+  IsDeclaredIndexIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<IsDeclaredIndexIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~IsDeclaredIndexIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      sc:declared-indexes
+ *    
+ * Author: Zorba Team
+ */
+class DeclaredIndexesIteratorState : public PlanIteratorState
+{
+public:
+  store::Iterator_t nameItState; //the current iterator
+
+  DeclaredIndexesIteratorState();
+
+  ~DeclaredIndexesIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class DeclaredIndexesIterator : public NaryBaseIterator<DeclaredIndexesIterator, DeclaredIndexesIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(DeclaredIndexesIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DeclaredIndexesIterator,
+    NaryBaseIterator<DeclaredIndexesIterator, DeclaredIndexesIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<DeclaredIndexesIterator, DeclaredIndexesIteratorState>*)this);
+  }
+
+  DeclaredIndexesIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<DeclaredIndexesIterator, DeclaredIndexesIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~DeclaredIndexesIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      sc:is-declared-integrity-constraint
+ *    
+ * Author: Zorba Team
+ */
+class IsDeclaredICIterator : public NaryBaseIterator<IsDeclaredICIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(IsDeclaredICIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(IsDeclaredICIterator,
+    NaryBaseIterator<IsDeclaredICIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<IsDeclaredICIterator, PlanIteratorState>*)this);
+  }
+
+  IsDeclaredICIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<IsDeclaredICIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~IsDeclaredICIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * 
+ *      sc:declared-integrity-constrints
+ *    
+ * Author: Zorba Team
+ */
+class DeclaredICsIteratorState : public PlanIteratorState
+{
+public:
+  store::Iterator_t nameItState; //the current iterator
+
+  DeclaredICsIteratorState();
+
+  ~DeclaredICsIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class DeclaredICsIterator : public NaryBaseIterator<DeclaredICsIterator, DeclaredICsIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(DeclaredICsIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DeclaredICsIterator,
+    NaryBaseIterator<DeclaredICsIterator, DeclaredICsIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<DeclaredICsIterator, DeclaredICsIteratorState>*)this);
+  }
+
+  DeclaredICsIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<DeclaredICsIterator, DeclaredICsIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~DeclaredICsIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+}
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/runtime/context/pregenerated/context.cpp'
--- src/runtime/context/pregenerated/context.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/context/pregenerated/context.cpp	2012-05-02 06:48:21 +0000
@@ -1,148 +1,148 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-#include "stdafx.h"
-#include "zorbatypes/rchandle.h"
-#include "zorbatypes/zstring.h"
-#include "runtime/visitors/planiter_visitor.h"
-#include "runtime/context/context.h"
-#include "system/globalenv.h"
-
-
-
-namespace zorba {
-
-// <CurrentDateTimeIterator>
-CurrentDateTimeIterator::class_factory<CurrentDateTimeIterator>
-CurrentDateTimeIterator::g_class_factory;
-
-
-void CurrentDateTimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-CurrentDateTimeIterator::~CurrentDateTimeIterator() {}
-
-// </CurrentDateTimeIterator>
-
-
-// <CurrentDateIterator>
-CurrentDateIterator::class_factory<CurrentDateIterator>
-CurrentDateIterator::g_class_factory;
-
-
-void CurrentDateIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-CurrentDateIterator::~CurrentDateIterator() {}
-
-// </CurrentDateIterator>
-
-
-// <CurrentTimeIterator>
-CurrentTimeIterator::class_factory<CurrentTimeIterator>
-CurrentTimeIterator::g_class_factory;
-
-
-void CurrentTimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-CurrentTimeIterator::~CurrentTimeIterator() {}
-
-// </CurrentTimeIterator>
-
-
-// <ImplicitTimezoneIterator>
-ImplicitTimezoneIterator::class_factory<ImplicitTimezoneIterator>
-ImplicitTimezoneIterator::g_class_factory;
-
-
-void ImplicitTimezoneIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ImplicitTimezoneIterator::~ImplicitTimezoneIterator() {}
-
-// </ImplicitTimezoneIterator>
-
-
-// <DefaultCollationIterator>
-DefaultCollationIterator::class_factory<DefaultCollationIterator>
-DefaultCollationIterator::g_class_factory;
-
-
-void DefaultCollationIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-DefaultCollationIterator::~DefaultCollationIterator() {}
-
-// </DefaultCollationIterator>
-
-
-
-}
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+#include "stdafx.h"
+#include "zorbatypes/rchandle.h"
+#include "zorbatypes/zstring.h"
+#include "runtime/visitors/planiter_visitor.h"
+#include "runtime/context/context.h"
+#include "system/globalenv.h"
+
+
+
+namespace zorba {
+
+// <CurrentDateTimeIterator>
+CurrentDateTimeIterator::class_factory<CurrentDateTimeIterator>
+CurrentDateTimeIterator::g_class_factory;
+
+
+void CurrentDateTimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+CurrentDateTimeIterator::~CurrentDateTimeIterator() {}
+
+// </CurrentDateTimeIterator>
+
+
+// <CurrentDateIterator>
+CurrentDateIterator::class_factory<CurrentDateIterator>
+CurrentDateIterator::g_class_factory;
+
+
+void CurrentDateIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+CurrentDateIterator::~CurrentDateIterator() {}
+
+// </CurrentDateIterator>
+
+
+// <CurrentTimeIterator>
+CurrentTimeIterator::class_factory<CurrentTimeIterator>
+CurrentTimeIterator::g_class_factory;
+
+
+void CurrentTimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+CurrentTimeIterator::~CurrentTimeIterator() {}
+
+// </CurrentTimeIterator>
+
+
+// <ImplicitTimezoneIterator>
+ImplicitTimezoneIterator::class_factory<ImplicitTimezoneIterator>
+ImplicitTimezoneIterator::g_class_factory;
+
+
+void ImplicitTimezoneIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ImplicitTimezoneIterator::~ImplicitTimezoneIterator() {}
+
+// </ImplicitTimezoneIterator>
+
+
+// <DefaultCollationIterator>
+DefaultCollationIterator::class_factory<DefaultCollationIterator>
+DefaultCollationIterator::g_class_factory;
+
+
+void DefaultCollationIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+DefaultCollationIterator::~DefaultCollationIterator() {}
+
+// </DefaultCollationIterator>
+
+
+
+}
+
+

=== modified file 'src/runtime/context/pregenerated/context.h'
--- src/runtime/context/pregenerated/context.h	2012-04-24 12:39:38 +0000
+++ src/runtime/context/pregenerated/context.h	2012-05-02 06:48:21 +0000
@@ -1,212 +1,212 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-#ifndef ZORBA_RUNTIME_CONTEXT_CONTEXT_H
-#define ZORBA_RUNTIME_CONTEXT_CONTEXT_H
-
-
-#include "common/shared_types.h"
-
-
-
-#include "runtime/base/narybase.h"
-
-
-namespace zorba {
-
-/**
- * fn:current-dateTime
- * Author: Zorba Team
- */
-class CurrentDateTimeIterator : public NaryBaseIterator<CurrentDateTimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(CurrentDateTimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(CurrentDateTimeIterator,
-    NaryBaseIterator<CurrentDateTimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<CurrentDateTimeIterator, PlanIteratorState>*)this);
-  }
-
-  CurrentDateTimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<CurrentDateTimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~CurrentDateTimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:current-date
- * Author: Zorba Team
- */
-class CurrentDateIterator : public NaryBaseIterator<CurrentDateIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(CurrentDateIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(CurrentDateIterator,
-    NaryBaseIterator<CurrentDateIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<CurrentDateIterator, PlanIteratorState>*)this);
-  }
-
-  CurrentDateIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<CurrentDateIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~CurrentDateIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:current-time
- * Author: Zorba Team
- */
-class CurrentTimeIterator : public NaryBaseIterator<CurrentTimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(CurrentTimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(CurrentTimeIterator,
-    NaryBaseIterator<CurrentTimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<CurrentTimeIterator, PlanIteratorState>*)this);
-  }
-
-  CurrentTimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<CurrentTimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~CurrentTimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:implicit-timezone
- * Author: Zorba Team
- */
-class ImplicitTimezoneIterator : public NaryBaseIterator<ImplicitTimezoneIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ImplicitTimezoneIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ImplicitTimezoneIterator,
-    NaryBaseIterator<ImplicitTimezoneIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ImplicitTimezoneIterator, PlanIteratorState>*)this);
-  }
-
-  ImplicitTimezoneIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<ImplicitTimezoneIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~ImplicitTimezoneIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:default-collation
- * Author: Zorba Team
- */
-class DefaultCollationIterator : public NaryBaseIterator<DefaultCollationIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(DefaultCollationIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DefaultCollationIterator,
-    NaryBaseIterator<DefaultCollationIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<DefaultCollationIterator, PlanIteratorState>*)this);
-  }
-
-  DefaultCollationIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<DefaultCollationIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~DefaultCollationIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-}
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+#ifndef ZORBA_RUNTIME_CONTEXT_CONTEXT_H
+#define ZORBA_RUNTIME_CONTEXT_CONTEXT_H
+
+
+#include "common/shared_types.h"
+
+
+
+#include "runtime/base/narybase.h"
+
+
+namespace zorba {
+
+/**
+ * fn:current-dateTime
+ * Author: Zorba Team
+ */
+class CurrentDateTimeIterator : public NaryBaseIterator<CurrentDateTimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(CurrentDateTimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(CurrentDateTimeIterator,
+    NaryBaseIterator<CurrentDateTimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<CurrentDateTimeIterator, PlanIteratorState>*)this);
+  }
+
+  CurrentDateTimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<CurrentDateTimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~CurrentDateTimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:current-date
+ * Author: Zorba Team
+ */
+class CurrentDateIterator : public NaryBaseIterator<CurrentDateIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(CurrentDateIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(CurrentDateIterator,
+    NaryBaseIterator<CurrentDateIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<CurrentDateIterator, PlanIteratorState>*)this);
+  }
+
+  CurrentDateIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<CurrentDateIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~CurrentDateIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:current-time
+ * Author: Zorba Team
+ */
+class CurrentTimeIterator : public NaryBaseIterator<CurrentTimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(CurrentTimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(CurrentTimeIterator,
+    NaryBaseIterator<CurrentTimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<CurrentTimeIterator, PlanIteratorState>*)this);
+  }
+
+  CurrentTimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<CurrentTimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~CurrentTimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:implicit-timezone
+ * Author: Zorba Team
+ */
+class ImplicitTimezoneIterator : public NaryBaseIterator<ImplicitTimezoneIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(ImplicitTimezoneIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ImplicitTimezoneIterator,
+    NaryBaseIterator<ImplicitTimezoneIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<ImplicitTimezoneIterator, PlanIteratorState>*)this);
+  }
+
+  ImplicitTimezoneIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<ImplicitTimezoneIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~ImplicitTimezoneIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:default-collation
+ * Author: Zorba Team
+ */
+class DefaultCollationIterator : public NaryBaseIterator<DefaultCollationIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(DefaultCollationIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DefaultCollationIterator,
+    NaryBaseIterator<DefaultCollationIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<DefaultCollationIterator, PlanIteratorState>*)this);
+  }
+
+  DefaultCollationIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<DefaultCollationIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~DefaultCollationIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+}
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/runtime/debug/pregenerated/debug_iterator.cpp'
--- src/runtime/debug/pregenerated/debug_iterator.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/debug/pregenerated/debug_iterator.cpp	2012-05-02 06:48:21 +0000
@@ -1,75 +1,75 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-#include "stdafx.h"
-#include "zorbatypes/rchandle.h"
-#include "zorbatypes/zstring.h"
-#include "runtime/visitors/planiter_visitor.h"
-#include "runtime/debug/debug_iterator.h"
-#include "system/globalenv.h"
-
-
-
-namespace zorba {
-
-#ifdef ZORBA_WITH_DEBUGGER
-// <DebugIterator>
-DebugIterator::class_factory<DebugIterator>
-DebugIterator::g_class_factory;
-
-
-void DebugIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-DebugIterator::~DebugIterator() {}
-
-DebugIteratorState::DebugIteratorState() {}
-
-DebugIteratorState::~DebugIteratorState() {}
-
-
-void DebugIteratorState::init(PlanState& planState) {
-  PlanIteratorState::init(planState);
-  notEmptySequence = false;
-}
-
-void DebugIteratorState::reset(PlanState& planState) {
-  PlanIteratorState::reset(planState);
-  notEmptySequence = false;
-}
-// </DebugIterator>
-
-#endif
-
-}
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+#include "stdafx.h"
+#include "zorbatypes/rchandle.h"
+#include "zorbatypes/zstring.h"
+#include "runtime/visitors/planiter_visitor.h"
+#include "runtime/debug/debug_iterator.h"
+#include "system/globalenv.h"
+
+
+
+namespace zorba {
+
+#ifdef ZORBA_WITH_DEBUGGER
+// <DebugIterator>
+DebugIterator::class_factory<DebugIterator>
+DebugIterator::g_class_factory;
+
+
+void DebugIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+DebugIterator::~DebugIterator() {}
+
+DebugIteratorState::DebugIteratorState() {}
+
+DebugIteratorState::~DebugIteratorState() {}
+
+
+void DebugIteratorState::init(PlanState& planState) {
+  PlanIteratorState::init(planState);
+  notEmptySequence = false;
+}
+
+void DebugIteratorState::reset(PlanState& planState) {
+  PlanIteratorState::reset(planState);
+  notEmptySequence = false;
+}
+// </DebugIterator>
+
+#endif
+
+}
+
+

=== modified file 'src/runtime/debug/pregenerated/debug_iterator.h'
--- src/runtime/debug/pregenerated/debug_iterator.h	2012-04-24 12:39:38 +0000
+++ src/runtime/debug/pregenerated/debug_iterator.h	2012-05-02 06:48:21 +0000
@@ -1,135 +1,135 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-#ifndef ZORBA_RUNTIME_DEBUG_DEBUG_ITERATOR_H
-#define ZORBA_RUNTIME_DEBUG_DEBUG_ITERATOR_H
-
-
-#include "common/shared_types.h"
-
-
-
-#include "runtime/base/narybase.h"
-#include <vector>
-#include <map>
-#include <string>
-#include "runtime/util/plan_wrapper_holder.h"
-#include "zorba/options.h"
-#include "store/api/item.h"
-#include "types/typeimpl.h"
-
-
-namespace zorba {
-
-#ifdef ZORBA_WITH_DEBUGGER
-/**
- * 
- *      This iterator wrapps iterators in which represents breakable expression
- *      if the query is compiled in debug mode. It is used to break expressions,
- *      interrupt the execution and evaluate expressions while the engine is
- *      suspended.
- *    
- * Author: Zorba Team
- */
-class DebugIteratorState : public PlanIteratorState
-{
-public:
-  bool notEmptySequence; //
-
-  DebugIteratorState();
-
-  ~DebugIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class DebugIterator : public NaryBaseIterator<DebugIterator, DebugIteratorState>
-{ 
-protected:
-  checked_vector<store::Item_t> varnames; //
-  checked_vector<xqtref_t> vartypes; //
-  std::vector<DebugIterator*> theDebuggerChildren; //
-  DebugIterator* theDebuggerParent; //
-  bool theIsVarDeclaration; //
-public:
-  SERIALIZABLE_CLASS(DebugIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DebugIterator,
-    NaryBaseIterator<DebugIterator, DebugIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<DebugIterator, DebugIteratorState>*)this);
-
-    ar & varnames;
-    ar & vartypes;
-    ar & theDebuggerChildren;
-    ar & theDebuggerParent;
-    ar & theIsVarDeclaration;
-  }
-
-  DebugIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<DebugIterator, DebugIteratorState>(sctx, loc, children),
-    varnames(),
-    vartypes(),
-    theDebuggerChildren(),
-    theDebuggerParent(),
-    theIsVarDeclaration()
-  {}
-
-  virtual ~DebugIterator();
-
-  bool isVarDeclaration() const { return theIsVarDeclaration; }
-
-  void setVarDeclaration(bool aValue) { theIsVarDeclaration= aValue; }
-
-public:
-  const DebugIterator* getDebuggerParent() const;
-  std::vector<DebugIterator*> getDebuggerChildren() const;
-  const DebugIterator* getOverIterator() const;
-  QueryLoc getQueryLocation() const;
-  std::list<std::pair<zstring, zstring> > eval(PlanState* aState, Zorba_SerializerOptions* aSerOptions) const;
-  void checkBreak(PlanState* aState) const;
-  void setParent(DebugIterator* aParent);
-  void addChild(DebugIterator* aChild);
-  void setChildren(std::vector<PlanIter_t>* args);
-  void setVariables(checked_vector<store::Item_t> aVarNames, checked_vector<xqtref_t> aVarTypes);
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-#endif
-
-}
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+#ifndef ZORBA_RUNTIME_DEBUG_DEBUG_ITERATOR_H
+#define ZORBA_RUNTIME_DEBUG_DEBUG_ITERATOR_H
+
+
+#include "common/shared_types.h"
+
+
+
+#include "runtime/base/narybase.h"
+#include <vector>
+#include <map>
+#include <string>
+#include "runtime/util/plan_wrapper_holder.h"
+#include "zorba/options.h"
+#include "store/api/item.h"
+#include "types/typeimpl.h"
+
+
+namespace zorba {
+
+#ifdef ZORBA_WITH_DEBUGGER
+/**
+ * 
+ *      This iterator wrapps iterators in which represents breakable expression
+ *      if the query is compiled in debug mode. It is used to break expressions,
+ *      interrupt the execution and evaluate expressions while the engine is
+ *      suspended.
+ *    
+ * Author: Zorba Team
+ */
+class DebugIteratorState : public PlanIteratorState
+{
+public:
+  bool notEmptySequence; //
+
+  DebugIteratorState();
+
+  ~DebugIteratorState();
+
+  void init(PlanState&);
+  void reset(PlanState&);
+};
+
+class DebugIterator : public NaryBaseIterator<DebugIterator, DebugIteratorState>
+{ 
+protected:
+  checked_vector<store::Item_t> varnames; //
+  checked_vector<xqtref_t> vartypes; //
+  std::vector<DebugIterator*> theDebuggerChildren; //
+  DebugIterator* theDebuggerParent; //
+  bool theIsVarDeclaration; //
+public:
+  SERIALIZABLE_CLASS(DebugIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DebugIterator,
+    NaryBaseIterator<DebugIterator, DebugIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<DebugIterator, DebugIteratorState>*)this);
+
+    ar & varnames;
+    ar & vartypes;
+    ar & theDebuggerChildren;
+    ar & theDebuggerParent;
+    ar & theIsVarDeclaration;
+  }
+
+  DebugIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<DebugIterator, DebugIteratorState>(sctx, loc, children),
+    varnames(),
+    vartypes(),
+    theDebuggerChildren(),
+    theDebuggerParent(),
+    theIsVarDeclaration()
+  {}
+
+  virtual ~DebugIterator();
+
+  bool isVarDeclaration() const { return theIsVarDeclaration; }
+
+  void setVarDeclaration(bool aValue) { theIsVarDeclaration= aValue; }
+
+public:
+  const DebugIterator* getDebuggerParent() const;
+  std::vector<DebugIterator*> getDebuggerChildren() const;
+  const DebugIterator* getOverIterator() const;
+  QueryLoc getQueryLocation() const;
+  std::list<std::pair<zstring, zstring> > eval(PlanState* aState, Zorba_SerializerOptions* aSerOptions) const;
+  void checkBreak(PlanState* aState) const;
+  void setParent(DebugIterator* aParent);
+  void addChild(DebugIterator* aChild);
+  void setChildren(std::vector<PlanIter_t>* args);
+  void setVariables(checked_vector<store::Item_t> aVarNames, checked_vector<xqtref_t> aVarTypes);
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+#endif
+
+}
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/runtime/durations_dates_times/pregenerated/durations_dates_times.cpp'
--- src/runtime/durations_dates_times/pregenerated/durations_dates_times.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/durations_dates_times/pregenerated/durations_dates_times.cpp	2012-05-02 06:48:21 +0000
@@ -1,500 +1,500 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-#include "stdafx.h"
-#include "zorbatypes/rchandle.h"
-#include "zorbatypes/zstring.h"
-#include "runtime/visitors/planiter_visitor.h"
-#include "runtime/durations_dates_times/durations_dates_times.h"
-#include "system/globalenv.h"
-
-
-
-namespace zorba {
-
-// <YearsFromDurationIterator>
-YearsFromDurationIterator::class_factory<YearsFromDurationIterator>
-YearsFromDurationIterator::g_class_factory;
-
-
-void YearsFromDurationIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-YearsFromDurationIterator::~YearsFromDurationIterator() {}
-
-// </YearsFromDurationIterator>
-
-
-// <MonthsFromDurationIterator>
-MonthsFromDurationIterator::class_factory<MonthsFromDurationIterator>
-MonthsFromDurationIterator::g_class_factory;
-
-
-void MonthsFromDurationIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-MonthsFromDurationIterator::~MonthsFromDurationIterator() {}
-
-// </MonthsFromDurationIterator>
-
-
-// <DaysFromDurationIterator>
-DaysFromDurationIterator::class_factory<DaysFromDurationIterator>
-DaysFromDurationIterator::g_class_factory;
-
-
-void DaysFromDurationIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-DaysFromDurationIterator::~DaysFromDurationIterator() {}
-
-// </DaysFromDurationIterator>
-
-
-// <HoursFromDurationIterator>
-HoursFromDurationIterator::class_factory<HoursFromDurationIterator>
-HoursFromDurationIterator::g_class_factory;
-
-
-void HoursFromDurationIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-HoursFromDurationIterator::~HoursFromDurationIterator() {}
-
-// </HoursFromDurationIterator>
-
-
-// <MinutesFromDurationIterator>
-MinutesFromDurationIterator::class_factory<MinutesFromDurationIterator>
-MinutesFromDurationIterator::g_class_factory;
-
-
-void MinutesFromDurationIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-MinutesFromDurationIterator::~MinutesFromDurationIterator() {}
-
-// </MinutesFromDurationIterator>
-
-
-// <SecondsFromDurationIterator>
-SecondsFromDurationIterator::class_factory<SecondsFromDurationIterator>
-SecondsFromDurationIterator::g_class_factory;
-
-
-void SecondsFromDurationIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-SecondsFromDurationIterator::~SecondsFromDurationIterator() {}
-
-// </SecondsFromDurationIterator>
-
-
-// <YearFromDatetimeIterator>
-YearFromDatetimeIterator::class_factory<YearFromDatetimeIterator>
-YearFromDatetimeIterator::g_class_factory;
-
-
-void YearFromDatetimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-YearFromDatetimeIterator::~YearFromDatetimeIterator() {}
-
-// </YearFromDatetimeIterator>
-
-
-// <MonthFromDatetimeIterator>
-MonthFromDatetimeIterator::class_factory<MonthFromDatetimeIterator>
-MonthFromDatetimeIterator::g_class_factory;
-
-
-void MonthFromDatetimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-MonthFromDatetimeIterator::~MonthFromDatetimeIterator() {}
-
-// </MonthFromDatetimeIterator>
-
-
-// <DayFromDatetimeIterator>
-DayFromDatetimeIterator::class_factory<DayFromDatetimeIterator>
-DayFromDatetimeIterator::g_class_factory;
-
-
-void DayFromDatetimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-DayFromDatetimeIterator::~DayFromDatetimeIterator() {}
-
-// </DayFromDatetimeIterator>
-
-
-// <HoursFromDatetimeIterator>
-HoursFromDatetimeIterator::class_factory<HoursFromDatetimeIterator>
-HoursFromDatetimeIterator::g_class_factory;
-
-
-void HoursFromDatetimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-HoursFromDatetimeIterator::~HoursFromDatetimeIterator() {}
-
-// </HoursFromDatetimeIterator>
-
-
-// <MinutesFromDatetimeIterator>
-MinutesFromDatetimeIterator::class_factory<MinutesFromDatetimeIterator>
-MinutesFromDatetimeIterator::g_class_factory;
-
-
-void MinutesFromDatetimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-MinutesFromDatetimeIterator::~MinutesFromDatetimeIterator() {}
-
-// </MinutesFromDatetimeIterator>
-
-
-// <SecondsFromDatetimeIterator>
-SecondsFromDatetimeIterator::class_factory<SecondsFromDatetimeIterator>
-SecondsFromDatetimeIterator::g_class_factory;
-
-
-void SecondsFromDatetimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-SecondsFromDatetimeIterator::~SecondsFromDatetimeIterator() {}
-
-// </SecondsFromDatetimeIterator>
-
-
-// <TimezoneFromDatetimeIterator>
-TimezoneFromDatetimeIterator::class_factory<TimezoneFromDatetimeIterator>
-TimezoneFromDatetimeIterator::g_class_factory;
-
-
-void TimezoneFromDatetimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-TimezoneFromDatetimeIterator::~TimezoneFromDatetimeIterator() {}
-
-// </TimezoneFromDatetimeIterator>
-
-
-// <YearFromDateIterator>
-YearFromDateIterator::class_factory<YearFromDateIterator>
-YearFromDateIterator::g_class_factory;
-
-
-void YearFromDateIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-YearFromDateIterator::~YearFromDateIterator() {}
-
-// </YearFromDateIterator>
-
-
-// <MonthFromDateIterator>
-MonthFromDateIterator::class_factory<MonthFromDateIterator>
-MonthFromDateIterator::g_class_factory;
-
-
-void MonthFromDateIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-MonthFromDateIterator::~MonthFromDateIterator() {}
-
-// </MonthFromDateIterator>
-
-
-// <DayFromDateIterator>
-DayFromDateIterator::class_factory<DayFromDateIterator>
-DayFromDateIterator::g_class_factory;
-
-
-void DayFromDateIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-DayFromDateIterator::~DayFromDateIterator() {}
-
-// </DayFromDateIterator>
-
-
-// <TimezoneFromDateIterator>
-TimezoneFromDateIterator::class_factory<TimezoneFromDateIterator>
-TimezoneFromDateIterator::g_class_factory;
-
-
-void TimezoneFromDateIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-TimezoneFromDateIterator::~TimezoneFromDateIterator() {}
-
-// </TimezoneFromDateIterator>
-
-
-// <HoursFromTimeIterator>
-HoursFromTimeIterator::class_factory<HoursFromTimeIterator>
-HoursFromTimeIterator::g_class_factory;
-
-
-void HoursFromTimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-HoursFromTimeIterator::~HoursFromTimeIterator() {}
-
-// </HoursFromTimeIterator>
-
-
-// <MinutesFromTimeIterator>
-MinutesFromTimeIterator::class_factory<MinutesFromTimeIterator>
-MinutesFromTimeIterator::g_class_factory;
-
-
-void MinutesFromTimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-MinutesFromTimeIterator::~MinutesFromTimeIterator() {}
-
-// </MinutesFromTimeIterator>
-
-
-// <SecondsFromTimeIterator>
-SecondsFromTimeIterator::class_factory<SecondsFromTimeIterator>
-SecondsFromTimeIterator::g_class_factory;
-
-
-void SecondsFromTimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-SecondsFromTimeIterator::~SecondsFromTimeIterator() {}
-
-// </SecondsFromTimeIterator>
-
-
-// <TimezoneFromTimeIterator>
-TimezoneFromTimeIterator::class_factory<TimezoneFromTimeIterator>
-TimezoneFromTimeIterator::g_class_factory;
-
-
-void TimezoneFromTimeIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-TimezoneFromTimeIterator::~TimezoneFromTimeIterator() {}
-
-// </TimezoneFromTimeIterator>
-
-
-
-}
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+#include "stdafx.h"
+#include "zorbatypes/rchandle.h"
+#include "zorbatypes/zstring.h"
+#include "runtime/visitors/planiter_visitor.h"
+#include "runtime/durations_dates_times/durations_dates_times.h"
+#include "system/globalenv.h"
+
+
+
+namespace zorba {
+
+// <YearsFromDurationIterator>
+YearsFromDurationIterator::class_factory<YearsFromDurationIterator>
+YearsFromDurationIterator::g_class_factory;
+
+
+void YearsFromDurationIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+YearsFromDurationIterator::~YearsFromDurationIterator() {}
+
+// </YearsFromDurationIterator>
+
+
+// <MonthsFromDurationIterator>
+MonthsFromDurationIterator::class_factory<MonthsFromDurationIterator>
+MonthsFromDurationIterator::g_class_factory;
+
+
+void MonthsFromDurationIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+MonthsFromDurationIterator::~MonthsFromDurationIterator() {}
+
+// </MonthsFromDurationIterator>
+
+
+// <DaysFromDurationIterator>
+DaysFromDurationIterator::class_factory<DaysFromDurationIterator>
+DaysFromDurationIterator::g_class_factory;
+
+
+void DaysFromDurationIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+DaysFromDurationIterator::~DaysFromDurationIterator() {}
+
+// </DaysFromDurationIterator>
+
+
+// <HoursFromDurationIterator>
+HoursFromDurationIterator::class_factory<HoursFromDurationIterator>
+HoursFromDurationIterator::g_class_factory;
+
+
+void HoursFromDurationIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+HoursFromDurationIterator::~HoursFromDurationIterator() {}
+
+// </HoursFromDurationIterator>
+
+
+// <MinutesFromDurationIterator>
+MinutesFromDurationIterator::class_factory<MinutesFromDurationIterator>
+MinutesFromDurationIterator::g_class_factory;
+
+
+void MinutesFromDurationIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+MinutesFromDurationIterator::~MinutesFromDurationIterator() {}
+
+// </MinutesFromDurationIterator>
+
+
+// <SecondsFromDurationIterator>
+SecondsFromDurationIterator::class_factory<SecondsFromDurationIterator>
+SecondsFromDurationIterator::g_class_factory;
+
+
+void SecondsFromDurationIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+SecondsFromDurationIterator::~SecondsFromDurationIterator() {}
+
+// </SecondsFromDurationIterator>
+
+
+// <YearFromDatetimeIterator>
+YearFromDatetimeIterator::class_factory<YearFromDatetimeIterator>
+YearFromDatetimeIterator::g_class_factory;
+
+
+void YearFromDatetimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+YearFromDatetimeIterator::~YearFromDatetimeIterator() {}
+
+// </YearFromDatetimeIterator>
+
+
+// <MonthFromDatetimeIterator>
+MonthFromDatetimeIterator::class_factory<MonthFromDatetimeIterator>
+MonthFromDatetimeIterator::g_class_factory;
+
+
+void MonthFromDatetimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+MonthFromDatetimeIterator::~MonthFromDatetimeIterator() {}
+
+// </MonthFromDatetimeIterator>
+
+
+// <DayFromDatetimeIterator>
+DayFromDatetimeIterator::class_factory<DayFromDatetimeIterator>
+DayFromDatetimeIterator::g_class_factory;
+
+
+void DayFromDatetimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+DayFromDatetimeIterator::~DayFromDatetimeIterator() {}
+
+// </DayFromDatetimeIterator>
+
+
+// <HoursFromDatetimeIterator>
+HoursFromDatetimeIterator::class_factory<HoursFromDatetimeIterator>
+HoursFromDatetimeIterator::g_class_factory;
+
+
+void HoursFromDatetimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+HoursFromDatetimeIterator::~HoursFromDatetimeIterator() {}
+
+// </HoursFromDatetimeIterator>
+
+
+// <MinutesFromDatetimeIterator>
+MinutesFromDatetimeIterator::class_factory<MinutesFromDatetimeIterator>
+MinutesFromDatetimeIterator::g_class_factory;
+
+
+void MinutesFromDatetimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+MinutesFromDatetimeIterator::~MinutesFromDatetimeIterator() {}
+
+// </MinutesFromDatetimeIterator>
+
+
+// <SecondsFromDatetimeIterator>
+SecondsFromDatetimeIterator::class_factory<SecondsFromDatetimeIterator>
+SecondsFromDatetimeIterator::g_class_factory;
+
+
+void SecondsFromDatetimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+SecondsFromDatetimeIterator::~SecondsFromDatetimeIterator() {}
+
+// </SecondsFromDatetimeIterator>
+
+
+// <TimezoneFromDatetimeIterator>
+TimezoneFromDatetimeIterator::class_factory<TimezoneFromDatetimeIterator>
+TimezoneFromDatetimeIterator::g_class_factory;
+
+
+void TimezoneFromDatetimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+TimezoneFromDatetimeIterator::~TimezoneFromDatetimeIterator() {}
+
+// </TimezoneFromDatetimeIterator>
+
+
+// <YearFromDateIterator>
+YearFromDateIterator::class_factory<YearFromDateIterator>
+YearFromDateIterator::g_class_factory;
+
+
+void YearFromDateIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+YearFromDateIterator::~YearFromDateIterator() {}
+
+// </YearFromDateIterator>
+
+
+// <MonthFromDateIterator>
+MonthFromDateIterator::class_factory<MonthFromDateIterator>
+MonthFromDateIterator::g_class_factory;
+
+
+void MonthFromDateIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+MonthFromDateIterator::~MonthFromDateIterator() {}
+
+// </MonthFromDateIterator>
+
+
+// <DayFromDateIterator>
+DayFromDateIterator::class_factory<DayFromDateIterator>
+DayFromDateIterator::g_class_factory;
+
+
+void DayFromDateIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+DayFromDateIterator::~DayFromDateIterator() {}
+
+// </DayFromDateIterator>
+
+
+// <TimezoneFromDateIterator>
+TimezoneFromDateIterator::class_factory<TimezoneFromDateIterator>
+TimezoneFromDateIterator::g_class_factory;
+
+
+void TimezoneFromDateIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+TimezoneFromDateIterator::~TimezoneFromDateIterator() {}
+
+// </TimezoneFromDateIterator>
+
+
+// <HoursFromTimeIterator>
+HoursFromTimeIterator::class_factory<HoursFromTimeIterator>
+HoursFromTimeIterator::g_class_factory;
+
+
+void HoursFromTimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+HoursFromTimeIterator::~HoursFromTimeIterator() {}
+
+// </HoursFromTimeIterator>
+
+
+// <MinutesFromTimeIterator>
+MinutesFromTimeIterator::class_factory<MinutesFromTimeIterator>
+MinutesFromTimeIterator::g_class_factory;
+
+
+void MinutesFromTimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+MinutesFromTimeIterator::~MinutesFromTimeIterator() {}
+
+// </MinutesFromTimeIterator>
+
+
+// <SecondsFromTimeIterator>
+SecondsFromTimeIterator::class_factory<SecondsFromTimeIterator>
+SecondsFromTimeIterator::g_class_factory;
+
+
+void SecondsFromTimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+SecondsFromTimeIterator::~SecondsFromTimeIterator() {}
+
+// </SecondsFromTimeIterator>
+
+
+// <TimezoneFromTimeIterator>
+TimezoneFromTimeIterator::class_factory<TimezoneFromTimeIterator>
+TimezoneFromTimeIterator::g_class_factory;
+
+
+void TimezoneFromTimeIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+TimezoneFromTimeIterator::~TimezoneFromTimeIterator() {}
+
+// </TimezoneFromTimeIterator>
+
+
+
+}
+
+

=== modified file 'src/runtime/durations_dates_times/pregenerated/durations_dates_times.h'
--- src/runtime/durations_dates_times/pregenerated/durations_dates_times.h	2012-04-24 12:39:38 +0000
+++ src/runtime/durations_dates_times/pregenerated/durations_dates_times.h	2012-05-02 06:48:21 +0000
@@ -1,756 +1,756 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-#ifndef ZORBA_RUNTIME_DURATIONS_DATES_TIMES_DURATIONS_DATES_TIMES_H
-#define ZORBA_RUNTIME_DURATIONS_DATES_TIMES_DURATIONS_DATES_TIMES_H
-
-
-#include "common/shared_types.h"
-
-
-
-#include "runtime/base/narybase.h"
-
-
-namespace zorba {
-
-/**
- * fn:years-from-duration
- * Author: Zorba Team
- */
-class YearsFromDurationIterator : public NaryBaseIterator<YearsFromDurationIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(YearsFromDurationIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(YearsFromDurationIterator,
-    NaryBaseIterator<YearsFromDurationIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<YearsFromDurationIterator, PlanIteratorState>*)this);
-  }
-
-  YearsFromDurationIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<YearsFromDurationIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~YearsFromDurationIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:months-from-duration
- * Author: Zorba Team
- */
-class MonthsFromDurationIterator : public NaryBaseIterator<MonthsFromDurationIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(MonthsFromDurationIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MonthsFromDurationIterator,
-    NaryBaseIterator<MonthsFromDurationIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<MonthsFromDurationIterator, PlanIteratorState>*)this);
-  }
-
-  MonthsFromDurationIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<MonthsFromDurationIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~MonthsFromDurationIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:days-from-duration
- * Author: Zorba Team
- */
-class DaysFromDurationIterator : public NaryBaseIterator<DaysFromDurationIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(DaysFromDurationIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DaysFromDurationIterator,
-    NaryBaseIterator<DaysFromDurationIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<DaysFromDurationIterator, PlanIteratorState>*)this);
-  }
-
-  DaysFromDurationIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<DaysFromDurationIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~DaysFromDurationIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:hours-from-duration
- * Author: Zorba Team
- */
-class HoursFromDurationIterator : public NaryBaseIterator<HoursFromDurationIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(HoursFromDurationIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(HoursFromDurationIterator,
-    NaryBaseIterator<HoursFromDurationIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<HoursFromDurationIterator, PlanIteratorState>*)this);
-  }
-
-  HoursFromDurationIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<HoursFromDurationIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~HoursFromDurationIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:minutes-from-duration
- * Author: Zorba Team
- */
-class MinutesFromDurationIterator : public NaryBaseIterator<MinutesFromDurationIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(MinutesFromDurationIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MinutesFromDurationIterator,
-    NaryBaseIterator<MinutesFromDurationIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<MinutesFromDurationIterator, PlanIteratorState>*)this);
-  }
-
-  MinutesFromDurationIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<MinutesFromDurationIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~MinutesFromDurationIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:seconds-from-duration
- * Author: Zorba Team
- */
-class SecondsFromDurationIterator : public NaryBaseIterator<SecondsFromDurationIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(SecondsFromDurationIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(SecondsFromDurationIterator,
-    NaryBaseIterator<SecondsFromDurationIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<SecondsFromDurationIterator, PlanIteratorState>*)this);
-  }
-
-  SecondsFromDurationIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<SecondsFromDurationIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~SecondsFromDurationIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:year-from-dateTime
- * Author: Zorba Team
- */
-class YearFromDatetimeIterator : public NaryBaseIterator<YearFromDatetimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(YearFromDatetimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(YearFromDatetimeIterator,
-    NaryBaseIterator<YearFromDatetimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<YearFromDatetimeIterator, PlanIteratorState>*)this);
-  }
-
-  YearFromDatetimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<YearFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~YearFromDatetimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:month-from-dateTime
- * Author: Zorba Team
- */
-class MonthFromDatetimeIterator : public NaryBaseIterator<MonthFromDatetimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(MonthFromDatetimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MonthFromDatetimeIterator,
-    NaryBaseIterator<MonthFromDatetimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<MonthFromDatetimeIterator, PlanIteratorState>*)this);
-  }
-
-  MonthFromDatetimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<MonthFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~MonthFromDatetimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:day-from-dateTime
- * Author: Zorba Team
- */
-class DayFromDatetimeIterator : public NaryBaseIterator<DayFromDatetimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(DayFromDatetimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DayFromDatetimeIterator,
-    NaryBaseIterator<DayFromDatetimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<DayFromDatetimeIterator, PlanIteratorState>*)this);
-  }
-
-  DayFromDatetimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<DayFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~DayFromDatetimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:hours-from-dateTime
- * Author: Zorba Team
- */
-class HoursFromDatetimeIterator : public NaryBaseIterator<HoursFromDatetimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(HoursFromDatetimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(HoursFromDatetimeIterator,
-    NaryBaseIterator<HoursFromDatetimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<HoursFromDatetimeIterator, PlanIteratorState>*)this);
-  }
-
-  HoursFromDatetimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<HoursFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~HoursFromDatetimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:minutes-from-dateTime
- * Author: Zorba Team
- */
-class MinutesFromDatetimeIterator : public NaryBaseIterator<MinutesFromDatetimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(MinutesFromDatetimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MinutesFromDatetimeIterator,
-    NaryBaseIterator<MinutesFromDatetimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<MinutesFromDatetimeIterator, PlanIteratorState>*)this);
-  }
-
-  MinutesFromDatetimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<MinutesFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~MinutesFromDatetimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:seconds-from-dateTime
- * Author: Zorba Team
- */
-class SecondsFromDatetimeIterator : public NaryBaseIterator<SecondsFromDatetimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(SecondsFromDatetimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(SecondsFromDatetimeIterator,
-    NaryBaseIterator<SecondsFromDatetimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<SecondsFromDatetimeIterator, PlanIteratorState>*)this);
-  }
-
-  SecondsFromDatetimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<SecondsFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~SecondsFromDatetimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:timezone-from-dateTime
- * Author: Zorba Team
- */
-class TimezoneFromDatetimeIterator : public NaryBaseIterator<TimezoneFromDatetimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(TimezoneFromDatetimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(TimezoneFromDatetimeIterator,
-    NaryBaseIterator<TimezoneFromDatetimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<TimezoneFromDatetimeIterator, PlanIteratorState>*)this);
-  }
-
-  TimezoneFromDatetimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<TimezoneFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~TimezoneFromDatetimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:year-from-date
- * Author: Zorba Team
- */
-class YearFromDateIterator : public NaryBaseIterator<YearFromDateIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(YearFromDateIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(YearFromDateIterator,
-    NaryBaseIterator<YearFromDateIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<YearFromDateIterator, PlanIteratorState>*)this);
-  }
-
-  YearFromDateIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<YearFromDateIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~YearFromDateIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:month-from-date
- * Author: Zorba Team
- */
-class MonthFromDateIterator : public NaryBaseIterator<MonthFromDateIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(MonthFromDateIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MonthFromDateIterator,
-    NaryBaseIterator<MonthFromDateIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<MonthFromDateIterator, PlanIteratorState>*)this);
-  }
-
-  MonthFromDateIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<MonthFromDateIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~MonthFromDateIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:day-from-date
- * Author: Zorba Team
- */
-class DayFromDateIterator : public NaryBaseIterator<DayFromDateIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(DayFromDateIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DayFromDateIterator,
-    NaryBaseIterator<DayFromDateIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<DayFromDateIterator, PlanIteratorState>*)this);
-  }
-
-  DayFromDateIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<DayFromDateIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~DayFromDateIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:timezone-from-date
- * Author: Zorba Team
- */
-class TimezoneFromDateIterator : public NaryBaseIterator<TimezoneFromDateIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(TimezoneFromDateIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(TimezoneFromDateIterator,
-    NaryBaseIterator<TimezoneFromDateIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<TimezoneFromDateIterator, PlanIteratorState>*)this);
-  }
-
-  TimezoneFromDateIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<TimezoneFromDateIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~TimezoneFromDateIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:hours-from-time
- * Author: Zorba Team
- */
-class HoursFromTimeIterator : public NaryBaseIterator<HoursFromTimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(HoursFromTimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(HoursFromTimeIterator,
-    NaryBaseIterator<HoursFromTimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<HoursFromTimeIterator, PlanIteratorState>*)this);
-  }
-
-  HoursFromTimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<HoursFromTimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~HoursFromTimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:minutes-from-time
- * Author: Zorba Team
- */
-class MinutesFromTimeIterator : public NaryBaseIterator<MinutesFromTimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(MinutesFromTimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MinutesFromTimeIterator,
-    NaryBaseIterator<MinutesFromTimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<MinutesFromTimeIterator, PlanIteratorState>*)this);
-  }
-
-  MinutesFromTimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<MinutesFromTimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~MinutesFromTimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:seconds-from-time
- * Author: Zorba Team
- */
-class SecondsFromTimeIterator : public NaryBaseIterator<SecondsFromTimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(SecondsFromTimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(SecondsFromTimeIterator,
-    NaryBaseIterator<SecondsFromTimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<SecondsFromTimeIterator, PlanIteratorState>*)this);
-  }
-
-  SecondsFromTimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<SecondsFromTimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~SecondsFromTimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:timezone-from-time
- * Author: Zorba Team
- */
-class TimezoneFromTimeIterator : public NaryBaseIterator<TimezoneFromTimeIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(TimezoneFromTimeIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(TimezoneFromTimeIterator,
-    NaryBaseIterator<TimezoneFromTimeIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<TimezoneFromTimeIterator, PlanIteratorState>*)this);
-  }
-
-  TimezoneFromTimeIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<TimezoneFromTimeIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~TimezoneFromTimeIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-}
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+#ifndef ZORBA_RUNTIME_DURATIONS_DATES_TIMES_DURATIONS_DATES_TIMES_H
+#define ZORBA_RUNTIME_DURATIONS_DATES_TIMES_DURATIONS_DATES_TIMES_H
+
+
+#include "common/shared_types.h"
+
+
+
+#include "runtime/base/narybase.h"
+
+
+namespace zorba {
+
+/**
+ * fn:years-from-duration
+ * Author: Zorba Team
+ */
+class YearsFromDurationIterator : public NaryBaseIterator<YearsFromDurationIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(YearsFromDurationIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(YearsFromDurationIterator,
+    NaryBaseIterator<YearsFromDurationIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<YearsFromDurationIterator, PlanIteratorState>*)this);
+  }
+
+  YearsFromDurationIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<YearsFromDurationIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~YearsFromDurationIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:months-from-duration
+ * Author: Zorba Team
+ */
+class MonthsFromDurationIterator : public NaryBaseIterator<MonthsFromDurationIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(MonthsFromDurationIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MonthsFromDurationIterator,
+    NaryBaseIterator<MonthsFromDurationIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<MonthsFromDurationIterator, PlanIteratorState>*)this);
+  }
+
+  MonthsFromDurationIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<MonthsFromDurationIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~MonthsFromDurationIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:days-from-duration
+ * Author: Zorba Team
+ */
+class DaysFromDurationIterator : public NaryBaseIterator<DaysFromDurationIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(DaysFromDurationIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DaysFromDurationIterator,
+    NaryBaseIterator<DaysFromDurationIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<DaysFromDurationIterator, PlanIteratorState>*)this);
+  }
+
+  DaysFromDurationIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<DaysFromDurationIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~DaysFromDurationIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:hours-from-duration
+ * Author: Zorba Team
+ */
+class HoursFromDurationIterator : public NaryBaseIterator<HoursFromDurationIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(HoursFromDurationIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(HoursFromDurationIterator,
+    NaryBaseIterator<HoursFromDurationIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<HoursFromDurationIterator, PlanIteratorState>*)this);
+  }
+
+  HoursFromDurationIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<HoursFromDurationIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~HoursFromDurationIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:minutes-from-duration
+ * Author: Zorba Team
+ */
+class MinutesFromDurationIterator : public NaryBaseIterator<MinutesFromDurationIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(MinutesFromDurationIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MinutesFromDurationIterator,
+    NaryBaseIterator<MinutesFromDurationIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<MinutesFromDurationIterator, PlanIteratorState>*)this);
+  }
+
+  MinutesFromDurationIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<MinutesFromDurationIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~MinutesFromDurationIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:seconds-from-duration
+ * Author: Zorba Team
+ */
+class SecondsFromDurationIterator : public NaryBaseIterator<SecondsFromDurationIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(SecondsFromDurationIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(SecondsFromDurationIterator,
+    NaryBaseIterator<SecondsFromDurationIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<SecondsFromDurationIterator, PlanIteratorState>*)this);
+  }
+
+  SecondsFromDurationIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<SecondsFromDurationIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~SecondsFromDurationIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:year-from-dateTime
+ * Author: Zorba Team
+ */
+class YearFromDatetimeIterator : public NaryBaseIterator<YearFromDatetimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(YearFromDatetimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(YearFromDatetimeIterator,
+    NaryBaseIterator<YearFromDatetimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<YearFromDatetimeIterator, PlanIteratorState>*)this);
+  }
+
+  YearFromDatetimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<YearFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~YearFromDatetimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:month-from-dateTime
+ * Author: Zorba Team
+ */
+class MonthFromDatetimeIterator : public NaryBaseIterator<MonthFromDatetimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(MonthFromDatetimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MonthFromDatetimeIterator,
+    NaryBaseIterator<MonthFromDatetimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<MonthFromDatetimeIterator, PlanIteratorState>*)this);
+  }
+
+  MonthFromDatetimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<MonthFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~MonthFromDatetimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:day-from-dateTime
+ * Author: Zorba Team
+ */
+class DayFromDatetimeIterator : public NaryBaseIterator<DayFromDatetimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(DayFromDatetimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DayFromDatetimeIterator,
+    NaryBaseIterator<DayFromDatetimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<DayFromDatetimeIterator, PlanIteratorState>*)this);
+  }
+
+  DayFromDatetimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<DayFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~DayFromDatetimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:hours-from-dateTime
+ * Author: Zorba Team
+ */
+class HoursFromDatetimeIterator : public NaryBaseIterator<HoursFromDatetimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(HoursFromDatetimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(HoursFromDatetimeIterator,
+    NaryBaseIterator<HoursFromDatetimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<HoursFromDatetimeIterator, PlanIteratorState>*)this);
+  }
+
+  HoursFromDatetimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<HoursFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~HoursFromDatetimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:minutes-from-dateTime
+ * Author: Zorba Team
+ */
+class MinutesFromDatetimeIterator : public NaryBaseIterator<MinutesFromDatetimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(MinutesFromDatetimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MinutesFromDatetimeIterator,
+    NaryBaseIterator<MinutesFromDatetimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<MinutesFromDatetimeIterator, PlanIteratorState>*)this);
+  }
+
+  MinutesFromDatetimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<MinutesFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~MinutesFromDatetimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:seconds-from-dateTime
+ * Author: Zorba Team
+ */
+class SecondsFromDatetimeIterator : public NaryBaseIterator<SecondsFromDatetimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(SecondsFromDatetimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(SecondsFromDatetimeIterator,
+    NaryBaseIterator<SecondsFromDatetimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<SecondsFromDatetimeIterator, PlanIteratorState>*)this);
+  }
+
+  SecondsFromDatetimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<SecondsFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~SecondsFromDatetimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:timezone-from-dateTime
+ * Author: Zorba Team
+ */
+class TimezoneFromDatetimeIterator : public NaryBaseIterator<TimezoneFromDatetimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(TimezoneFromDatetimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(TimezoneFromDatetimeIterator,
+    NaryBaseIterator<TimezoneFromDatetimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<TimezoneFromDatetimeIterator, PlanIteratorState>*)this);
+  }
+
+  TimezoneFromDatetimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<TimezoneFromDatetimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~TimezoneFromDatetimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:year-from-date
+ * Author: Zorba Team
+ */
+class YearFromDateIterator : public NaryBaseIterator<YearFromDateIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(YearFromDateIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(YearFromDateIterator,
+    NaryBaseIterator<YearFromDateIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<YearFromDateIterator, PlanIteratorState>*)this);
+  }
+
+  YearFromDateIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<YearFromDateIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~YearFromDateIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:month-from-date
+ * Author: Zorba Team
+ */
+class MonthFromDateIterator : public NaryBaseIterator<MonthFromDateIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(MonthFromDateIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MonthFromDateIterator,
+    NaryBaseIterator<MonthFromDateIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<MonthFromDateIterator, PlanIteratorState>*)this);
+  }
+
+  MonthFromDateIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<MonthFromDateIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~MonthFromDateIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:day-from-date
+ * Author: Zorba Team
+ */
+class DayFromDateIterator : public NaryBaseIterator<DayFromDateIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(DayFromDateIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(DayFromDateIterator,
+    NaryBaseIterator<DayFromDateIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<DayFromDateIterator, PlanIteratorState>*)this);
+  }
+
+  DayFromDateIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<DayFromDateIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~DayFromDateIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:timezone-from-date
+ * Author: Zorba Team
+ */
+class TimezoneFromDateIterator : public NaryBaseIterator<TimezoneFromDateIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(TimezoneFromDateIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(TimezoneFromDateIterator,
+    NaryBaseIterator<TimezoneFromDateIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<TimezoneFromDateIterator, PlanIteratorState>*)this);
+  }
+
+  TimezoneFromDateIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<TimezoneFromDateIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~TimezoneFromDateIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:hours-from-time
+ * Author: Zorba Team
+ */
+class HoursFromTimeIterator : public NaryBaseIterator<HoursFromTimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(HoursFromTimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(HoursFromTimeIterator,
+    NaryBaseIterator<HoursFromTimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<HoursFromTimeIterator, PlanIteratorState>*)this);
+  }
+
+  HoursFromTimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<HoursFromTimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~HoursFromTimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:minutes-from-time
+ * Author: Zorba Team
+ */
+class MinutesFromTimeIterator : public NaryBaseIterator<MinutesFromTimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(MinutesFromTimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(MinutesFromTimeIterator,
+    NaryBaseIterator<MinutesFromTimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<MinutesFromTimeIterator, PlanIteratorState>*)this);
+  }
+
+  MinutesFromTimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<MinutesFromTimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~MinutesFromTimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:seconds-from-time
+ * Author: Zorba Team
+ */
+class SecondsFromTimeIterator : public NaryBaseIterator<SecondsFromTimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(SecondsFromTimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(SecondsFromTimeIterator,
+    NaryBaseIterator<SecondsFromTimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<SecondsFromTimeIterator, PlanIteratorState>*)this);
+  }
+
+  SecondsFromTimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<SecondsFromTimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~SecondsFromTimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+/**
+ * fn:timezone-from-time
+ * Author: Zorba Team
+ */
+class TimezoneFromTimeIterator : public NaryBaseIterator<TimezoneFromTimeIterator, PlanIteratorState>
+{ 
+public:
+  SERIALIZABLE_CLASS(TimezoneFromTimeIterator);
+
+  SERIALIZABLE_CLASS_CONSTRUCTOR2T(TimezoneFromTimeIterator,
+    NaryBaseIterator<TimezoneFromTimeIterator, PlanIteratorState>);
+
+  void serialize( ::zorba::serialization::Archiver& ar)
+  {
+    serialize_baseclass(ar,
+    (NaryBaseIterator<TimezoneFromTimeIterator, PlanIteratorState>*)this);
+  }
+
+  TimezoneFromTimeIterator(
+    static_context* sctx,
+    const QueryLoc& loc,
+    std::vector<PlanIter_t>& children)
+    : 
+    NaryBaseIterator<TimezoneFromTimeIterator, PlanIteratorState>(sctx, loc, children)
+  {}
+
+  virtual ~TimezoneFromTimeIterator();
+
+  void accept(PlanIterVisitor& v) const;
+
+  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
+};
+
+
+}
+#endif
+/*
+ * Local variables:
+ * mode: c++
+ * End:
+ */ 

=== modified file 'src/runtime/errors_and_diagnostics/pregenerated/errors_and_diagnostics.cpp'
--- src/runtime/errors_and_diagnostics/pregenerated/errors_and_diagnostics.cpp	2012-04-24 12:39:38 +0000
+++ src/runtime/errors_and_diagnostics/pregenerated/errors_and_diagnostics.cpp	2012-05-02 06:48:21 +0000
@@ -1,100 +1,100 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-
-#include "stdafx.h"
-#include "zorbatypes/rchandle.h"
-#include "zorbatypes/zstring.h"
-#include "runtime/visitors/planiter_visitor.h"
-#include "runtime/errors_and_diagnostics/errors_and_diagnostics.h"
-#include "system/globalenv.h"
-
-
-
-namespace zorba {
-
-// <ErrorIterator>
-ErrorIterator::class_factory<ErrorIterator>
-ErrorIterator::g_class_factory;
-
-
-void ErrorIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-ErrorIterator::~ErrorIterator() {}
-
-// </ErrorIterator>
-
-
-// <TraceIterator>
-TraceIterator::class_factory<TraceIterator>
-TraceIterator::g_class_factory;
-
-
-void TraceIterator::accept(PlanIterVisitor& v) const {
-  v.beginVisit(*this);
-
-  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
-  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
-  for ( ; lIter != lEnd; ++lIter ){
-    (*lIter)->accept(v);
-  }
-
-  v.endVisit(*this);
-}
-
-TraceIterator::~TraceIterator() {}
-
-TraceIteratorState::TraceIteratorState() {}
-
-TraceIteratorState::~TraceIteratorState() {}
-
-
-void TraceIteratorState::init(PlanState& planState) {
-  PlanIteratorState::init(planState);
-  theTagItem = NULL;
-  theIndex = 0;
-  theOS = 0;
-}
-
-void TraceIteratorState::reset(PlanState& planState) {
-  PlanIteratorState::reset(planState);
-  theTagItem = NULL;
-  theIndex = 0;
-  theOS = 0;
-}
-// </TraceIterator>
-
-
-
-}
-
-
+/*
+ * Copyright 2006-2008 The FLWOR Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+// ******************************************
+// *                                        *
+// * THIS IS A GENERATED FILE. DO NOT EDIT! *
+// * SEE .xml FILE WITH SAME NAME           *
+// *                                        *
+// ******************************************
+
+#include "stdafx.h"
+#include "zorbatypes/rchandle.h"
+#include "zorbatypes/zstring.h"
+#include "runtime/visitors/planiter_visitor.h"
+#include "runtime/errors_and_diagnostics/errors_and_diagnostics.h"
+#include "system/globalenv.h"
+
+
+
+namespace zorba {
+
+// <ErrorIterator>
+ErrorIterator::class_factory<ErrorIterator>
+ErrorIterator::g_class_factory;
+
+
+void ErrorIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+ErrorIterator::~ErrorIterator() {}
+
+// </ErrorIterator>
+
+
+// <TraceIterator>
+TraceIterator::class_factory<TraceIterator>
+TraceIterator::g_class_factory;
+
+
+void TraceIterator::accept(PlanIterVisitor& v) const {
+  v.beginVisit(*this);
+
+  std::vector<PlanIter_t>::const_iterator lIter = theChildren.begin();
+  std::vector<PlanIter_t>::const_iterator lEnd = theChildren.end();
+  for ( ; lIter != lEnd; ++lIter ){
+    (*lIter)->accept(v);
+  }
+
+  v.endVisit(*this);
+}
+
+TraceIterator::~TraceIterator() {}
+
+TraceIteratorState::TraceIteratorState() {}
+
+TraceIteratorState::~TraceIteratorState() {}
+
+
+void TraceIteratorState::init(PlanState& planState) {
+  PlanIteratorState::init(planState);
+  theTagItem = NULL;
+  theIndex = 0;
+  theOS = 0;
+}
+
+void TraceIteratorState::reset(PlanState& planState) {
+  PlanIteratorState::reset(planState);
+  theTagItem = NULL;
+  theIndex = 0;
+  theOS = 0;
+}
+// </TraceIterator>
+
+
+
+}
+
+

=== modified file 'src/runtime/errors_and_diagnostics/pregenerated/errors_and_diagnostics.h'
--- src/runtime/errors_and_diagnostics/pregenerated/errors_and_diagnostics.h	2012-04-24 12:39:38 +0000
+++ src/runtime/errors_and_diagnostics/pregenerated/errors_and_diagnostics.h	2012-05-02 06:48:21 +0000
@@ -1,125 +1,125 @@
-/*
- * Copyright 2006-2008 The FLWOR Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-// ******************************************
-// *                                        *
-// * THIS IS A GENERATED FILE. DO NOT EDIT! *
-// * SEE .xml FILE WITH SAME NAME           *
-// *                                        *
-// ******************************************
-#ifndef ZORBA_RUNTIME_ERRORS_AND_DIAGNOSTICS_ERRORS_AND_DIAGNOSTICS_H
-#define ZORBA_RUNTIME_ERRORS_AND_DIAGNOSTICS_ERRORS_AND_DIAGNOSTICS_H
-
-
-#include "common/shared_types.h"
-
-
-
-#include "runtime/base/narybase.h"
-
-
-namespace zorba {
-
-/**
- * fn:error
- * Author: Zorba Team
- */
-class ErrorIterator : public NaryBaseIterator<ErrorIterator, PlanIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(ErrorIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(ErrorIterator,
-    NaryBaseIterator<ErrorIterator, PlanIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<ErrorIterator, PlanIteratorState>*)this);
-  }
-
-  ErrorIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<ErrorIterator, PlanIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~ErrorIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-/**
- * fn:trace
- * Author: Zorba Team
- */
-class TraceIteratorState : public PlanIteratorState
-{
-public:
-  store::Item_t theTagItem; //
-  uint32_t theIndex; //
-  std::ostream* theOS; //
-
-  TraceIteratorState();
-
-  ~TraceIteratorState();
-
-  void init(PlanState&);
-  void reset(PlanState&);
-};
-
-class TraceIterator : public NaryBaseIterator<TraceIterator, TraceIteratorState>
-{ 
-public:
-  SERIALIZABLE_CLASS(TraceIterator);
-
-  SERIALIZABLE_CLASS_CONSTRUCTOR2T(TraceIterator,
-    NaryBaseIterator<TraceIterator, TraceIteratorState>);
-
-  void serialize( ::zorba::serialization::Archiver& ar)
-  {
-    serialize_baseclass(ar,
-    (NaryBaseIterator<TraceIterator, TraceIteratorState>*)this);
-  }
-
-  TraceIterator(
-    static_context* sctx,
-    const QueryLoc& loc,
-    std::vector<PlanIter_t>& children)
-    : 
-    NaryBaseIterator<TraceIterator, TraceIteratorState>(sctx, loc, children)
-  {}
-
-  virtual ~TraceIterator();
-
-  void accept(PlanIterVisitor& v) const;
-
-  bool nextImpl(store::Item_t& result, PlanState& aPlanState) const;
-};
-
-
-}
-#endif
-/*
- * Local variables:
- * mode: c++
- * End:
- */ 
+/*
+ * Copy

Follow ups