You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2012/11/13 03:13:13 UTC

[lucy-commits] [5/16] git commit: refs/heads/master - Support globally scoped typedefs in Charmonizer

Support globally scoped typedefs in Charmonizer


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/c7e5e6cb
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/c7e5e6cb
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/c7e5e6cb

Branch: refs/heads/master
Commit: c7e5e6cbf229c5060b591da7572f1550d37aa340
Parents: f7a7558
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sun Nov 4 13:42:34 2012 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Mon Nov 12 21:07:26 2012 +0100

----------------------------------------------------------------------
 charmonizer/src/Charmonizer/Core/ConfWriter.c     |    8 +++
 charmonizer/src/Charmonizer/Core/ConfWriter.h     |   24 +++++++---
 charmonizer/src/Charmonizer/Core/ConfWriterC.c    |   37 ++++++++++++---
 charmonizer/src/Charmonizer/Core/ConfWriterPerl.c |   25 +++++++---
 charmonizer/src/Charmonizer/Core/ConfWriterRuby.c |   25 +++++++---
 5 files changed, 87 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/c7e5e6cb/charmonizer/src/Charmonizer/Core/ConfWriter.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/ConfWriter.c b/charmonizer/src/Charmonizer/Core/ConfWriter.c
index e7977b1..c74e241 100644
--- a/charmonizer/src/Charmonizer/Core/ConfWriter.c
+++ b/charmonizer/src/Charmonizer/Core/ConfWriter.c
@@ -68,6 +68,14 @@ chaz_ConfWriter_add_typedef(const char *type, const char *alias) {
 }
 
 void
