}
fputs(c_arrend, f);
free((p_mem) index);
+ if (onerror) {
+ fputs("short LLtok[] = {\n", f);
+ for (t = tokens; t < maxt; t++) {
+ fprintf(f, t->t_tokno<0400 ? "'%s',\n" : "%s,\n",t->t_string);
+ }
+ fputs(c_arrend, f);
+ }
fputs("#define LL_NEWMESS\n", f);
copyfile(rec_file);
if (ferror(f) != 0) {
lb, hulp2);
}
if (l->l_flag & COND) {
+ if (l->l_flag & NOCONF) {
+ fputs("#ifdef ___NOCONFLICT___\n", f);
+ }
set = setalloc();
setunion(set, l->l_others);
setintersect(set, l->l_symbs);
fputs("if (!",f);
getaction(0);
fprintf(f,") goto L_%d;\n", hulp);
+ if (l->l_flag & NOCONF) {
+ fputs("#endif\n", f);
+ free((p_mem) set);
+ }
}
if (!haddefault && (l->l_flag & DEF)) {
haddefault = 1;
}
rulecode(l->l_rule, nsafe, mustscan, mustpop);
fputs(c_break,f);
- if (l->l_flag & COND) {
+ if ((l->l_flag & COND) && !(l->l_flag & NOCONF)) {
p++;
fprintf(f,"L_%d : ;\n",hulp);
if (g_gettype(p+1) == EORULE) {
fprintf(f, "L_%d : ", hulp2);
fputs("switch(LLcsymb) {\n", f);
if (q->t_flags & RESOLVER) {
+ if (q->t_flags & NOCONF) {
+ fputs("#ifdef ___NOCONFLICT___\n", f);
+ }
hulp1 = nlabel++;
p1 = setalloc();
setunion(p1,q->t_first);
fputs("if (", f);
getaction(0);
fprintf(f, ") goto L_%d;\n", hulp1);
+ if (q->t_flags & NOCONF) {
+ fputs("#endif ___NOCONFLICT___\n", f);
+ }
}
if (safeterm == 0 || (!onerror && safeterm <= SAFESCANDONE)) {
fputs("default:\n", f);
fputs("\n",stderr);
}
+/* VARARGS1 */
+warning(lineno,s,t,u) string s,t,u; {
+ /*
+ * Just a warning
+ */
+
+ if (!lineno) lineno = 1;
+ fprintf(stderr,"\"%s\", line %d : (Warning) ",f_input, lineno);
+ fprintf(stderr,s,t,u);
+ fputs("\n",stderr);
+}
+
/* VARARGS1 */
fatal(lineno,s,t,u) string s,t,u; {
/*