]> git.saurik.com Git - bison.git/commitdiff
tests: check that parse-gram.y's IELR and LALR are identical.
authorJoel E. Denny <jdenny@clemson.edu>
Sat, 26 Sep 2009 18:49:20 +0000 (14:49 -0400)
committerJoel E. Denny <jdenny@clemson.edu>
Sat, 26 Sep 2009 19:27:17 +0000 (15:27 -0400)
* tests/atlocal.in (abs_top_srcdir): New shell variable.
* tests/regression.at (parse-gram.y: LALR = IELR): New test
group.

ChangeLog
tests/atlocal.in
tests/regression.at

index ca92292c1ea0e23a36c8aa595be3d3985368ab1d..f24be8a6cba4be5675150d507faa4dcead7d9ffa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-09-26  Joel E. Denny  <jdenny@clemson.edu>
+
+       tests: check that parse-gram.y's IELR and LALR are identical.
+       * tests/atlocal.in (abs_top_srcdir): New shell variable.
+       * tests/regression.at (parse-gram.y: LALR = IELR): New test
+       group.
+
 2009-09-19  Alex Rozenman  <rozenman@gmail.com>
 
        Keep sub-messages aligned. Fix strings for translation.
index 91ba6742108e348d476ba0b06baa9a922ff9a203..2e463290f4a11638c627c93a9a1f670cc7b1160b 100644 (file)
@@ -42,3 +42,5 @@ CONF_JAVA='@CONF_JAVA@'
 
 # We need egrep.
 : ${EGREP='@EGREP@'}
+
+abs_top_srcdir='@abs_top_srcdir@'
index 6bfc77ea6dbaed4e1d8c4974aeed5c84e68a628f..2482189ce6ca167a35bc9fd2680e1350314c57ea 100644 (file)
@@ -1237,3 +1237,24 @@ AT_COMPILE([[input]])
 AT_PARSER_CHECK([[./input]])
 
 AT_CLEANUP
+
+
+
+## --------------------------- ##
+## parse-gram.y: LALR = IELR.  ##
+## --------------------------- ##
+
+# If parse-gram.y's LALR and IELR parser tables ever begin to differ, we
+# need to fix parse-gram.y or start using IELR.
+
+AT_SETUP([[parse-gram.y: LALR = IELR]])
+
+# Avoid tests/bison's dark magic by processing a local copy of the
+# grammar.  Avoid differences in synclines by telling bison that the
+# output files have the same name.
+cp $abs_top_srcdir/src/parse-gram.y input.y
+AT_BISON_CHECK([[-o input.c -Dlr.type=lalr input.y && mv input.c lalr.c]])
+AT_BISON_CHECK([[-o input.c -Dlr.type=ielr input.y && mv input.c ielr.c]])
+AT_CHECK([[diff -u lalr.c ielr.c]])
+
+AT_CLEANUP