[uim-commit] r2034 - in branches/r5rs/sigscheme: . script

kzk at freedesktop.org kzk at freedesktop.org
Sun Nov 6 08:59:08 PST 2005


Author: kzk
Date: 2005-11-06 08:59:04 -0800 (Sun, 06 Nov 2005)
New Revision: 2034

Added:
   branches/r5rs/sigscheme/operations-r5rs-deepcadrs.c
Modified:
   branches/r5rs/sigscheme/operations.c
   branches/r5rs/sigscheme/script/build_func_table.rb
   branches/r5rs/sigscheme/sigscheme.c
   branches/r5rs/sigscheme/sigscheme.h
   branches/r5rs/sigscheme/sigschemefunctable.h
Log:
* split deep c[ad]+r operations to operations-r5rs-deepcadrs.c

* sigscheme/sigschemefunctable.h
  - (r5rs_deepcadrs_func_info_table): new variable
* sigscheme/operations-r5rs-deepcadrs.c
  - (ScmOp_caaar, ScmOp_caadr, ScmOp_cadar, ScmOp_cdaar,
     ScmOp_cdadr, ScmOp_cddar,
     ScmOp_caaaar, ScmOp_caaadr, ScmOp_caadar, ScmOp_caaddr,
     ScmOp_cadaar, ScmOp_cadadr, ScmOp_caddar, ScmOp_cadddr,
     ScmOp_cdaaar, ScmOp_cdaadr, ScmOp_cdadar, ScmOp_cdaddr,
     ScmOp_cddaar, ScmOp_cddadr, ScmOp_cdddar, ScmOp_cddddr)
    : moved from operations.c
* sigscheme/operations.c
  - (ScmOp_caaar, ScmOp_caadr, ScmOp_cadar, ScmOp_cdaar,
     ScmOp_cdadr, ScmOp_cddar,
     ScmOp_caaaar, ScmOp_caaadr, ScmOp_caadar, ScmOp_caaddr,
     ScmOp_cadaar, ScmOp_cadadr, ScmOp_caddar, ScmOp_cadddr,
     ScmOp_cdaaar, ScmOp_cdaadr, ScmOp_cdadar, ScmOp_cdaddr,
     ScmOp_cddaar, ScmOp_cddadr, ScmOp_cdddar, ScmOp_cddddr)
    : moved to operations-r5rs-deepcadrs.c
* sigscheme/sigscheme.c
  - (SigScm_Initialize_internal): register table
    r5rs_deepcadrs_func_info_table
* sigscheme/sigscheme.h
  - update section
* sigscheme/script/build_func_table.rb
  - change to generate r5rs_deepcadrs_func_info_table



