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;
}