]> git.saurik.com Git - bison.git/commitdiff
* src/bison.simple (yyparse): When reporting verbosely an error,
authorAkim Demaille <akim@epita.fr>
Mon, 19 Nov 2001 09:13:26 +0000 (09:13 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 19 Nov 2001 09:13:26 +0000 (09:13 +0000)
no longer issue additional quotes around token names.
* tests/calc.at: Adjust.

ChangeLog
NEWS
src/bison.simple
tests/calc.at

index 8f97247bf172821e42c0c32d6f8eefa843bacbfd..4c85dce71234d38aa08833b29709f0aade24799b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple (yyparse): When reporting verbosely an error,
+       no longer issue additional quotes around token names.
+       * tests/calc.at: Adjust.
+
 2001-11-19  Akim Demaille  <akim@epita.fr>
 
        * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
diff --git a/NEWS b/NEWS
index 668e2449c7fc84a85af826c248c747038f38e255..bc333b1303803fab75f3f1973d431023332c885c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,11 @@ Bison News
 
 Changes in version 1.30d:
 
+* Parse errors
+  Verbose parse error messages from the parsers are better looking.
+  Before: parse error: unexpected `'/'', expecting `"number"' or `'-'' or `'(''
+     Now: parse error: unexpected '/', expecting "number" or '-' or '('
+
 Changes in version 1.30c:
 
 * Fixed a few warnings.
index bca1254a56e43db3045e2d989dc408795d88be1c..98fa0c4bdaeec1bbf2d8b6df48ddd02d214d8bf6 100644 (file)
@@ -671,30 +671,29 @@ yyerrlab:
          int x, count;
 
          count = 0;
-         /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
-         for (x = (yyn < 0 ? -yyn : 0);
+         /* Start X at -YYN if negative to avoid negative indexes in
+            YYCHECK.  */
+         for (x = yyn < 0 ? -yyn : 0;
               x < (int) (sizeof (yytname) / sizeof (char *)); x++)
            if (yycheck[x + yyn] == x)
              size += strlen (yytname[x]) + 15, count++;
-         size += strlen ("parse error, unexpected `") + 1;
+         size += strlen ("parse error, unexpected ") + 1;
          size += strlen (yytname[YYTRANSLATE (yychar)]);
          msg = (char *) malloc (size);
          if (msg != 0)
            {
-             strcpy (msg, "parse error, unexpected `");
+             strcpy (msg, "parse error, unexpected ");
              strcat (msg, yytname[YYTRANSLATE (yychar)]);
-             strcat (msg, "'");
 
              if (count < 5)
                {
                  count = 0;
-                 for (x = (yyn < 0 ? -yyn : 0);
+                 for (x = yyn < 0 ? -yyn : 0;
                       x < (int) (sizeof (yytname) / sizeof (char *)); x++)
                    if (yycheck[x + yyn] == x)
                      {
-                       strcat (msg, count == 0 ? ", expecting `" : " or `");
+                       strcat (msg, count == 0 ? ", expecting " : " or ");
                        strcat (msg, yytname[x]);
-                       strcat (msg, "'");
                        count++;
                      }
                }
@@ -702,7 +701,7 @@ yyerrlab:
              free (msg);
            }
          else
-           yyerror ("parse error; also virtual memory exceeded");
+           yyerror ("parse error; also virtual memory exhausted");
        }
       else
 #endif /* YYERROR_VERBOSE */
index 9bf1af9c4ddb0faa5f18c34592b2d8321474afc2..04d7e36609526659dd7521312b986f3387691061 100644 (file)
@@ -366,22 +366,22 @@ _AT_CHECK_CALC([$1],
 # Some parse errors.
 _AT_CHECK_CALC_ERROR([$1], [+1], [8],
                      [1.0:1.1],
-                     [unexpected `'+''])
+                     [unexpected '+'])
 _AT_CHECK_CALC_ERROR([$1], [1//2], [17],
                      [1.2:1.3],
-                     [unexpected `'/'', expecting `NUM' or `'-'' or `'(''])
+                     [unexpected '/', expecting NUM or '-' or '('])
 _AT_CHECK_CALC_ERROR([$1], [error], [8],
                      [1.0:1.1],
-                     [unexpected `$undefined.'])
+                     [unexpected $undefined.])
 _AT_CHECK_CALC_ERROR([$1], [1 = 2 = 3], [23],
                      [1.6:1.7],
-                     [unexpected `'=''])
+                     [unexpected '='])
 _AT_CHECK_CALC_ERROR([$1],
                      [
 +1],
                      [16],
                      [2.0:2.1],
-                     [unexpected `'+''])
+                     [unexpected '+'])
 
 AT_CLEANUP
 ])# AT_CHECK_CALC