Added: branches/r5rs/sigscheme/operations-r5rs-deepcadrs.c
===================================================================
--- branches/r5rs/sigscheme/operations-r5rs-deepcadrs.c	2005-11-06 16:28:41 UTC (rev 2033)
+++ branches/r5rs/sigscheme/operations-r5rs-deepcadrs.c	2005-11-06 16:59:04 UTC (rev 2034)
@@ -0,0 +1,174 @@
+/*===========================================================================
+ *  FileName : operations-r5rs-deepcadrs.c
+ *  About    : deep c[ad]+r operations
+ *
+ *  Copyright (C) 2005      by Kazuki Ohta (mover at hct.zaq.ne.jp)
+ *
+ *  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *  1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *  3. Neither the name of authors nor the names of its contributors
+ *     may be used to endorse or promote products derived from this software
+ *     without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ *  IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ *  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ *  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+===========================================================================*/
+
+/*=======================================
+  System Include
+=======================================*/
+
+/*=======================================
+  Local Include
+=======================================*/
+#include "sigscheme.h"
+#include "sigschemeinternal.h"
+
+/*=======================================
+  File Local Macro Definitions
+=======================================*/
+
+/*=======================================
+  File Local Type Definitions
+=======================================*/
+
+/*=======================================
+  Variable Declarations
+=======================================*/
+
+/*=======================================
+  File Local Function Declarations
+=======================================*/
+
+/*=======================================
+  Function Implementations
+=======================================*/
+ScmObj ScmOp_caaar(ScmObj lst)
+{
+    DECLARE_FUNCTION("caaar", ProcedureFixed1);
+    return ScmOp_car( ScmOp_car( ScmOp_car(lst) ));
+}
+ScmObj ScmOp_caadr(ScmObj lst)
+{
+    DECLARE_FUNCTION("caadr", ProcedureFixed1);
+    return ScmOp_car( ScmOp_car( ScmOp_cdr(lst) ));
+}
+ScmObj ScmOp_cadar(ScmObj lst)
+{
+    DECLARE_FUNCTION("cadar", ProcedureFixed1);
+    return ScmOp_car( ScmOp_cdr( ScmOp_car(lst) ));
+}
+ScmObj ScmOp_cdaar(ScmObj lst)
+{
+    DECLARE_FUNCTION("cdaar", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_car( ScmOp_car(lst) ));
+}
+ScmObj ScmOp_cdadr(ScmObj lst)
+{
+    DECLARE_FUNCTION("cdadr", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_car( ScmOp_cdr(lst) ));
+}
+ScmObj ScmOp_cddar(ScmObj lst)
+{
+    DECLARE_FUNCTION("cddar", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_cdr( ScmOp_car(lst) ));
+}
+
+ScmObj ScmOp_caaaar(ScmObj lst)
+{
+    DECLARE_FUNCTION("caaaar", ProcedureFixed1);
+    return ScmOp_car( ScmOp_car( ScmOp_car( ScmOp_car(lst) )));
+}
+ScmObj ScmOp_caaadr(ScmObj lst)
+{
+    DECLARE_FUNCTION("caaadr", ProcedureFixed1);
+    return ScmOp_car( ScmOp_car( ScmOp_car( ScmOp_cdr(lst) )));
+}
+ScmObj ScmOp_caadar(ScmObj lst)
+{
+    DECLARE_FUNCTION("caadar", ProcedureFixed1);
+    return ScmOp_car( ScmOp_car( ScmOp_cdr( ScmOp_car(lst) )));
+}
+ScmObj ScmOp_caaddr(ScmObj lst)
+{
+    DECLARE_FUNCTION("caaddr", ProcedureFixed1);
+    return ScmOp_car( ScmOp_car( ScmOp_cdr( ScmOp_cdr(lst) )));
+}
+ScmObj ScmOp_cadaar(ScmObj lst)
+{
+    DECLARE_FUNCTION("cadaar", ProcedureFixed1);
+    return ScmOp_car( ScmOp_cdr( ScmOp_car( ScmOp_car(lst) )));
+}
+ScmObj ScmOp_cadadr(ScmObj lst)
+{
+    DECLARE_FUNCTION("cadadr", ProcedureFixed1);
+    return ScmOp_car( ScmOp_cdr( ScmOp_car( ScmOp_cdr(lst) )));
+}
+ScmObj ScmOp_caddar(ScmObj lst)
+{
+    DECLARE_FUNCTION("caddar", ProcedureFixed1);
+    return ScmOp_car( ScmOp_cdr( ScmOp_cdr( ScmOp_car(lst) )));
+}
+ScmObj ScmOp_cadddr(ScmObj lst)
+{
+    DECLARE_FUNCTION("cadddr", ProcedureFixed1);
+    return ScmOp_car( ScmOp_cdr( ScmOp_cdr( ScmOp_cdr(lst) )));
+}
+ScmObj ScmOp_cdaaar(ScmObj lst)
+{
+    DECLARE_FUNCTION("cdaaar", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_car( ScmOp_car( ScmOp_car(lst) )));
+}
+ScmObj ScmOp_cdaadr(ScmObj lst)
+{
+    DECLARE_FUNCTION("cdaadr", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_car( ScmOp_car( ScmOp_cdr(lst) )));
+}
+ScmObj ScmOp_cdadar(ScmObj lst)
+{
+    DECLARE_FUNCTION("cdadar", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_car( ScmOp_cdr( ScmOp_car(lst) )));
+}
+ScmObj ScmOp_cdaddr(ScmObj lst)
+{
+    DECLARE_FUNCTION("cdaddr", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_car( ScmOp_cdr( ScmOp_cdr(lst) )));
+}
+ScmObj ScmOp_cddaar(ScmObj lst)
+{
+    DECLARE_FUNCTION("cddaar", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_cdr( ScmOp_car( ScmOp_car(lst) )));
+}
+ScmObj ScmOp_cddadr(ScmObj lst)
+{
+    DECLARE_FUNCTION("cddadr", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_cdr( ScmOp_car( ScmOp_cdr(lst) )));
+}
+ScmObj ScmOp_cdddar(ScmObj lst)
+{
+    DECLARE_FUNCTION("cdddar", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_cdr( ScmOp_cdr( ScmOp_car(lst) )));
+}
+ScmObj ScmOp_cddddr(ScmObj lst)
+{
+    DECLARE_FUNCTION("cddddr", ProcedureFixed1);
+    return ScmOp_cdr( ScmOp_cdr( ScmOp_cdr( ScmOp_cdr(lst) )));
+}

