fix: there was a problem when more than 2 alternatives started with the same token
authorceriel <none@none>
Mon, 19 Oct 1987 15:35:28 +0000 (15:35 +0000)
committerceriel <none@none>
Mon, 19 Oct 1987 15:35:28 +0000 (15:35 +0000)
util/LLgen/src/check.c

index 685ae8f..3292ac9 100644 (file)
@@ -258,6 +258,7 @@ check(p) register p_gram p; {
 "Conflict resolver without conflict");
                                }
                        }
+                       if (l->l_flag & PREFERING) propagate(l->l_symbs,p+1);
                        free( (p_mem) temp);
                        retval |= check(l->l_rule);
                        break; }
@@ -448,7 +449,6 @@ resolve(p) register p_gram p; {
                                error(p->g_lineno,"Alternative never chosen");
                        }
                        resolve(l->l_rule);
-                       if (l->l_flag & PREFERING) propagate(l->l_symbs,p+1);
                        break; }
                }
                p++;