From: Ian Jackson Date: Sat, 11 Jun 2011 11:07:48 +0000 (+0100) Subject: cleanup: use flex-generated declarations for scanner interface X-Git-Tag: v0.2.0~84 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=commitdiff_plain;h=27f5042b0435d26ae98b22f8e42115e44afe53bc;ds=sidebyside cleanup: use flex-generated declarations for scanner interface We now pass the --header=... option to flex. This causes it to generate a header file describing the flex interface. We #include this almost everywhere we #include conffile_internal.h, and that makes the declarations of yyin and yylex in conffile_internal.h redundant so remove them. Note that flex generates a conffile.yy.c which also contains many of the same declarations as in conffile.yy.h. So, unfortunately, we should not #include conffile.yy.h in conffile.hh.c and therefore not in conffile_internal.h either (if we want -Wredundant-decls, which we do). Signed-off-by: Ian Jackson --- diff --git a/.gitignore b/.gitignore index 86e03e0..999fbee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ *.o *.d conffile.tab.[ch] -conffile.yy.c +conffile.yy.[ch] version.c /secnet diff --git a/Makefile.in b/Makefile.in index fba1202..30ce8f6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -85,7 +85,7 @@ DISTSUBDIRS:=debian/copyright debian/changelog debian/control \ %.c: %.y %.yy.c: %.fl - flex -o$@ $< + flex --header=$*.yy.h -o$@ $< %.tab.c %.tab.h: %.y bison -d -o $@ $< @@ -129,6 +129,7 @@ $(DEPENDS): ${srcdir}/depend.sh # Manual dependencies section conffile.yy.c: conffile.fl conffile.tab.c +conffile.yy.h: conffile.yy.c conffile.tab.c: conffile.y # End of manual dependencies section diff --git a/conffile.c b/conffile.c index 9023529..db7c58e 100644 --- a/conffile.c +++ b/conffile.c @@ -7,6 +7,7 @@ #include #include "conffile.h" #include "conffile_internal.h" +#include "conffile.yy.h" #include "util.h" #include "ipaddr.h" diff --git a/conffile.y b/conffile.y index 1a8ef36..1625122 100644 --- a/conffile.y +++ b/conffile.y @@ -10,6 +10,7 @@ #include #include "secnet.h" #include "conffile_internal.h" +#include "conffile.yy.h" #include "util.h" #define YYERROR_VERBOSE diff --git a/conffile_internal.h b/conffile_internal.h index 69ff195..4e022b8 100644 --- a/conffile_internal.h +++ b/conffile_internal.h @@ -4,8 +4,6 @@ #include #include "secnet.h" -extern FILE *yyin; - typedef cstring_t atom_t; /* Parse tree for configuration file */ @@ -37,7 +35,6 @@ struct p_node { struct p_node *r; }; -extern int yylex(void); extern cstring_t config_file; extern uint32_t config_lineno; extern int yynerrs;