improved error messages
authorceriel <none@none>
Fri, 17 Nov 1989 11:27:26 +0000 (11:27 +0000)
committerceriel <none@none>
Fri, 17 Nov 1989 11:27:26 +0000 (11:27 +0000)
lang/cem/cemcom.ansi/LLmessage.c
lang/cem/cemcom.ansi/make.tokcase

index 8e89113..1f952c5 100644 (file)
@@ -19,7 +19,7 @@ LLmessage(tk) {
                error("end of file expected");
        }
        else if (tk)    {
-               error("%s missing", symbol2str(tk));
+               error("%s missing before %s", symbol2str(tk), symbol2str(DOT));
                insert_token(tk);
        }
        else    {
index 90205c6..f121c3e 100755 (executable)
@@ -1,19 +1,17 @@
 cat <<'--EOT--'
 /* Generated by make.tokcase */
-/* $Header: */
+/* $Header$ */
 #include "Lpars.h"
 
 char *
 symbol2str(tok)
        int tok;
 {
-       static char buf[2] = { '\0', '\0' };
+#define SIZBUF 8
+       /* allow for a few invocations in f.i. an argument list */
+       static char buf[SIZBUF];
+       static int index;
 
-       if (040 <= tok && tok < 0177) {
-               buf[0] = tok;
-               buf[1] = '\0';
-               return buf;
-       }
        switch (tok) {
 --EOT--
 
@@ -24,15 +22,19 @@ s/.*{\(.*\),.*\(".*"\).*$/  case \1 :\
 '
 
 cat <<'--EOT--'
+       default:
+               if (tok < 040 || tok >= 0177) {
+                       return "bad token";
+               }
+               /* fall through */
        case '\n':
        case '\f':
        case '\v':
        case '\r':
        case '\t':
-               buf[0] = tok;
-               return buf;
-       default:
-               return "bad token";
+               index = (index+2) & (SIZBUF-1);
+               buf[index] = tok;
+               return &buf[index];
        }
 }
 --EOT--