Modified: branches/r5rs/sigscheme/operations.c
===================================================================
--- branches/r5rs/sigscheme/operations.c	2005-11-06 16:28:41 UTC (rev 2033)
+++ branches/r5rs/sigscheme/operations.c	2005-11-06 16:59:04 UTC (rev 2034)
@@ -663,6 +663,7 @@
     DECLARE_FUNCTION("cddr", ProcedureFixed1);
     return ScmOp_cdr( ScmOp_cdr(lst) );
 }
+
 ScmObj ScmOp_caddr(ScmObj lst)
 {
     DECLARE_FUNCTION("caddr", ProcedureFixed1);
@@ -674,119 +675,6 @@
     return ScmOp_cdr( ScmOp_cdr( ScmOp_cdr(lst) ));
 }
 
-#if SCM_USE_DEEP_CADRS
-ScmObj ScmOp_caaar(ScmObj lst)
-{
-    DECLARE_FUNCTION("caaar", ProcedureFixed1);
-    return ScmOp_car( ScmOp_car( ScmOp_car(lst) ));
-}
-ScmObj ScmOp_caadr(ScmObj lst)
-{
-    DECLARE_FUNCTION("caadr", ProcedureFixed1);
-    return ScmOp_car( ScmOp_car( ScmOp_cdr(lst) ));
-}
-ScmObj ScmOp_cadar(ScmObj lst)
-{
-    DECLARE_FUNCTION("cadar", ProcedureFixed1);
-    return ScmOp_car( ScmOp_cdr( ScmOp_car(lst) ));
-}
-ScmObj ScmOp_cdaar(ScmObj lst)
-{
-    DECLARE_FUNCTION("cdaar", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_car( ScmOp_car(lst) ));
-}
-ScmObj ScmOp_cdadr(ScmObj lst)
-{
-    DECLARE_FUNCTION("cdadr", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_car( ScmOp_cdr(lst) ));
-}
-ScmObj ScmOp_cddar(ScmObj lst)
-{
-    DECLARE_FUNCTION("cddar", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_cdr( ScmOp_car(lst) ));
-}
-ScmObj ScmOp_caaaar(ScmObj lst)
-{
-    DECLARE_FUNCTION("caaaar", ProcedureFixed1);
-    return ScmOp_car( ScmOp_car( ScmOp_car( ScmOp_car(lst) )));
-}
-ScmObj ScmOp_caaadr(ScmObj lst)
-{
-    DECLARE_FUNCTION("caaadr", ProcedureFixed1);
-    return ScmOp_car( ScmOp_car( ScmOp_car( ScmOp_cdr(lst) )));
-}
-ScmObj ScmOp_caadar(ScmObj lst)
-{
-    DECLARE_FUNCTION("caadar", ProcedureFixed1);
-    return ScmOp_car( ScmOp_car( ScmOp_cdr( ScmOp_car(lst) )));
-}
-ScmObj ScmOp_caaddr(ScmObj lst)
-{
-    DECLARE_FUNCTION("caaddr", ProcedureFixed1);
-    return ScmOp_car( ScmOp_car( ScmOp_cdr( ScmOp_cdr(lst) )));
-}
-ScmObj ScmOp_cadaar(ScmObj lst)
-{
-    DECLARE_FUNCTION("cadaar", ProcedureFixed1);
-    return ScmOp_car( ScmOp_cdr( ScmOp_car( ScmOp_car(lst) )));
-}
-ScmObj ScmOp_cadadr(ScmObj lst)
-{
-    DECLARE_FUNCTION("cadadr", ProcedureFixed1);
-    return ScmOp_car( ScmOp_cdr( ScmOp_car( ScmOp_cdr(lst) )));
-}
-ScmObj ScmOp_caddar(ScmObj lst)
-{
-    DECLARE_FUNCTION("caddar", ProcedureFixed1);
-    return ScmOp_car( ScmOp_cdr( ScmOp_cdr( ScmOp_car(lst) )));
-}
-ScmObj ScmOp_cadddr(ScmObj lst)
-{
-    DECLARE_FUNCTION("cadddr", ProcedureFixed1);
-    return ScmOp_car( ScmOp_cdr( ScmOp_cdr( ScmOp_cdr(lst) )));
-}
-ScmObj ScmOp_cdaaar(ScmObj lst)
-{
-    DECLARE_FUNCTION("cdaaar", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_car( ScmOp_car( ScmOp_car(lst) )));
-}
-ScmObj ScmOp_cdaadr(ScmObj lst)
-{
-    DECLARE_FUNCTION("cdaadr", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_car( ScmOp_car( ScmOp_cdr(lst) )));
-}
-ScmObj ScmOp_cdadar(ScmObj lst)
-{
-    DECLARE_FUNCTION("cdadar", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_car( ScmOp_cdr( ScmOp_car(lst) )));
-}
-ScmObj ScmOp_cdaddr(ScmObj lst)
-{
-    DECLARE_FUNCTION("cdaddr", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_car( ScmOp_cdr( ScmOp_cdr(lst) )));
-}
-ScmObj ScmOp_cddaar(ScmObj lst)
-{
-    DECLARE_FUNCTION("cddaar", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_cdr( ScmOp_car( ScmOp_car(lst) )));
-}
-ScmObj ScmOp_cddadr(ScmObj lst)
-{
-    DECLARE_FUNCTION("cddadr", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_cdr( ScmOp_car( ScmOp_cdr(lst) )));
-}
-ScmObj ScmOp_cdddar(ScmObj lst)
-{
-    DECLARE_FUNCTION("cdddar", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_cdr( ScmOp_cdr( ScmOp_car(lst) )));
-}
-ScmObj ScmOp_cddddr(ScmObj lst)
-{
-    DECLARE_FUNCTION("cddddr", ProcedureFixed1);
-    return ScmOp_cdr( ScmOp_cdr( ScmOp_cdr( ScmOp_cdr(lst) )));
-}
-#endif /* SCM_USE_DEEP_CADRS */
-
 ScmObj ScmOp_list(ScmObj args)
 {
     DECLARE_FUNCTION("list", ProcedureVariadic0);
@@ -1897,6 +1785,10 @@
 }
 #endif /* SCM_USE_NONSTD_FEATURES */
 
