From 55ea6889987a9ca1e7429951e0e94be0fa99d7af Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 25 Mar 2008 23:04:37 +0100 Subject: * tools/dfagen: - fixed warning in doc. - fixed missing newline. - added use of non default templates. - added warning about parser.g. - removed .orig file when patching. --- tools/dfagen/examples/Makefile | 8 +++++- tools/dfagen/examples/ex2_tpl.conf | 6 ++++ tools/dfagen/examples/tpl/template_defs.h | 46 ++++++++++++++++++++++++++++++ tools/dfagen/examples/tpl/template_table.h | 12 ++++++++ 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 tools/dfagen/examples/ex2_tpl.conf create mode 100644 tools/dfagen/examples/tpl/template_defs.h create mode 100644 tools/dfagen/examples/tpl/template_table.h (limited to 'tools/dfagen/examples') diff --git a/tools/dfagen/examples/Makefile b/tools/dfagen/examples/Makefile index b78f1121..1f7b3308 100644 --- a/tools/dfagen/examples/Makefile +++ b/tools/dfagen/examples/Makefile @@ -1,6 +1,6 @@ CFLAGS = -O2 -Wall -all: ex1 ex2 ex1.png ex2.png +all: ex1 ex2 ex1.png ex2.png ex2_tpl ex1: ex1.o ex1_cb.o @@ -12,6 +12,7 @@ ex1.h ex1_cb_skel.c ex1_cb.h: ex1.c ex1_cb.c: ex1_cb_skel.c ex1_cb.c.patch cp $< $@ patch $@ ex1_cb.c.patch + rm -f $@.orig ex1.o: ex1_cb.h ex1.h ex1_cb.o: ex1_cb.h ex1.h @@ -26,6 +27,10 @@ ex2.h ex2_cb_skel.c ex2_cb.h: ex2.c ex2_cb.c: ex2_cb_skel.c ex2_cb.c.patch cp $< $@ patch $@ ex2_cb.c.patch + rm -f $@.orig + +ex2_tpl: ex2.fsm ex2_tpl.conf + python ../dfagen.py -o c -d $(filter %.fsm, $^) -c $(filter %.conf, $^) -p $@ %.dot: %.fsm python ../dfagen.py -o dot -d $< -p $(@:%.dot=%) @@ -38,3 +43,4 @@ clean: rm -f ex1.dot ex1.png rm -f ex2 ex2.o ex2_cb.o ex2_robot.o ex2.c ex2.h ex2_cb_skel.c ex2_cb.h ex2_cb.c rm -f ex2.dot ex2.png + rm -f ex2_tpl_defs.h ex2_tpl_table.h diff --git a/tools/dfagen/examples/ex2_tpl.conf b/tools/dfagen/examples/ex2_tpl.conf new file mode 100644 index 00000000..7d97ddbe --- /dev/null +++ b/tools/dfagen/examples/ex2_tpl.conf @@ -0,0 +1,6 @@ +[user] +template-dir = tpl + +[templates] +template_defs.h = %_defs.h +template_table.h = %_table.h diff --git a/tools/dfagen/examples/tpl/template_defs.h b/tools/dfagen/examples/tpl/template_defs.h new file mode 100644 index 00000000..54fabba4 --- /dev/null +++ b/tools/dfagen/examples/tpl/template_defs.h @@ -0,0 +1,46 @@ +#ifndef %(prefix)s_defs_h +#define %(prefix)s_defs_h +/* + * THIS IS AN AUTOMATICALLY GENERATED FILE, DO NOT EDIT! + * + * %(name)s + * +%(*comments)s */ + +/* %(name)s states. */ +enum %(prefix)s_state_t +{ +%(states)s %(PREFIX)s_STATE_NB +}; +typedef enum %(prefix)s_state_t %(prefix)s_state_t; + +/* %(name)s events. */ +enum %(prefix)s_event_t +{ +%(events)s %(PREFIX)s_EVENT_NB +}; +typedef enum %(prefix)s_event_t %(prefix)s_event_t; + +/* Only care about next state. */ +#define _BRANCH(state, event, to) (%(PREFIX)s_STATE_ ## to) + +/* %(name)s branches. */ +enum %(prefix)s_branch_t +{ +%(branches)s}; +typedef enum %(prefix)s_branch_t %(prefix)s_branch_t; + +#undef _BRANCH + +/* %(name)s transition type. */ +typedef %(prefix)s_branch_t (*%(prefix)s_transition_t) (void); + +/* Value to return to follow the only branch. */ +#define %(prefix)s_next(state, event) \ + %(PREFIX)s_BRANCH__ ## state ## __ ## event ## __ + +/* Value to return to follow a given branch. */ +#define %(prefix)s_next_branch(state, event, branch) \ + %(PREFIX)s_BRANCH__ ## state ## __ ## event ## __ ## branch + +#endif /* %(prefix)s_defs_h */ diff --git a/tools/dfagen/examples/tpl/template_table.h b/tools/dfagen/examples/tpl/template_table.h new file mode 100644 index 00000000..817197fa --- /dev/null +++ b/tools/dfagen/examples/tpl/template_table.h @@ -0,0 +1,12 @@ +/* + * THIS IS AN AUTOMATICALLY GENERATED FILE, DO NOT EDIT! + * + * %(name)s + * +%(*comments)s */ + +/* %(name)s transition table. */ +static const %(prefix)s_transition_t +%(prefix)s_transition_table[%(PREFIX)s_STATE_NB][%(PREFIX)s_EVENT_NB] = { +%(transition_table)s}; + -- cgit v1.2.3