]> git.saurik.com Git - bison.git/commitdiff
* src/reader.c (read_declarations): Don't abort on tok_illegal,
authorAkim Demaille <akim@epita.fr>
Mon, 26 Nov 2001 09:50:29 +0000 (09:50 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 26 Nov 2001 09:50:29 +0000 (09:50 +0000)
issue an error message.
* tests/regression.at (Invalid %directive): New.
Reported by Hans Aberg.

ChangeLog
src/reader.c
tests/regression.at

index 633ad3b30fa343a037fe8c8d028a4f819577bd5d..9bca596c0ffd88515c4131d0f6cd9f1dd9b98aab 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2001-11-26  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (read_declarations): Don't abort on tok_illegal,
+       issue an error message.
+       * tests/regression.at (Invalid %directive): New.
+       Reported by Hans Aberg.
+
 2001-11-26  Akim Demaille  <akim@epita.fr>
 
        * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
index d3c089510774a80359b2ac144e3cea9c3f564407..8f01a7c4ae49678991d211b710799a335f0f8eff 100644 (file)
@@ -1054,10 +1054,10 @@ read_declarations (void)
            case tok_stropt:
            case tok_intopt:
            case tok_obsolete:
-           case tok_illegal:
              abort ();
              break;
 
+           case tok_illegal:
            default:
              complain (_("unrecognized: %s"), token_buffer);
              skip_to_char ('%');
index a18bfc451dfed1986eedce79d332c91916e0606a..68f02adc99b4451f39e9b769e5d71338c6e109e7 100644 (file)
@@ -380,9 +380,9 @@ AT_DATA([input.y],
 ]])
 
 AT_CHECK([bison input.y], [1], [],
-[input.y:2: invalid input: `?'
+[[input.y:2: invalid input: `?'
 input.y:3: fatal error: no rules in the input grammar
-])
+]])
 
 AT_CLEANUP
 
@@ -400,8 +400,29 @@ default: 'a' }
 ]])
 
 AT_CHECK([bison input.y], [1], [],
-[input.y:2: invalid input: `}'
-])
+[[input.y:2: invalid input: `}'
+]])
+
+AT_CLEANUP
+
+
+
+## -------------------- ##
+## Invalid %directive.  ##
+## -------------------- ##
+
+
+AT_SETUP([Invalid %directive])
+
+AT_DATA([input.y],
+[[%invalid
+]])
+
+AT_CHECK([bison input.y], [1], [],
+[[input.y:1: unrecognized: %invalid
+input.y:1:    Skipping to next %
+input.y:2: fatal error: no input grammar
+]])
 
 AT_CLEANUP