Update of /cvsroot/monetdb/pathfinder/compiler/semantics
In directory sc8-pr-cvs16:/tmp/cvs-serv31589/semantics

Modified Files:
        xquery_fo.c 
Log Message:
-- Fix fn:string: Call specialized variants as long as the most general one
   doesn't work.


Index: xquery_fo.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/semantics/xquery_fo.c,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -d -r1.122 -r1.123
--- xquery_fo.c 4 May 2007 09:44:53 -0000       1.122
+++ xquery_fo.c 8 May 2007 12:44:40 -0000       1.123
@@ -102,14 +102,86 @@
       { .ns = PFns_fn, .loc = "string",
         .arity = 0, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_none () },
+            .ret_ty = PFty_xs_string () } } }
+      /* fn:string ((atomic|attribute)?) as string */
+      /* (F&O 2.3) */
+    , { .ns = PFns_fn, .loc = "string",
+        .arity = 1,
+        .sig_count = 1, .sigs = { {
+            .par_ty = (PFty_t[]) { PFty_opt (
+                        PFty_choice (
+                            PFty_atomic (), PFty_xs_anyAttribute ())) },
             .ret_ty = PFty_xs_string () } },
-        .alg = PFbui_fn_string}
+        .alg = PFbui_fn_string_attr }
+    , /* fn:string ((atomic|text)?) as string */
+      /* (F&O 2.3) */
+      { .ns = PFns_fn, .loc = "string",
+        .arity = 1,
+        .sig_count = 1, .sigs = { {
+            .par_ty = (PFty_t[]) { PFty_opt (
+                        PFty_choice (
+                            PFty_atomic (), PFty_text ())) },
+            .ret_ty = PFty_xs_string () } },
+        .alg = PFbui_fn_string_text }
+    , /* fn:string ((atomic|processing-instruction)?) as string */
+      /* (F&O 2.3) */
+      { .ns = PFns_fn, .loc = "string",
+        .arity = 1,
+        .sig_count = 1, .sigs = { {
+            .par_ty = (PFty_t[]) { PFty_opt (
+                        PFty_choice (
+                            PFty_atomic (), PFty_pi (NULL))) },
+            .ret_ty = PFty_xs_string () } },
+        .alg = PFbui_fn_string_pi }
+    , /* fn:string ((atomic|comment)?) as string */
+      /* (F&O 2.3) */
+      { .ns = PFns_fn, .loc = "string",
+        .arity = 1,
+        .sig_count = 1, .sigs = { {
+            .par_ty = (PFty_t[]) { PFty_opt (
+                        PFty_choice (
+                            PFty_atomic (), PFty_text ())) },
+            .ret_ty = PFty_xs_string () } },
+        .alg = PFbui_fn_string_comm }
+    , /* fn:string ((element)?) as string */
+      /* (F&O 2.3) */
+      { .ns = PFns_fn, .loc = "string",
+        .arity = 1,
+        .sig_count = 1, .sigs = { {
+            .par_ty = (PFty_t[]) { PFty_opt (
+                        PFty_choice (
+                            PFty_atomic (),
+                            PFty_choice (
+                                PFty_xs_anyElement (),
+                                PFty_choice (
+                                    PFty_text (),
+                                    PFty_doc (PFty_xs_anyType ()))))) },
+            .ret_ty = PFty_xs_string () } },
+        .alg = PFbui_fn_string_elem }
+    , /* fn:string ((atomic|element|doc|text|attribute)?) as string */
+      /* (F&O 2.3) */
+      { .ns = PFns_fn, .loc = "string",
+        .arity = 1,
+        .sig_count = 1, .sigs = { {
+            .par_ty = (PFty_t[]) { PFty_opt (
+                        PFty_choice (
+                            PFty_atomic (),
+                            PFty_choice (
+                                PFty_xs_anyElement (),
+                                PFty_choice (
+                                    PFty_doc (PFty_xs_anyType ()),
+                                    PFty_choice (
+                                        PFty_text (),
+                                        PFty_xs_anyAttribute ()))))) },
+            .ret_ty = PFty_xs_string () } },
+        .alg = PFbui_fn_string_elem_attr }
     , /* fn:string (item?) as string */
+      /* (F&O 2.3) */
       { .ns = PFns_fn, .loc = "string",
         .arity = 1, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_opt (PFty_item ()) },
             .ret_ty = PFty_xs_string () } },
-        .alg = PFbui_fn_string}
+        .alg = PFbui_fn_string }
     
 /* 2.4. fn:data */
       /* fn:data ((atomic|attribute)*) as atomic* */


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to