diff --git a/util/LLgen/lib/incl b/util/LLgen/lib/incl index 9ce5edd5..9049cf9c 100644 --- a/util/LLgen/lib/incl +++ b/util/LLgen/lib/incl @@ -9,7 +9,7 @@ extern int LLsymb; extern char LLsets[]; #define LL_SAFE(x) /* Nothing */ -#define LL_SSCANDONE(x) if (LLsymb != x) LLmessage(x); else +#define LL_SSCANDONE(x) if (LLsymb != x) LLerror(x); else #define LL_SCANDONE(x) if (LLsymb != x) LLerror(x); else #define LL_T_NOSCANDONE(x) LLscan(x) diff --git a/util/LLgen/lib/rec b/util/LLgen/lib/rec index a8d08352..9f35841b 100644 --- a/util/LLgen/lib/rec +++ b/util/LLgen/lib/rec @@ -62,13 +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 (LLskip()) /* nothing */; + if (LLdoskip()) /* nothing */; LLtcnt[i]--; if (LLsymb != t) LLmessage(t); } @@ -90,6 +94,15 @@ LLnext(n) { } LLskip() { +#ifdef LL_USERHOOK + LL_USERHOOK(0); + LLread(); +#endif LL_USERHOOK + return LLdoskip(); +} + +LLdoskip() +{ register int i; int retval; int LLi, LLb;