+#if SCM_USE_DEEP_CADRS
+#include "operations-r5rs-deepcadrs.c"
+#endif /* SCM_USE_DEEP_CADRS */
+
 #if SCM_USE_SRFI1
 #include "operations-srfi1.c"
 #endif

Modified: branches/r5rs/sigscheme/script/build_func_table.rb
===================================================================
--- branches/r5rs/sigscheme/script/build_func_table.rb	2005-11-06 16:28:41 UTC (rev 2033)
+++ branches/r5rs/sigscheme/script/build_func_table.rb	2005-11-06 16:59:04 UTC (rev 2034)
@@ -164,6 +164,11 @@
                 "r5rs_func_info_table",
                 ["eval.c", "io.c", "operations.c", "sigscheme.c"])
 
+# R5RS deep c[ad]+r
+build_functable("",
+                "r5rs_deepcadrs_func_info_table",
+                ["operations-r5rs-deepcadrs.c"])
+
 # SRFI-1
 build_functable("_SRFI1_",
                 "srfi1_func_info_table",

Modified: branches/r5rs/sigscheme/sigscheme.c
===================================================================
--- branches/r5rs/sigscheme/sigscheme.c	2005-11-06 16:28:41 UTC (rev 2033)
+++ branches/r5rs/sigscheme/sigscheme.c	2005-11-06 16:59:04 UTC (rev 2034)
@@ -177,6 +177,9 @@
 #if SCM_USE_REGISTER_TABLE
     REGISTER_FUNC_TABLE(r5rs_func_info_table);
     Scm_DefineAlias("integer?"                  , "number?");
+#if SCM_USE_DEEP_CADRS
+    REGISTER_FUNC_TABLE(r5rs_deepcadrs_func_info_table);
+#endif
 #if SCM_USE_NONSTD_FEATURES
     Scm_DefineAlias("call/cc", "call-with-current-continuation");
 #endif

Modified: branches/r5rs/sigscheme/sigscheme.h
===================================================================
--- branches/r5rs/sigscheme/sigscheme.h	2005-11-06 16:28:41 UTC (rev 2033)
+++ branches/r5rs/sigscheme/sigscheme.h	2005-11-06 16:59:04 UTC (rev 2034)
@@ -475,30 +475,6 @@
 ScmObj ScmOp_cddr(ScmObj lst);
 ScmObj ScmOp_caddr(ScmObj lst);
 ScmObj ScmOp_cdddr(ScmObj lst);
-#if SCM_USE_DEEP_CADRS
-ScmObj ScmOp_caaar(ScmObj lst);
-ScmObj ScmOp_caadr(ScmObj lst);
-ScmObj ScmOp_cadar(ScmObj lst);
-ScmObj ScmOp_cdaar(ScmObj lst);
-ScmObj ScmOp_cdadr(ScmObj lst);
-ScmObj ScmOp_cddar(ScmObj lst);
-ScmObj ScmOp_caaaar(ScmObj lst);
-ScmObj ScmOp_caaadr(ScmObj lst);
-ScmObj ScmOp_caadar(ScmObj lst);
-ScmObj ScmOp_caaddr(ScmObj lst);
-ScmObj ScmOp_cadaar(ScmObj lst);
-ScmObj ScmOp_cadadr(ScmObj lst);
-ScmObj ScmOp_caddar(ScmObj lst);
-ScmObj ScmOp_cadddr(ScmObj lst);
-ScmObj ScmOp_cdaaar(ScmObj lst);
-ScmObj ScmOp_cdaadr(ScmObj lst);
-ScmObj ScmOp_cdadar(ScmObj lst);
-ScmObj ScmOp_cdaddr(ScmObj lst);
-ScmObj ScmOp_cddaar(ScmObj lst);
-ScmObj ScmOp_cddadr(ScmObj lst);
-ScmObj ScmOp_cdddar(ScmObj lst);
-ScmObj ScmOp_cddddr(ScmObj lst);
-#endif /* SCM_USE_DEEP_CADRS */
 ScmObj ScmOp_list(ScmObj args);
 ScmObj ScmOp_nullp(ScmObj obj);
 ScmObj ScmOp_listp(ScmObj obj);
@@ -564,6 +540,32 @@
 ScmObj ScmOp_sscm_backtrace(void);
 #endif
 
+/* operations-r5rs-deepcadrs.c */
+#if SCM_USE_DEEP_CADRS
+ScmObj ScmOp_caaar(ScmObj lst);
+ScmObj ScmOp_caadr(ScmObj lst);
+ScmObj ScmOp_cadar(ScmObj lst);
+ScmObj ScmOp_cdaar(ScmObj lst);
+ScmObj ScmOp_cdadr(ScmObj lst);
+ScmObj ScmOp_cddar(ScmObj lst);
+ScmObj ScmOp_caaaar(ScmObj lst);
+ScmObj ScmOp_caaadr(ScmObj lst);
+ScmObj ScmOp_caadar(ScmObj lst);
+ScmObj ScmOp_caaddr(ScmObj lst);
+ScmObj ScmOp_cadaar(ScmObj lst);
+ScmObj ScmOp_cadadr(ScmObj lst);
+ScmObj ScmOp_caddar(ScmObj lst);
+ScmObj ScmOp_cadddr(ScmObj lst);
+ScmObj ScmOp_cdaaar(ScmObj lst);
+ScmObj ScmOp_cdaadr(ScmObj lst);
+ScmObj ScmOp_cdadar(ScmObj lst);
+ScmObj ScmOp_cdaddr(ScmObj lst);
+ScmObj ScmOp_cddaar(ScmObj lst);
+ScmObj ScmOp_cddadr(ScmObj lst);
+ScmObj ScmOp_cdddar(ScmObj lst);
+ScmObj ScmOp_cddddr(ScmObj lst);
+#endif /* SCM_USE_DEEP_CADRS */
+
 /* io.c */
 void   SigScm_set_lib_path(const char *path);
 ScmObj Scm_MakeSharedFilePort(FILE *file, const char *aux_info,

Modified: branches/r5rs/sigscheme/sigschemefunctable.h
===================================================================
--- branches/r5rs/sigscheme/sigschemefunctable.h	2005-11-06 16:28:41 UTC (rev 2033)
+++ branches/r5rs/sigscheme/sigschemefunctable.h	2005-11-06 16:59:04 UTC (rev 2034)
@@ -67,6 +67,7 @@
    Variable Declarations
 =======================================*/
 extern struct builtin_func_info r5rs_func_info_table[];
+extern struct builtin_func_info r5rs_deepcadrs_func_info_table[];
 extern struct builtin_func_info srfi1_func_info_table[];
 extern struct builtin_func_info srfi2_func_info_table[];
 extern struct builtin_func_info srfi6_func_info_table[];



More information about the uim-commit mailing list