From: Ran Benita Date: Sat, 28 Sep 2013 22:41:52 +0000 (+0300) Subject: parser: add some notes about byacc working X-Git-Tag: xkbcommon-0.3.2~15 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e14bff0a10de4cfbfd31581be8bf8d791fd216e;p=platform%2Fupstream%2Flibxkbcommon.git parser: add some notes about byacc working We now also work with byacc (version tested: 20130925) which some people prefer, perhaps due to its license (public domain) or performance (haven't compared). When using byacc, currently the following warning comes up: src/xkbcomp/parser.c:954:14: warning: declaration shadows a variable in the global scope [-Wshadow] YYSTYPE yylval; ^ src/xkbcomp/parser.c:37:20: note: expanded from macro 'yylval' #define yylval _xkbcommon_lval ^ ./src/xkbcomp/parser.h:96:16: note: previous declaration is here extern YYSTYPE _xkbcommon_lval; This is due to a bug in byacc - it shouldn't output that extern line in %pure-parser mode. So the warning stays. Signed-off-by: Ran Benita --- diff --git a/configure.ac b/configure.ac index 48fa488..c0ac1c5 100644 --- a/configure.ac +++ b/configure.ac @@ -56,6 +56,8 @@ AC_C_INLINE AC_PROG_MKDIR_P PKG_PROG_PKG_CONFIG +# Note: we use some yacc extensions, which work with either GNU bison +# (preferred) or byacc. Other yacc's may or may not work. AC_PROG_YACC AC_PATH_PROG([YACC_INST], $YACC) if test ! -f "src/xkbcomp/parser.c"; then diff --git a/src/xkbcomp/parser.y b/src/xkbcomp/parser.y index bb4be7b..001ea67 100644 --- a/src/xkbcomp/parser.y +++ b/src/xkbcomp/parser.y @@ -24,6 +24,12 @@ ********************************************************/ +/* + * The parser should work with reasonably recent versions of either + * bison or byacc. So if you make changes, try to make sure it works + * in both! + */ + %{ #include "xkbcomp-priv.h" #include "ast-build.h"