亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c-lex.c

?? GUN開源阻止下的編譯器GCC
?? C
?? 第 1 頁 / 共 4 頁
字號:
    case '_':    letter:      p = token_buffer;      while (isalnum (c) || c == '_' || c == '$' || c == '@')	{	  /* Make sure this char really belongs in an identifier.  */	  if (c == '@' && ! doing_objc_thang)	    break;	  if (c == '$' && ! dollars_in_ident)	    break;	  if (p >= token_buffer + maxtoken)	    p = extend_token_buffer (p);	  *p++ = c;	  c = getc (finput);	}      *p = 0;      nextchar = c;      value = IDENTIFIER;      yylval.itype = 0;      /* Try to recognize a keyword.  Uses minimum-perfect hash function */      {	register struct resword *ptr;	if (ptr = is_reserved_word (token_buffer, p - token_buffer))	  {	    if (ptr->rid)	      yylval.ttype = ridpointers[(int) ptr->rid];	    value = (int) ptr->token;	    /* Only return OBJECTNAME if it is a typedef.  */	    if (doing_objc_thang && value == OBJECTNAME)	      {		lastiddecl = lookup_name(yylval.ttype);		if (lastiddecl == NULL_TREE		    || TREE_CODE (lastiddecl) != TYPE_DECL)		  value = IDENTIFIER;	      }	    /* Even if we decided to recognize asm, still perhaps warn.  */	    if (pedantic		&& (value == ASM_KEYWORD || value == TYPEOF		    || ptr->rid == RID_INLINE)		&& token_buffer[0] != '_')	      pedwarn ("ANSI does not permit the keyword `%s'",		       token_buffer);	  }      }      /* If we did not find a keyword, look for an identifier	 (or a typename).  */      if (value == IDENTIFIER)	{ 	  if (token_buffer[0] == '@')	    error("invalid identifier `%s'", token_buffer);          yylval.ttype = get_identifier (token_buffer);	  lastiddecl = lookup_name (yylval.ttype);	  if (lastiddecl != 0 && TREE_CODE (lastiddecl) == TYPE_DECL)	    value = TYPENAME;	  /* A user-invisible read-only initialized variable	     should be replaced by its value.	     We handle only strings since that's the only case used in C.  */	  else if (lastiddecl != 0 && TREE_CODE (lastiddecl) == VAR_DECL		   && DECL_IGNORED_P (lastiddecl)		   && TREE_READONLY (lastiddecl)		   && DECL_INITIAL (lastiddecl) != 0		   && TREE_CODE (DECL_INITIAL (lastiddecl)) == STRING_CST)	    {	      tree stringval = DECL_INITIAL (lastiddecl);	      	      /* Copy the string value so that we won't clobber anything		 if we put something in the TREE_CHAIN of this one.  */	      yylval.ttype = build_string (TREE_STRING_LENGTH (stringval),					   TREE_STRING_POINTER (stringval));	      value = STRING;	    }          else if (doing_objc_thang)            {	      tree objc_interface_decl = is_class_name (yylval.ttype);	      if (objc_interface_decl)		{		  value = CLASSNAME;		  yylval.ttype = objc_interface_decl;		}	    }	}      break;    case '0':  case '1':  case '2':  case '3':  case '4':    case '5':  case '6':  case '7':  case '8':  case '9':    case '.':      {	int base = 10;	int count = 0;	int largest_digit = 0;	int numdigits = 0;	/* for multi-precision arithmetic,	   we actually store only HOST_BITS_PER_CHAR bits in each part.	   The number of parts is chosen so as to be sufficient to hold	   the enough bits to fit into the two HOST_WIDE_INTs that contain	   the integer value (this is always at least as many bits as are	   in a target `long long' value, but may be wider).  */#define TOTAL_PARTS ((HOST_BITS_PER_WIDE_INT / HOST_BITS_PER_CHAR) * 2 + 2)	int parts[TOTAL_PARTS];	int overflow = 0;	enum anon1 { NOT_FLOAT, AFTER_POINT, TOO_MANY_POINTS} floatflag	  = NOT_FLOAT;	for (count = 0; count < TOTAL_PARTS; count++)	  parts[count] = 0;	p = token_buffer;	*p++ = c;	if (c == '0')	  {	    *p++ = (c = getc (finput));	    if ((c == 'x') || (c == 'X'))	      {		base = 16;		*p++ = (c = getc (finput));	      }	    /* Leading 0 forces octal unless the 0 is the only digit.  */	    else if (c >= '0' && c <= '9')	      {		base = 8;		numdigits++;	      }	    else	      numdigits++;	  }	/* Read all the digits-and-decimal-points.  */	while (c == '.'	       || (isalnum (c) && c != 'l' && c != 'L'		   && c != 'u' && c != 'U'		   && c != 'i' && c != 'I' && c != 'j' && c != 'J'		   && (floatflag == NOT_FLOAT || ((c != 'f') && (c != 'F')))))	  {	    if (c == '.')	      {		if (base == 16)		  error ("floating constant may not be in radix 16");		if (floatflag == TOO_MANY_POINTS)		  /* We have already emitted an error.  Don't need another.  */		  ;		else if (floatflag == AFTER_POINT)		  {		    error ("malformed floating constant");		    floatflag = TOO_MANY_POINTS;		    /* Avoid another error from atof by forcing all characters		       from here on to be ignored.  */		    p[-1] = '\0';		  }		else		  floatflag = AFTER_POINT;		base = 10;		*p++ = c = getc (finput);		/* Accept '.' as the start of a floating-point number		   only when it is followed by a digit.		   Otherwise, unread the following non-digit		   and use the '.' as a structural token.  */		if (p == token_buffer + 2 && !isdigit (c))		  {		    if (c == '.')		      {			c = getc (finput);			if (c == '.')			  {			    *p++ = c;			    *p = 0;			    return ELLIPSIS;			  }			error ("parse error at `..'");		      }		    ungetc (c, finput);		    token_buffer[1] = 0;		    value = '.';		    goto done;		  }	      }	    else	      {		/* It is not a decimal point.		   It should be a digit (perhaps a hex digit).  */		if (isdigit (c))		  {		    c = c - '0';		  }		else if (base <= 10)		  {		    if (c == 'e' || c == 'E')		      {			base = 10;			floatflag = AFTER_POINT;			break;   /* start of exponent */		      }		    error ("nondigits in number and not hexadecimal");		    c = 0;		  }		else if (c >= 'a')		  {		    c = c - 'a' + 10;		  }		else		  {		    c = c - 'A' + 10;		  }		if (c >= largest_digit)		  largest_digit = c;		numdigits++;		for (count = 0; count < TOTAL_PARTS; count++)		  {		    parts[count] *= base;		    if (count)		      {			parts[count]			  += (parts[count-1] >> HOST_BITS_PER_CHAR);			parts[count-1]			  &= (1 << HOST_BITS_PER_CHAR) - 1;		      }		    else		      parts[0] += c;		  }		/* If the extra highest-order part ever gets anything in it,		   the number is certainly too big.  */		if (parts[TOTAL_PARTS - 1] != 0)		  overflow = 1;		if (p >= token_buffer + maxtoken - 3)		  p = extend_token_buffer (p);		*p++ = (c = getc (finput));	      }	  }	if (numdigits == 0)	  error ("numeric constant with no digits");	if (largest_digit >= base)	  error ("numeric constant contains digits beyond the radix");	/* Remove terminating char from the token buffer and delimit the string */	*--p = 0;	if (floatflag != NOT_FLOAT)	  {	    tree type = double_type_node;	    int garbage_chars = 0, exceeds_double = 0;	    int imag = 0;	    REAL_VALUE_TYPE value;	    jmp_buf handler;	    /* Read explicit exponent if any, and put it in tokenbuf.  */	    if ((c == 'e') || (c == 'E'))	      {		if (p >= token_buffer + maxtoken - 3)		  p = extend_token_buffer (p);		*p++ = c;		c = getc (finput);		if ((c == '+') || (c == '-'))		  {		    *p++ = c;		    c = getc (finput);		  }		if (! isdigit (c))		  error ("floating constant exponent has no digits");	        while (isdigit (c))		  {		    if (p >= token_buffer + maxtoken - 3)		      p = extend_token_buffer (p);		    *p++ = c;		    c = getc (finput);		  }	      }	    *p = 0;	    errno = 0;	    /* Convert string to a double, checking for overflow.  */	    if (setjmp (handler))	      {		error ("floating constant out of range");		value = dconst0;	      }	    else	      {		int fflag = 0, lflag = 0;		/* Copy token_buffer now, while it has just the number		   and not the suffixes; once we add `f' or `i',		   REAL_VALUE_ATOF may not work any more.  */		char *copy = (char *) alloca (p - token_buffer + 1);		bcopy (token_buffer, copy, p - token_buffer + 1);		set_float_handler (handler);		while (1)		  {		    int lose = 0;		    /* Read the suffixes to choose a data type.  */		    switch (c)		      {		      case 'f': case 'F':			if (fflag)			  error ("more than one `f' in numeric constant");			fflag = 1;			break;		      case 'l': case 'L':			if (lflag)			  error ("more than one `l' in numeric constant");			lflag = 1;			break;		      case 'i': case 'I':			if (imag)			  error ("more than one `i' or `j' in numeric constant");			else if (pedantic)			  pedwarn ("ANSI C forbids imaginary numeric constants");			imag = 1;			break;		      default:			lose = 1;		      }		    if (lose)		      break;		    if (p >= token_buffer + maxtoken - 3)		      p = extend_token_buffer (p);		    *p++ = c;		    *p = 0;		    c = getc (finput);		  }		/* The second argument, machine_mode, of REAL_VALUE_ATOF		   tells the desired precision of the binary result		   of decimal-to-binary conversion.  */		if (fflag)		  {		    if (lflag)		      error ("both `f' and `l' in floating constant");		    type = float_type_node;		    value = REAL_VALUE_ATOF (copy, TYPE_MODE (type));		    /* A diagnostic is required here by some ANSI C testsuites.		       This is not pedwarn, become some people don't want		       an error for this.  */		    if (REAL_VALUE_ISINF (value) && pedantic)		      warning ("floating point number exceeds range of `float'");		  }		else if (lflag)		  {		    type = long_double_type_node;		    value = REAL_VALUE_ATOF (copy, TYPE_MODE (type));		    if (REAL_VALUE_ISINF (value) && pedantic)		      warning ("floating point number exceeds range of `long double'");		  }		else		  {		    value = REAL_VALUE_ATOF (copy, TYPE_MODE (type));		    if (REAL_VALUE_ISINF (value) && pedantic)		      warning ("floating point number exceeds range of `double'");		  }		set_float_handler (NULL_PTR);	    }#ifdef ERANGE	    if (errno == ERANGE && !flag_traditional && pedantic)	      {  		/* ERANGE is also reported for underflow,  		   so test the value to distinguish overflow from that.  */		if (REAL_VALUES_LESS (dconst1, value)		    || REAL_VALUES_LESS (value, dconstm1))		  {		    warning ("floating point number exceeds range of `double'");		    exceeds_double = 1;		  }	      }#endif	    garbage_chars = 0;	    while (isalnum (c) || c == '.' || c == '_'		   || (!flag_traditional && (c == '+' || c == '-')		       && (p[-1] == 'e' || p[-1] == 'E')))	      {		if (p >= token_buffer + maxtoken - 3)		  p = extend_token_buffer (p);		*p++ = c;		c = getc (finput);		garbage_chars++;	      }	    if (garbage_chars > 0)	      error ("garbage at end of number");	    /* If the result is not a number, assume it must have been	       due to some error message above, so silently convert	       it to a zero.  */	    if (REAL_VALUE_ISNAN (value))	      value = dconst0;	    /* Create a node with determined type and value.  */	    if (imag)	      yylval.ttype = build_complex (convert (type, integer_zero_node),					    build_real (type, value));	    else	      yylval.ttype = build_real (type, value);	    ungetc (c, finput);	    *p = 0;	  }	else	  {	    tree traditional_type, ansi_type, type;	    HOST_WIDE_INT high, low;	    int spec_unsigned = 0;	    int spec_long = 0;	    int spec_long_long = 0;	    int spec_imag = 0;	    int bytes, warn, i;	    while (1)	      {		if (c == 'u' || c == 'U')		  {		    if (spec_unsigned)		      error ("two `u's in integer constant");		    spec_unsigned = 1;		  }		else if (c == 'l' || c == 'L')		  {		    if (spec_long)		      {			if (spec_long_long)			  error ("three `l's in integer constant");			else if (pedantic)			  pedwarn ("ANSI C forbids long long integer constants");			spec_long_long = 1;		      }		    spec_long = 1;		  }		else if (c == 'i' || c == 'j' || c == 'I' || c == 'J')		  {		    if (spec_imag)		      error ("more than one `i' or `j' in numeric constant");		    else if (pedantic)		      pedwarn ("ANSI C forbids imaginary numeric constants");		    spec_imag = 1;		  }		else		  {		    if (isalnum (c) || c == '.' || c == '_'			|| (!flag_traditional && (c == '+' || c == '-')			    && (p[-1] == 'e' || p[-1] == 'E')))		      {			error ("garbage at end of number");			while (isalnum (c) || c == '.' || c == '_'			       || (!flag_traditional && (c == '+' || c == '-')				   && (p[-1] == 'e' || p[-1] == 'E')))			  {			    if (p >= token_buffer + maxtoken - 3)			      p = extend_token_buffer (p);			    *p++ = c;			    c = getc (finput);			  }		      }		    break;		  }		if (p >= token_buffer + maxtoken - 3)		  p = extend_token_buffer (p);		*p++ = c;		c = getc (finput);	      }	    ungetc (c, finput);	    /* If the constant is not long long and it won't fit in an	       unsigned long, or if the constant is long long and won't fit	       in an unsigned long long, then warn that the constant is out	       of range.  */	    /* ??? This assumes that long long and long integer types are	       a multiple of 8 bits.  This better than the original code	       though which assumed that long was exactly 32 bits and long	       long was exactly 64 bits.  */	    if (spec_long_long)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
玖玖九九国产精品| 亚洲第一激情av| av福利精品导航| 亚洲婷婷综合色高清在线| 一本久道中文字幕精品亚洲嫩| 亚洲欧美精品午睡沙发| 欧美日韩视频不卡| 美女视频黄 久久| 日本一区二区三区国色天香 | 成人激情免费电影网址| 中文字幕一区二区三区不卡在线 | 一本一道久久a久久精品 | 日韩精品三区四区| 欧美成人免费网站| 丁香六月久久综合狠狠色| 亚洲卡通动漫在线| 日韩一区二区不卡| av成人动漫在线观看| 亚洲国产欧美在线| 26uuu国产日韩综合| 一本一本久久a久久精品综合麻豆| 香蕉久久一区二区不卡无毒影院| 亚洲精品在线观看视频| 91色porny在线视频| 日本sm残虐另类| 亚洲欧洲日韩在线| 日韩精品在线看片z| 99热精品一区二区| 久久不见久久见免费视频7| 中文字幕一区二区三区蜜月| 91精品综合久久久久久| 国产不卡视频一区二区三区| 亚洲超丰满肉感bbw| 国产日产精品1区| 欧美丝袜丝交足nylons图片| 国产成人av自拍| 日韩中文字幕区一区有砖一区| 国产精品丝袜一区| 日韩一区二区高清| 欧美三区免费完整视频在线观看| 国产剧情一区二区| 日韩高清欧美激情| 亚洲另类中文字| 久久精品欧美日韩精品| 7777精品伊人久久久大香线蕉最新版| 成人91在线观看| 韩国三级在线一区| 日韩福利电影在线观看| 亚洲欧洲综合另类| 国产欧美精品在线观看| 欧美成人aa大片| 欧美久久高跟鞋激| 色系网站成人免费| 成人av综合一区| 国产成人精品影院| 国产精品77777竹菊影视小说| 日本麻豆一区二区三区视频| 一区二区三区精密机械公司| 欧美经典三级视频一区二区三区| 精品国产一二三区| 欧美成人vps| 日韩一级大片在线| 欧美卡1卡2卡| 777午夜精品视频在线播放| 欧美在线看片a免费观看| 99国产精品久久久久| 成人a免费在线看| 成+人+亚洲+综合天堂| 国产98色在线|日韩| 国产成人超碰人人澡人人澡| 国产高清不卡一区| 成人三级伦理片| 成人av在线观| 色综合欧美在线视频区| 色婷婷av久久久久久久| 色一情一乱一乱一91av| 在线观看网站黄不卡| 欧美在线短视频| 制服丝袜日韩国产| 精品国产一区二区三区久久久蜜月| 精品捆绑美女sm三区| 国产亚洲成av人在线观看导航| 国产欧美视频一区二区| 国产欧美精品一区二区色综合| 国产清纯白嫩初高生在线观看91| 日本一区二区三区四区| 亚洲婷婷在线视频| 亚洲成av人片一区二区三区| 日韩不卡一二三区| 精品在线播放午夜| 成人v精品蜜桃久久一区| 91福利国产成人精品照片| 欧美精三区欧美精三区| 精品少妇一区二区三区| 国产欧美一区二区在线观看| 亚洲日本在线看| 亚洲成人免费av| 国产尤物一区二区| 色综合天天综合色综合av | 精品在线一区二区| 粉嫩av亚洲一区二区图片| 91在线一区二区| 这里只有精品免费| 国产日韩av一区二区| 亚洲精品欧美综合四区| 强制捆绑调教一区二区| 丰满岳乱妇一区二区三区| 欧美性xxxxxxxx| 久久夜色精品国产噜噜av| 自拍偷拍国产亚洲| 久久se这里有精品| 91丨九色丨蝌蚪富婆spa| 91精品国产一区二区三区| 国产色爱av资源综合区| 亚洲电影一区二区| 懂色av一区二区在线播放| 欧美三级欧美一级| 日本一区二区三区国色天香| 视频一区二区欧美| 成人亚洲精品久久久久软件| 3atv一区二区三区| 亚洲视频一区在线| 国产自产高清不卡| 欧美午夜精品一区二区三区| 2024国产精品| 视频一区欧美精品| 色综合天天在线| 久久精品亚洲国产奇米99 | 强制捆绑调教一区二区| 97se亚洲国产综合自在线观| 精品国产一区二区三区久久久蜜月 | 日本伊人午夜精品| 色婷婷狠狠综合| 欧美激情一区二区三区不卡| 亚洲成人7777| 色婷婷亚洲精品| 国产精品理论在线观看| 麻豆一区二区99久久久久| 欧美色精品天天在线观看视频| 中文字幕第一区综合| 黑人巨大精品欧美一区| 91精品国产综合久久蜜臀| 亚洲精品欧美在线| 91性感美女视频| 亚洲国产电影在线观看| 国产精品18久久久久久久久 | 中文字幕高清一区| 久久91精品国产91久久小草 | 精品久久久久久久久久久久久久久久久 | 国产欧美一区二区三区在线看蜜臀| 日韩不卡一二三区| 欧美色图在线观看| 亚洲人成网站色在线观看| 成人精品一区二区三区四区| 久久久国产精品麻豆| 狠狠色丁香久久婷婷综合_中| 91精品国产免费久久综合| 亚洲国产另类精品专区| 色哟哟精品一区| 一区二区三区在线播| 日本高清无吗v一区| 亚洲女同ⅹxx女同tv| 色婷婷一区二区| 一区二区三区不卡视频在线观看 | 欧美在线一区二区| 亚洲成人免费观看| 制服视频三区第一页精品| 日本91福利区| 日韩一本二本av| 国内久久婷婷综合| 国产午夜精品理论片a级大结局| 国产剧情一区二区| 中文字幕一区二区三区四区不卡| 不卡视频免费播放| 亚洲精品网站在线观看| 欧美在线观看18| 日韩电影免费在线观看网站| 欧美一区二区女人| 国产在线精品一区二区| 国产三级精品在线| eeuss影院一区二区三区| 亚洲视频香蕉人妖| 欧美色区777第一页| 理论电影国产精品| 久久精品欧美一区二区三区不卡 | 久久91精品久久久久久秒播| 久久亚洲一级片| 成年人国产精品| 亚洲制服欧美中文字幕中文字幕| 7777女厕盗摄久久久| 国产一区二区三区美女| 亚洲色图19p| 欧美一区二区三区不卡| 国产精品乡下勾搭老头1| 亚洲精品视频观看| 精品国免费一区二区三区| av电影一区二区| 免费成人美女在线观看.| 中文字幕精品在线不卡| 欧美久久久久久久久中文字幕|