From 74be3a448f3c4df70ed4f638c723a6d8a431c21c Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 23 Feb 1987 10:50:15 +0000 Subject: [PATCH] *** empty log message *** --- util/LLgen/lib/rec | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/util/LLgen/lib/rec b/util/LLgen/lib/rec index 9f35841bb..03d19ad3e 100644 --- a/util/LLgen/lib/rec +++ b/util/LLgen/lib/rec @@ -62,17 +62,17 @@ LLerror(t) { return; } #endif -#ifdef LL_USERHOOK - LL_USERHOOK(t); - LLread(); -#endif LL_USERHOOK if ((LLcsymb = LLindex[LLsymb]) < 0) { LLmessage(0); LLread(); } i = LLindex[t]; LLtcnt[i]++; - if (LLdoskip()) /* nothing */; +#ifdef LL_USERHOOK + if (LLdoskip(t)) /* nothing */; +#else + if (LLskip()) /* nothing */; +#endif LLtcnt[i]--; if (LLsymb != t) LLmessage(t); } @@ -95,14 +95,11 @@ LLnext(n) { LLskip() { #ifdef LL_USERHOOK - LL_USERHOOK(0); - LLread(); -#endif LL_USERHOOK - return LLdoskip(); + return LLdoskip(0); } -LLdoskip() -{ +LLdoskip(exp) { +#endif LL_USERHOOK register int i; int retval; int LLi, LLb; @@ -117,8 +114,16 @@ LLdoskip() if (LLsets[LL_SSIZE*i+LLi] & LLb) return retval; } } - retval = 1; +#ifdef LL_USERHOOK + { + int old = LLsymb; + LL_USERHOOK(exp); + LLread(); + if (LLsymb != old) continue; + } +#endif LL_USERHOOK LLmessage(0); + retval = 1; LLread(); } /* NOTREACHED */ -- 2.34.1