Fix: did not always produce error message
authorceriel <none@none>
Tue, 10 Nov 1998 14:26:06 +0000 (14:26 +0000)
committerceriel <none@none>
Tue, 10 Nov 1998 14:26:06 +0000 (14:26 +0000)
util/LLgen/lib/rec

index 0c4a1bb..ae7d69e 100644 (file)
@@ -218,6 +218,20 @@ LLsafeerror(t)
                nc_done = 1;
                LLsymb = EOFILE;
        }
+       /* A little kludge here; when using non-correcting recovery
+         * it can happen that a program is correct but incomplete.
+         * Here, we test this, and make sure the appropriate
+         * message is generated
+         */
+        if (! nc_done) {
+                int oldLLsymb;
+                oldLLsymb = LLsymb;
+                LLsymb = EOFILE;
+                LLmessage(0);
+                nc_done = 1;
+        /* Not really, but to prevent more than 1 error message */
+                LLsymb = oldLLsymb;
+        }
 #endif
        LLmessage(t);
 }