summaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorNicolas Schodet2008-03-26 20:35:52 +0100
committerNicolas Schodet2008-03-26 20:35:52 +0100
commit0e4c3e1829be3a789b29ff174a3e1ab06dc28600 (patch)
tree5bc3dd337864e7bd589fe55d90f33926cc998898 /tools
parent55ea6889987a9ca1e7429951e0e94be0fa99d7af (diff)
* tools/dfagen:
- added generic states template.
Diffstat (limited to 'tools')
-rw-r--r--tools/dfagen/dfagen/output/c.py14
-rw-r--r--tools/dfagen/dfagen/output/c/template_cb.h2
-rw-r--r--tools/dfagen/dfagen/output/c/template_cb_skel.c2
3 files changed, 7 insertions, 11 deletions
diff --git a/tools/dfagen/dfagen/output/c.py b/tools/dfagen/dfagen/output/c.py
index 8c9b7dbb..12379ae3 100644
--- a/tools/dfagen/dfagen/output/c.py
+++ b/tools/dfagen/dfagen/output/c.py
@@ -18,8 +18,7 @@ class WriterData:
events = self.list_events,
branches = self.list_branches,
transition_table = self.transition_table,
- cb_impl = self.cb_impl,
- cb_decl = self.cb_decl,
+ states_template = self.states_template,
)
def list_states (self):
@@ -97,14 +96,11 @@ class WriterData:
exp += tt % d
return exp
- def cb_impl (self):
- return self.states_template ('template_cb_impl.c')
-
- def cb_decl (self):
- return self.states_template ('template_cb_decl.h')
-
def __getitem__ (self, key):
preproc = lambda v: v
+ args = []
+ key = key.split (',')
+ key, args = key[0], key[1:]
if key.startswith ('*'):
key = key[1:]
preproc = lambda v: ' * ' + v.replace ('\n', '\n * ') + '\n'
@@ -114,7 +110,7 @@ class WriterData:
val = None
if key in self.dict:
try:
- val = self.dict[key] ()
+ val = self.dict[key] (*args)
except TypeError:
val = self.dict[key]
elif key.startswith ('user.'):
diff --git a/tools/dfagen/dfagen/output/c/template_cb.h b/tools/dfagen/dfagen/output/c/template_cb.h
index 6252b28c..10740b79 100644
--- a/tools/dfagen/dfagen/output/c/template_cb.h
+++ b/tools/dfagen/dfagen/output/c/template_cb.h
@@ -9,4 +9,4 @@
#include "%(prefix)s.h"
-%(cb_decl)s#endif /* %(prefix)s_cb_h */
+%(states_template,template_cb_decl.h)s#endif /* %(prefix)s_cb_h */
diff --git a/tools/dfagen/dfagen/output/c/template_cb_skel.c b/tools/dfagen/dfagen/output/c/template_cb_skel.c
index 95abbd42..9f822492 100644
--- a/tools/dfagen/dfagen/output/c/template_cb_skel.c
+++ b/tools/dfagen/dfagen/output/c/template_cb_skel.c
@@ -6,4 +6,4 @@
%(*comments)s */
#include "%(prefix)s_cb.h"
-%(cb_impl)s
+%(states_template,template_cb_impl.c)s