modified generation of token mapping somewhat
This commit is contained in:
		
							parent
							
								
									8bdf3af20c
								
							
						
					
					
						commit
						e1f7d20251
					
				
					 3 changed files with 11 additions and 12 deletions
				
			
		|  | @ -17,7 +17,6 @@ extern int LLsymb; | |||
| extern unsigned int LLscnt[]; | ||||
| extern unsigned int LLtcnt[]; | ||||
| extern int LLcsymb; | ||||
| extern int LL_symb; | ||||
| 
 | ||||
| #define LLsdecr(d)	{LL_assert(LLscnt[d] > 0); LLscnt[d]--;} | ||||
| #define LLtdecr(d)	{LL_assert(LLtcnt[d] > 0); LLtcnt[d]--;} | ||||
|  |  | |||
|  | @ -32,8 +32,7 @@ LLscan(t) { | |||
| 	/* | ||||
| 	 * Check if the next symbol is equal to the parameter | ||||
| 	 */ | ||||
| 	if ((LLsymb = LL_LEXI()) <= 0) LLsymb = EOFILE; | ||||
| 	if (LLsymb == t) { | ||||
| 	if ((LLsymb = LL_LEXI()) == t) { | ||||
| 		return; | ||||
| 	} | ||||
| 	/* | ||||
|  | @ -44,8 +43,7 @@ LLscan(t) { | |||
| 
 | ||||
| LLread() { | ||||
| 	for (;;) { | ||||
| 		if ((LLsymb = LL_LEXI()) <= 0) LLsymb = EOFILE; | ||||
| 		if ((LLcsymb = LLindex[LLsymb]) >= 0) return; | ||||
| 		if ((LLcsymb = LLindex[(LLsymb = LL_LEXI())]) >= 0) return; | ||||
| 		LLmessage(0); | ||||
| 	} | ||||
| 	/* NOTREACHED */ | ||||
|  | @ -54,15 +52,17 @@ LLread() { | |||
| LLerror(t) { | ||||
| 	register int i; | ||||
| 
 | ||||
| 	if (t == EOFILE && LLsymb <= 0) return; | ||||
| #ifdef LL_NEWMESS | ||||
| 	if (t == EOFILE) { | ||||
| #ifdef LL_USERHOOK | ||||
| 		static int lst[] = { EOFILE, 0 }; | ||||
| 		LLuserhook(EOFILE, lst); | ||||
| #endif LL_USERHOOK | ||||
| 		if (LLsymb != EOFILE) { | ||||
| 		if (LLsymb != EOFILE && LLsymb > 0) { | ||||
| 			LLmessage(-1); | ||||
| 			while ((LLsymb = LL_LEXI()) > 0) /* nothing */ ; | ||||
| 			while ((LLsymb = LL_LEXI()) > 0 && LLsymb != EOFILE)  | ||||
| 				/* nothing */ ; | ||||
| 		} | ||||
| 		return; | ||||
| 	} | ||||
|  | @ -107,7 +107,7 @@ LLnext(n) { | |||
| 	if (n <= 0 && LLsets[(LLcsymb >> 3) - n] & (1 << (LLcsymb & 07))) { | ||||
| 		retval |= 2; | ||||
| 	} | ||||
| 	else if (LLsymb == n) retval |= 2; | ||||
| 	else if (n > 0 && LLcsymb == LLindex[n]) retval |= 2; | ||||
| 	return retval; | ||||
| } | ||||
| 
 | ||||
|  | @ -170,7 +170,7 @@ LLdoskip(exp) { | |||
| 	for (;;) { | ||||
| 		if (LLtcnt[LLcsymb] != 0) { | ||||
| #ifdef LL_USERHOOK | ||||
| 			if (!exp || !LLx || LLsymb == exp) | ||||
| 			if (!exp || !LLx || LLcsymb == LLindex[exp]) | ||||
| #endif | ||||
| 			return retval; | ||||
| 		} | ||||
|  | @ -180,7 +180,7 @@ LLdoskip(exp) { | |||
| 			if (LLscnt[i] != 0) { | ||||
| 				if (LLsets[LL_SSIZE*i+LLi] & LLb) { | ||||
| #ifdef LL_USERHOOK | ||||
| 					if (!exp || !LLx || LLsymb == exp) | ||||
| 					if (!exp || !LLx || LLcsymb == LLindex[exp]) | ||||
| #endif | ||||
| 					return retval; | ||||
| 				} | ||||
|  |  | |||
|  | @ -208,8 +208,8 @@ genrecovery() { | |||
| 	for (t = tokens; t < maxt; t++) { | ||||
| 		index[t->t_tokno] = t - tokens; | ||||
| 	} | ||||
| 	fputs("static short LLindex[] = {\n",f); | ||||
| 	for (q = index; q < &index[assval]; q++) { | ||||
| 	fputs("#define LLindex (LL_index+1)\nstatic short LL_index[] = {0,0,\n",f); | ||||
| 	for (q = index+1; q < &index[assval]; q++) { | ||||
| 		fprintf(f, "%d,\n", *q); | ||||
| 	} | ||||
| 	fputs(c_arrend, f); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue