]> git.saurik.com Git - bison.git/blobdiff - tests/headers.at
tests: factor the declaration/definition of yyerror and yylex.
[bison.git] / tests / headers.at
index 9d4946d676ce5f8e407905f7bdac8a012590eed7..0729f446ff60b3fea691e1a7e9d7d27a89e68a41 100644 (file)
@@ -41,25 +41,26 @@ AT_BISON_CHECK([--defines input.y])
 AT_CLEANUP
 
 
-
 ## --------------------- ##
 ## Invalid CPP headers.  ##
 ## --------------------- ##
 
-# AT_TEST_CPP_GUARD_H([INPUT-FILE-BASE)
-# -------------------------------------
+# AT_TEST_CPP_GUARD_H(BASE-NAME, [DIRECTIVES])
+# --------------------------------------------
+# FIXME: Much of this can be covered by calc.at.
 m4_define([AT_TEST_CPP_GUARD_H],
-[AT_SETUP([Invalid CPP guards: $1])
-
+[AT_SETUP([Invalid CPP guards: $2 --defines=$1.h])
+AT_BISON_OPTION_PUSHDEFS([$2])
 # Possibly create inner directories.
 dirname=`AS_DIRNAME([$1])`
 AS_MKDIR_P([$dirname])
 
 AT_DATA_GRAMMAR([$1.y],
-[%{
+[$2
+%{
 #include <$1.h>
-void yyerror (const char *);
-int yylex (void);
+]AT_YYERROR_DECLARE_EXTERN[
+]AT_YYLEX_DECLARE_EXTERN[
 %}
 %%
 dummy:;
@@ -67,15 +68,18 @@ dummy:;
 #include <$1.h>
 ])
 
-AT_BISON_CHECK([--defines=$1.h --output=y.tab.c $1.y])
+AT_BISON_CHECK([--defines=$1.h --output=$1.c $1.y])
 
-AT_COMPILE([y.tab.o], [-I. -c y.tab.c])
+AT_COMPILE([$1.o], [-I. -c $1.c])
 
+AT_BISON_OPTION_POPDEFS
 AT_CLEANUP
 ])
 
 AT_TEST_CPP_GUARD_H([input/input])
 AT_TEST_CPP_GUARD_H([9foo])
+AT_TEST_CPP_GUARD_H([input/input], [%glr-parser])
+AT_TEST_CPP_GUARD_H([9foo],        [%glr-parser])