コード例 #1
0
ファイル: dlg_p.c プロジェクト: Hensinzzx/DDD
atom()
#endif
{
	zzRULE;
	zzBLOCK(zztasp1);
	zzMake0;
	{
	register int i_prime;  
	anychar();
	zzaRet.label = set_of(zzaArg(zztasp1,1 ).letter);
	i_prime = zzaArg(zztasp1,1 ).letter + MIN_CHAR;
	if (case_insensitive && islower(i_prime))
	set_orel(toupper(i_prime)-MIN_CHAR,
	&(zzaRet.label));
	if (case_insensitive && isupper(i_prime))
	set_orel(tolower(i_prime)-MIN_CHAR,
	&(zzaRet.label));
	zzEXIT(zztasp1);
	return;
fail:
	zzEXIT(zztasp1);
	zzsyn(zzMissText, zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk, zzBadText);
	zzresynch(setwd3, 0x8);
	}
}
コード例 #2
0
ファイル: dlg_p.c プロジェクト: Hensinzzx/DDD
near_atom()
#endif
{
	zzRULE;
	zzBLOCK(zztasp1);
	zzMake0;
	{
	register int i;
	register int i_prime;
	anychar();
	zzaRet.letter=zzaArg(zztasp1,1 ).letter; zzaRet.label=set_of(zzaArg(zztasp1,1 ).letter);
	i_prime = zzaArg(zztasp1,1 ).letter + MIN_CHAR;
	if (case_insensitive && islower(i_prime))
	set_orel(toupper(i_prime)-MIN_CHAR,
	&(zzaRet.label));
	if (case_insensitive && isupper(i_prime))
	set_orel(tolower(i_prime)-MIN_CHAR,
	&(zzaRet.label));
	{
		zzBLOCK(zztasp2);
		zzMake0;
		{
		if ( (LA(1)==RANGE) ) {
			zzmatch(RANGE); zzCONSUME;
			anychar();
			if (case_insensitive){
				i_prime = zzaRet.letter+MIN_CHAR;
				zzaRet.letter = (islower(i_prime) ?
				toupper(i_prime) : i_prime)-MIN_CHAR;
				i_prime = zzaArg(zztasp2,2 ).letter+MIN_CHAR;
				zzaArg(zztasp2,2 ).letter = (islower(i_prime) ?
				toupper(i_prime) : i_prime)-MIN_CHAR;
			}
			/* check to see if range okay */
			if (zzaRet.letter > zzaArg(zztasp2,2 ).letter){
				error("invalid range  ", zzline);
			}
			for (i=zzaRet.letter; i<= (int)zzaArg(zztasp2,2 ).letter; ++i){
				set_orel(i,&(zzaRet.label));
				i_prime = i+MIN_CHAR;
				if (case_insensitive && islower(i_prime))
				set_orel(toupper(i_prime)-MIN_CHAR,
				&(zzaRet.label));
				if (case_insensitive && isupper(i_prime))
				set_orel(tolower(i_prime)-MIN_CHAR,
				&(zzaRet.label));
			}
		}
		zzEXIT(zztasp2);
		}
	}
	zzEXIT(zztasp1);
	return;
fail:
	zzEXIT(zztasp1);
	zzsyn(zzMissText, zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk, zzBadText);
	zzresynch(setwd3, 0x4);
	}
}
コード例 #3
0
ファイル: dlg_p.c プロジェクト: Distrotech/cdrdao
atom()
#endif
{
  zzRULE;
  zzBLOCK(zztasp1);
  zzMake0;
  {
  register int i_prime;
  anychar();
  zzaRet.label = set_of(zzaArg(zztasp1,1 ).letter);
  i_prime = zzaArg(zztasp1,1 ).letter + MIN_CHAR;
  if (case_insensitive && islower(i_prime))
  set_orel(toupper(i_prime)-MIN_CHAR,
  &(zzaRet.label));
  if (case_insensitive && isupper(i_prime))
  set_orel(tolower(i_prime)-MIN_CHAR,
  &(zzaRet.label));
  zzEXIT(zztasp1);
  return;
  }
}