+chaz_ConfWriter_add_global_typedef(const char *type, const char *alias) {
+    size_t i;
+    for (i = 0; i < chaz_CW.num_writers; i++) {
+        chaz_CW.writers[i]->add_global_typedef(type, alias);
+    }
+}
+
+void
 chaz_ConfWriter_add_sys_include(const char *header) {
     size_t i;
     for (i = 0; i < chaz_CW.num_writers; i++) {

http://git-wip-us.apache.org/repos/asf/lucy/blob/c7e5e6cb/charmonizer/src/Charmonizer/Core/ConfWriter.h
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/ConfWriter.h b/charmonizer/src/Charmonizer/Core/ConfWriter.h
index e409d99..f0be507 100644
--- a/charmonizer/src/Charmonizer/Core/ConfWriter.h
+++ b/charmonizer/src/Charmonizer/Core/ConfWriter.h
@@ -57,6 +57,11 @@ chaz_ConfWriter_add_def(const char *sym, const char *value);
 void
 chaz_ConfWriter_add_typedef(const char *type, const char *alias);
 
+/* Add a globally scoped typedef.
+ */
+void
+chaz_ConfWriter_add_global_typedef(const char *type, const char *alias);
+
 /* Pound-include a system header (within angle brackets).
  */
 void
@@ -89,6 +94,8 @@ typedef void
 typedef void
 (*chaz_ConfWriter_add_typedef_t)(const char *type, const char *alias);
 typedef void
+(*chaz_ConfWriter_add_global_typedef_t)(const char *type, const char *alias);
+typedef void
 (*chaz_ConfWriter_add_sys_include_t)(const char *header);
 typedef void
 (*chaz_ConfWriter_add_local_include_t)(const char *header);
@@ -97,14 +104,15 @@ typedef void
 typedef void
 (*chaz_ConfWriter_end_module_t)(void);
 typedef struct chaz_ConfWriter {
-    chaz_ConfWriter_clean_up_t          clean_up;
-    chaz_ConfWriter_vappend_conf_t      vappend_conf;
-    chaz_ConfWriter_add_def_t           add_def;
-    chaz_ConfWriter_add_typedef_t       add_typedef;
-    chaz_ConfWriter_add_sys_include_t   add_sys_include;
-    chaz_ConfWriter_add_local_include_t add_local_include;
-    chaz_ConfWriter_start_module_t      start_module;
-    chaz_ConfWriter_end_module_t        end_module;
+    chaz_ConfWriter_clean_up_t           clean_up;
+    chaz_ConfWriter_vappend_conf_t       vappend_conf;
+    chaz_ConfWriter_add_def_t            add_def;
+    chaz_ConfWriter_add_typedef_t        add_typedef;
+    chaz_ConfWriter_add_global_typedef_t add_global_typedef;
+    chaz_ConfWriter_add_sys_include_t    add_sys_include;
+    chaz_ConfWriter_add_local_include_t  add_local_include;
+    chaz_ConfWriter_start_module_t       start_module;
+    chaz_ConfWriter_end_module_t         end_module;
 } chaz_ConfWriter;
 
 #ifdef __cplusplus

http://git-wip-us.apache.org/repos/asf/lucy/blob/c7e5e6cb/charmonizer/src/Charmonizer/Core/ConfWriterC.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/ConfWriterC.c b/charmonizer/src/Charmonizer/Core/ConfWriterC.c
index 2f1971d..d1882dd 100644
--- a/charmonizer/src/Charmonizer/Core/ConfWriterC.c
+++ b/charmonizer/src/Charmonizer/Core/ConfWriterC.c
@@ -29,6 +29,7 @@
 typedef enum chaz_ConfElemType {
     CHAZ_CONFELEM_DEF,
     CHAZ_CONFELEM_TYPEDEF,
+    CHAZ_CONFELEM_GLOBAL_TYPEDEF,
     CHAZ_CONFELEM_SYS_INCLUDE,
     CHAZ_CONFELEM_LOCAL_INCLUDE
 } chaz_ConfElemType;
@@ -72,6 +73,8 @@ chaz_ConfWriterC_add_def(const char *sym, const char *value);
 static void
 chaz_ConfWriterC_add_typedef(const char *type, const char *alias);
 static void
+chaz_ConfWriterC_add_global_typedef(const char *type, const char *alias);
+static void
 chaz_ConfWriterC_add_sys_include(const char *header);
 static void
 chaz_ConfWriterC_add_local_include(const char *header);
@@ -82,14 +85,15 @@ chaz_ConfWriterC_end_module(void);
 
 void
 chaz_ConfWriterC_enable(void) {
-    CWC_conf_writer.clean_up          = chaz_ConfWriterC_clean_up;
-    CWC_conf_writer.vappend_conf      = chaz_ConfWriterC_vappend_conf;
-    CWC_conf_writer.add_def           = chaz_ConfWriterC_add_def;
-    CWC_conf_writer.add_typedef       = chaz_ConfWriterC_add_typedef;
-    CWC_conf_writer.add_sys_include   = chaz_ConfWriterC_add_sys_include;
-    CWC_conf_writer.add_local_include = chaz_ConfWriterC_add_local_include;
-    CWC_conf_writer.start_module      = chaz_ConfWriterC_start_module;
-    CWC_conf_writer.end_module        = chaz_ConfWriterC_end_module;
+    CWC_conf_writer.clean_up           = chaz_ConfWriterC_clean_up;
+    CWC_conf_writer.vappend_conf       = chaz_ConfWriterC_vappend_conf;
+    CWC_conf_writer.add_def            = chaz_ConfWriterC_add_def;
+    CWC_conf_writer.add_typedef        = chaz_ConfWriterC_add_typedef;
+    CWC_conf_writer.add_global_typedef = chaz_ConfWriterC_add_global_typedef;
+    CWC_conf_writer.add_sys_include    = chaz_ConfWriterC_add_sys_include;
+    CWC_conf_writer.add_local_include  = chaz_ConfWriterC_add_local_include;
+    CWC_conf_writer.start_module       = chaz_ConfWriterC_start_module;
+    CWC_conf_writer.end_module         = chaz_ConfWriterC_end_module;
     chaz_ConfWriterC_open_charmony_h(NULL);
     chaz_ConfWriter_add_writer(&CWC_conf_writer);
     return;
@@ -188,6 +192,18 @@ chaz_ConfWriterC_append_typedef_to_conf(const char *type, const char *alias) {
 }
 
 static void
+chaz_ConfWriterC_add_global_typedef(const char *type, const char *alias) {
+    chaz_ConfWriterC_push_def_list_item(alias, type,
+            CHAZ_CONFELEM_GLOBAL_TYPEDEF);
+}
+
+static void
+chaz_ConfWriterC_append_global_typedef_to_conf(const char *type,
+        const char *alias) {
+    fprintf(chaz_ConfWriterC.fh, "typedef %s %s;\n", type, alias);
+}
+
+static void
 chaz_ConfWriterC_add_sys_include(const char *header) {
     chaz_ConfWriterC_push_def_list_item(header, NULL,
                                         CHAZ_CONFELEM_SYS_INCLUDE);
@@ -228,6 +244,10 @@ chaz_ConfWriterC_end_module(void) {
                 chaz_ConfWriterC_append_typedef_to_conf(defs[i].str2,
                                                         defs[i].str1);
                 break;
+            case CHAZ_CONFELEM_GLOBAL_TYPEDEF:
+                chaz_ConfWriterC_append_global_typedef_to_conf(defs[i].str2,
+                                                               defs[i].str1);
+                break;
             case CHAZ_CONFELEM_SYS_INCLUDE:
                 chaz_ConfWriterC_append_sys_include_to_conf(defs[i].str1);
                 break;
@@ -261,6 +281,7 @@ chaz_ConfWriterC_end_module(void) {
                     }
                 }
                 break;
+            case CHAZ_CONFELEM_GLOBAL_TYPEDEF:
             case CHAZ_CONFELEM_SYS_INCLUDE:
             case CHAZ_CONFELEM_LOCAL_INCLUDE:
                 /* no-op */

http://git-wip-us.apache.org/repos/asf/lucy/blob/c7e5e6cb/charmonizer/src/Charmonizer/Core/ConfWriterPerl.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/ConfWriterPerl.c b/charmonizer/src/Charmonizer/Core/ConfWriterPerl.c
index 550b409..3b85473 100644
--- a/charmonizer/src/Charmonizer/Core/ConfWriterPerl.c
+++ b/charmonizer/src/Charmonizer/Core/ConfWriterPerl.c
@@ -43,6 +43,8 @@ chaz_ConfWriterPerl_add_def(const char *sym, const char *value);
 static void
 chaz_ConfWriterPerl_add_typedef(const char *type, const char *alias);
 static void
+chaz_ConfWriterPerl_add_global_typedef(const char *type, const char *alias);
+static void
 chaz_ConfWriterPerl_add_sys_include(const char *header);
 static void
 chaz_ConfWriterPerl_add_local_include(const char *header);
@@ -53,14 +55,15 @@ chaz_ConfWriterPerl_end_module(void);
 
 void
 chaz_ConfWriterPerl_enable(void) {
-    CWPerl_conf_writer.clean_up          = chaz_ConfWriterPerl_clean_up;
-    CWPerl_conf_writer.vappend_conf      = chaz_ConfWriterPerl_vappend_conf;
-    CWPerl_conf_writer.add_def           = chaz_ConfWriterPerl_add_def;
-    CWPerl_conf_writer.add_typedef       = chaz_ConfWriterPerl_add_typedef;
-    CWPerl_conf_writer.add_sys_include   = chaz_ConfWriterPerl_add_sys_include;
-    CWPerl_conf_writer.add_local_include = chaz_ConfWriterPerl_add_local_include;
-    CWPerl_conf_writer.start_module      = chaz_ConfWriterPerl_start_module;
-    CWPerl_conf_writer.end_module        = chaz_ConfWriterPerl_end_module;
+    CWPerl_conf_writer.clean_up           = chaz_ConfWriterPerl_clean_up;
+    CWPerl_conf_writer.vappend_conf       = chaz_ConfWriterPerl_vappend_conf;
+    CWPerl_conf_writer.add_def            = chaz_ConfWriterPerl_add_def;
+    CWPerl_conf_writer.add_typedef        = chaz_ConfWriterPerl_add_typedef;
+    CWPerl_conf_writer.add_global_typedef = chaz_ConfWriterPerl_add_global_typedef;
+    CWPerl_conf_writer.add_sys_include    = chaz_ConfWriterPerl_add_sys_include;
+    CWPerl_conf_writer.add_local_include  = chaz_ConfWriterPerl_add_local_include;
+    CWPerl_conf_writer.start_module       = chaz_ConfWriterPerl_start_module;
+    CWPerl_conf_writer.end_module         = chaz_ConfWriterPerl_end_module;
     chaz_ConfWriterPerl_open_config_pm();
     chaz_ConfWriter_add_writer(&CWPerl_conf_writer);
     return;
@@ -186,6 +189,12 @@ chaz_ConfWriterPerl_add_typedef(const char *type, const char *alias) {
 }
 
 static void
+chaz_ConfWriterPerl_add_global_typedef(const char *type, const char *alias) {
+    (void)type;
+    (void)alias;
+}
+
+static void
 chaz_ConfWriterPerl_add_sys_include(const char *header) {
     (void)header;
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/c7e5e6cb/charmonizer/src/Charmonizer/Core/ConfWriterRuby.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/ConfWriterRuby.c b/charmonizer/src/Charmonizer/Core/ConfWriterRuby.c
index 86a37a3..caea7ce 100644
--- a/charmonizer/src/Charmonizer/Core/ConfWriterRuby.c
+++ b/charmonizer/src/Charmonizer/Core/ConfWriterRuby.c
@@ -43,6 +43,8 @@ chaz_ConfWriterRuby_add_def(const char *sym, const char *value);
 static void
 chaz_ConfWriterRuby_add_typedef(const char *type, const char *alias);
 static void
+chaz_ConfWriterRuby_add_global_typedef(const char *type, const char *alias);
+static void
 chaz_ConfWriterRuby_add_sys_include(const char *header);
 static void
 chaz_ConfWriterRuby_add_local_include(const char *header);
@@ -53,14 +55,15 @@ chaz_ConfWriterRuby_end_module(void);
 
 void
 chaz_ConfWriterRuby_enable(void) {
-    CWRuby_conf_writer.clean_up          = chaz_ConfWriterRuby_clean_up;
-    CWRuby_conf_writer.vappend_conf      = chaz_ConfWriterRuby_vappend_conf;
-    CWRuby_conf_writer.add_def           = chaz_ConfWriterRuby_add_def;
-    CWRuby_conf_writer.add_typedef       = chaz_ConfWriterRuby_add_typedef;
-    CWRuby_conf_writer.add_sys_include   = chaz_ConfWriterRuby_add_sys_include;
-    CWRuby_conf_writer.add_local_include = chaz_ConfWriterRuby_add_local_include;
-    CWRuby_conf_writer.start_module      = chaz_ConfWriterRuby_start_module;
-    CWRuby_conf_writer.end_module        = chaz_ConfWriterRuby_end_module;
+    CWRuby_conf_writer.clean_up           = chaz_ConfWriterRuby_clean_up;
+    CWRuby_conf_writer.vappend_conf       = chaz_ConfWriterRuby_vappend_conf;
+    CWRuby_conf_writer.add_def            = chaz_ConfWriterRuby_add_def;
+    CWRuby_conf_writer.add_typedef        = chaz_ConfWriterRuby_add_typedef;
+    CWRuby_conf_writer.add_global_typedef = chaz_ConfWriterRuby_add_global_typedef;
+    CWRuby_conf_writer.add_sys_include    = chaz_ConfWriterRuby_add_sys_include;
+    CWRuby_conf_writer.add_local_include  = chaz_ConfWriterRuby_add_local_include;
+    CWRuby_conf_writer.start_module       = chaz_ConfWriterRuby_start_module;
+    CWRuby_conf_writer.end_module         = chaz_ConfWriterRuby_end_module;
     chaz_ConfWriterRuby_open_config_rb();
     chaz_ConfWriter_add_writer(&CWRuby_conf_writer);
     return;
@@ -184,6 +187,12 @@ chaz_ConfWriterRuby_add_typedef(const char *type, const char *alias) {
 }
 
 static void
+chaz_ConfWriterRuby_add_global_typedef(const char *type, const char *alias) {
+    (void)type;
+    (void)alias;
+}
+
+static void
 chaz_ConfWriterRuby_add_sys_include(const char *header) {
     (void)header;
 }