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

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

?? c-lex.c

?? 早期freebsd實現
?? C
?? 第 1 頁 / 共 4 頁
字號:
		    spec_long = 1;		  }		else		  {		    if (isalnum (c))		      {			error ("garbage at end of number");			while (isalnum (c))			  {			    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)	      bytes = TYPE_PRECISION (long_long_integer_type_node) / 8;	    else	      bytes = TYPE_PRECISION (long_integer_type_node) / 8;	    warn = overflow;	    for (i = bytes; i < TOTAL_PARTS; i++)	      if (parts[i])		warn = 1;	    if (warn)	      pedwarn ("integer constant out of range");	    /* This is simplified by the fact that our constant	       is always positive.  */	    high = low = 0;	    for (i = 0; i < HOST_BITS_PER_WIDE_INT / HOST_BITS_PER_CHAR; i++)	      {		high |= ((HOST_WIDE_INT) parts[i + (HOST_BITS_PER_WIDE_INT						    / HOST_BITS_PER_CHAR)]			 << (i * HOST_BITS_PER_CHAR));		low |= (HOST_WIDE_INT) parts[i] << (i * HOST_BITS_PER_CHAR);	      }	    	    yylval.ttype = build_int_2 (low, high);	    TREE_TYPE (yylval.ttype) = long_long_unsigned_type_node;	    /* If warn_traditional, calculate both the ANSI type and the	       traditional type, then see if they disagree.	       Otherwise, calculate only the type for the dialect in use.  */	    if (warn_traditional || flag_traditional)	      {		/* Calculate the traditional type.  */		/* Traditionally, any constant is signed;		   but if unsigned is specified explicitly, obey that.		   Use the smallest size with the right number of bits,		   except for one special case with decimal constants.  */		if (! spec_long && base != 10		    && int_fits_type_p (yylval.ttype, unsigned_type_node))		  traditional_type = (spec_unsigned ? unsigned_type_node				      : integer_type_node);		/* A decimal constant must be long		   if it does not fit in type int.		   I think this is independent of whether		   the constant is signed.  */		else if (! spec_long && base == 10			 && int_fits_type_p (yylval.ttype, integer_type_node))		  traditional_type = (spec_unsigned ? unsigned_type_node				      : integer_type_node);		else if (! spec_long_long)		  traditional_type = (spec_unsigned ? long_unsigned_type_node				      : long_integer_type_node);		else		  traditional_type = (spec_unsigned				      ? long_long_unsigned_type_node				      : long_long_integer_type_node);	      }	    if (warn_traditional || ! flag_traditional)	      {		/* Calculate the ANSI type.  */		if (! spec_long && ! spec_unsigned		    && int_fits_type_p (yylval.ttype, integer_type_node))		  ansi_type = integer_type_node;		else if (! spec_long && (base != 10 || spec_unsigned)			 && int_fits_type_p (yylval.ttype, unsigned_type_node))		  ansi_type = unsigned_type_node;		else if (! spec_unsigned && !spec_long_long			 && int_fits_type_p (yylval.ttype, long_integer_type_node))		  ansi_type = long_integer_type_node;		else if (! spec_long_long)		  ansi_type = long_unsigned_type_node;		else if (! spec_unsigned			 /* Verify value does not overflow into sign bit.  */			 && TREE_INT_CST_HIGH (yylval.ttype) >= 0			 && int_fits_type_p (yylval.ttype,					     long_long_integer_type_node))		  ansi_type = long_long_integer_type_node;		else		  ansi_type = long_long_unsigned_type_node;	      }	    type = flag_traditional ? traditional_type : ansi_type;	    if (warn_traditional && traditional_type != ansi_type)	      {		if (TYPE_PRECISION (traditional_type)		    != TYPE_PRECISION (ansi_type))		  warning ("width of integer constant changes with -traditional");		else if (TREE_UNSIGNED (traditional_type)			 != TREE_UNSIGNED (ansi_type))		  warning ("integer constant is unsigned in ANSI C, signed with -traditional");		else		  warning ("width of integer constant may change on other systems with -traditional");	      }	    if (!flag_traditional && !int_fits_type_p (yylval.ttype, type)		&& !warn)	      pedwarn ("integer constant out of range");	    if (base == 10 && ! spec_unsigned && TREE_UNSIGNED (type))	      warning ("integer constant is so large that it is unsigned");	    if (flag_traditional && !int_fits_type_p (yylval.ttype, type))	      /* The traditional constant 0x80000000 is signed		 but doesn't fit in the range of int.		 This will change it to -0x80000000, which does fit.  */	      {		TREE_TYPE (yylval.ttype) = unsigned_type (type);		yylval.ttype = convert (type, yylval.ttype);	      }	    else	      TREE_TYPE (yylval.ttype) = type;	    *p = 0;	  }	value = CONSTANT; break;      }    case '\'':    char_constant:      {	register int result = 0;	register int num_chars = 0;	unsigned width = TYPE_PRECISION (char_type_node);	int max_chars;	if (wide_flag)	  {	    width = WCHAR_TYPE_SIZE;#ifdef MULTIBYTE_CHARS	    max_chars = MB_CUR_MAX;#else	    max_chars = 1;#endif	  }	else	  max_chars = TYPE_PRECISION (integer_type_node) / width;	while (1)	  {	  tryagain:	    c = getc (finput);	    if (c == '\'' || c == EOF)	      break;	    if (c == '\\')	      {		int ignore = 0;		c = readescape (&ignore);		if (ignore)		  goto tryagain;		if (width < HOST_BITS_PER_INT		    && (unsigned) c >= (1 << width))		  pedwarn ("escape sequence out of range for character");	      }	    else if (c == '\n')	      {		if (pedantic)		  pedwarn ("ANSI C forbids newline in character constant");		lineno++;	      }	    num_chars++;	    if (num_chars > maxtoken - 4)	      extend_token_buffer (token_buffer);	    token_buffer[num_chars] = c;	    /* Merge character into result; ignore excess chars.  */	    if (num_chars < max_chars + 1)	      {		if (width < HOST_BITS_PER_INT)		  result = (result << width) | (c & ((1 << width) - 1));		else		  result = c;	      }	  }	token_buffer[num_chars + 1] = '\'';	token_buffer[num_chars + 2] = 0;	if (c != '\'')	  error ("malformatted character constant");	else if (num_chars == 0)	  error ("empty character constant");	else if (num_chars > max_chars)	  {	    num_chars = max_chars;	    error ("character constant too long");	  }	else if (num_chars != 1 && ! flag_traditional)	  warning ("multi-character character constant");	/* If char type is signed, sign-extend the constant.  */	if (! wide_flag)	  {	    int num_bits = num_chars * width;	    if (TREE_UNSIGNED (char_type_node)		|| ((result >> (num_bits - 1)) & 1) == 0)	      yylval.ttype		= build_int_2 (result & ((unsigned HOST_WIDE_INT) ~0					 >> (HOST_BITS_PER_WIDE_INT - num_bits)),			       0);	    else	      yylval.ttype		= build_int_2 (result | ~((unsigned HOST_WIDE_INT) ~0					  >> (HOST_BITS_PER_WIDE_INT - num_bits)),			       -1);	  }	else	  {#ifdef MULTIBYTE_CHARS	    /* Set the initial shift state and convert the next sequence.  */	    result = 0;	    /* In all locales L'\0' is zero and mbtowc will return zero,	       so don't use it.  */	    if (num_chars > 1		|| (num_chars == 1 && token_buffer[1] != '\0'))	      {		wchar_t wc;		(void) mbtowc (NULL_PTR, NULL_PTR, 0);		if (mbtowc (& wc, token_buffer + 1, num_chars) == num_chars)		  result = wc;		else		  warning ("Ignoring invalid multibyte character");	      }#endif	    yylval.ttype = build_int_2 (result, 0);	  }	TREE_TYPE (yylval.ttype) = integer_type_node;	value = CONSTANT;	break;      }    case '"':    string_constant:      {	c = getc (finput);	p = token_buffer + 1;	while (c != '"' && c >= 0)	  {	    /* ignore_escape_flag is set for reading the filename in #line.  */	    if (!ignore_escape_flag && c == '\\')	      {		int ignore = 0;		c = readescape (&ignore);		if (ignore)		  goto skipnewline;		if (!wide_flag		    && TYPE_PRECISION (char_type_node) < HOST_BITS_PER_INT		    && c >= (1 << TYPE_PRECISION (char_type_node)))		  pedwarn ("escape sequence out of range for character");	      }	    else if (c == '\n')	      {		if (pedantic)		  pedwarn ("ANSI C forbids newline in string constant");		lineno++;	      }	    if (p == token_buffer + maxtoken)	      p = extend_token_buffer (p);	    *p++ = c;	  skipnewline:	    c = getc (finput);	  }	*p = 0;	/* We have read the entire constant.	   Construct a STRING_CST for the result.  */	if (wide_flag)	  {	    /* If this is a L"..." wide-string, convert the multibyte string	       to a wide character string.  */	    char *widep = (char *) alloca ((p - token_buffer) * WCHAR_BYTES);	    int len;#ifdef MULTIBYTE_CHARS	    len = mbstowcs ((wchar_t *) widep, token_buffer + 1, p - token_buffer);	    if ((unsigned) len >= (p - token_buffer))	      {		warning ("Ignoring invalid multibyte string");		len = 0;	      }	    bzero (widep + (len * WCHAR_BYTES), WCHAR_BYTES);#else	    {	      union { long l; char c[sizeof (long)]; } u;	      int big_endian;	      char *wp, *cp;	      /* Determine whether host is little or big endian.  */	      u.l = 1;	      big_endian = u.c[sizeof (long) - 1];	      wp = widep + (big_endian ? WCHAR_BYTES - 1 : 0);	      bzero (widep, (p - token_buffer) * WCHAR_BYTES);	      for (cp = token_buffer + 1; cp < p; cp++)		*wp = *cp, wp += WCHAR_BYTES;	      len = p - token_buffer - 1;	    }#endif	    yylval.ttype = build_string ((len + 1) * WCHAR_BYTES, widep);	    TREE_TYPE (yylval.ttype) = wchar_array_type_node;	  }	else	  {	    yylval.ttype = build_string (p - token_buffer, token_buffer + 1);	    TREE_TYPE (yylval.ttype) = char_array_type_node;	  }	*p++ = '"';	*p = 0;	value = STRING; break;      }    case '+':    case '-':    case '&':    case '|':    case '<':    case '>':    case '*':    case '/':    case '%':    case '^':    case '!':    case '=':      {	register int c1;      combine:	switch (c)	  {	  case '+':	    yylval.code = PLUS_EXPR; break;	  case '-':	    yylval.code = MINUS_EXPR; break;	  case '&':	    yylval.code = BIT_AND_EXPR; break;	  case '|':	    yylval.code = BIT_IOR_EXPR; break;	  case '*':	    yylval.code = MULT_EXPR; break;	  case '/':	    yylval.code = TRUNC_DIV_EXPR; break;	  case '%':	    yylval.code = TRUNC_MOD_EXPR; break;	  case '^':	    yylval.code = BIT_XOR_EXPR; break;	  case LSHIFT:	    yylval.code = LSHIFT_EXPR; break;	  case RSHIFT:	    yylval.code = RSHIFT_EXPR; break;	  case '<':	    yylval.code = LT_EXPR; break;	  case '>':	    yylval.code = GT_EXPR; break;	  }	token_buffer[1] = c1 = getc (finput);	token_buffer[2] = 0;	if (c1 == '=')	  {	    switch (c)	      {	      case '<':		value = ARITHCOMPARE; yylval.code = LE_EXPR; goto done;	      case '>':		value = ARITHCOMPARE; yylval.code = GE_EXPR; goto done;	      case '!':		value = EQCOMPARE; yylval.code = NE_EXPR; goto done;	      case '=':		value = EQCOMPARE; yylval.code = EQ_EXPR; goto done;	      }	    value = ASSIGN; goto done;	  }	else if (c == c1)	  switch (c)	    {	    case '+':	      value = PLUSPLUS; goto done;	    case '-':	      value = MINUSMINUS; goto done;	    case '&':	      value = ANDAND; goto done;	    case '|':	      value = OROR; goto done;	    case '<':	      c = LSHIFT;	      goto combine;	    case '>':	      c = RSHIFT;	      goto combine;	    }	else if ((c == '-') && (c1 == '>'))	  { value = POINTSAT; goto done; }	ungetc (c1, finput);	token_buffer[1] = 0;	if ((c == '<') || (c == '>'))	  value = ARITHCOMPARE;	else value = c;	goto done;      }    case 0:      /* Don't make yyparse think this is eof.  */      value = 1;      break;    default:      value = c;    }done:/*  yylloc.last_line = lineno; */  return value;}/* Sets the value of the 'yydebug' variable to VALUE.   This is a function so we don't have to have YYDEBUG defined   in order to build the compiler.  */voidset_yydebug (value)     int value;{#if YYDEBUG != 0  yydebug = value;#else  warning ("YYDEBUG not defined.");#endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久久久中文一区二区 | 看电视剧不卡顿的网站| 人人爽香蕉精品| 日韩国产在线一| 国产自产高清不卡| 欧美视频一区二区三区四区 | 中文字幕一区二区三中文字幕| 亚洲欧美日韩在线| 国产精品色眯眯| 久久狠狠亚洲综合| 波多野结衣欧美| 欧美在线视频日韩| 日韩你懂的在线播放| 亚洲成人免费影院| 久久99国内精品| 不卡的av在线| 欧美日本在线观看| 欧美一区二区三区在线观看| 国产色产综合产在线视频| 亚洲三级在线看| 日韩福利电影在线观看| 一区二区三区精品在线| 成人免费av在线| 欧美精品vⅰdeose4hd| 精品久久免费看| 亚洲免费资源在线播放| 国产精品高清亚洲| 日本中文一区二区三区| 99精品视频一区二区| 91精品国产一区二区三区蜜臀| 日韩一区二区三区三四区视频在线观看 | 99国产精品国产精品久久| 欧美美女黄视频| 日韩欧美色综合网站| 丝袜美腿亚洲综合| 成人免费视频播放| 91精品久久久久久久久99蜜臂| 国产欧美日韩在线视频| 亚洲欧美经典视频| 色狠狠综合天天综合综合| 日韩免费高清视频| 亚洲宅男天堂在线观看无病毒| 狠狠v欧美v日韩v亚洲ⅴ| 日韩欧美视频在线| 亚洲一级二级三级在线免费观看| 成人精品国产免费网站| 日韩三级精品电影久久久| 日韩福利视频导航| 欧美亚洲综合色| 欧美国产日韩a欧美在线观看| 日韩影院精彩在线| 亚洲福利一区二区三区| 欧美理论片在线| 亚洲天堂精品视频| 九九在线精品视频| 欧美高清视频一二三区 | 一道本成人在线| 国产精品免费久久久久| 蜜桃精品在线观看| 91福利在线免费观看| 久久视频一区二区| 日本 国产 欧美色综合| 欧美综合色免费| 日韩美女视频一区二区| 狠狠色伊人亚洲综合成人| 欧美日韩精品久久久| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 91香蕉视频污在线| 欧美激情一区在线观看| 久久精品免费观看| hitomi一区二区三区精品| 亚洲一区国产视频| 欧美丝袜第三区| 一区二区三区不卡在线观看| 伊人色综合久久天天人手人婷| 欧美日韩国产a| 亚洲综合无码一区二区| 99视频一区二区| 欧美一区二区三区日韩视频| 国产精品99久| 国产精品污污网站在线观看| 久久国产精品99久久人人澡| 成人国产在线观看| 久久久久99精品国产片| 91亚洲国产成人精品一区二区三 | 欧美一区二区三区公司| 亚洲国产精品久久不卡毛片| 国产麻豆精品theporn| 久久久综合激的五月天| 久久精品国产成人一区二区三区 | 日韩精品一区二区三区在线观看 | 激情六月婷婷久久| 久久久亚洲高清| 国产91在线看| 亚洲一区二区三区四区五区黄 | 色噜噜狠狠色综合中国| 亚洲美女偷拍久久| 欧美亚洲综合网| 日韩—二三区免费观看av| 91免费国产视频网站| 看片的网站亚洲| 国产精品免费视频网站| 色综合久久88色综合天天6| 国产精品高潮呻吟| 久久综合九色综合欧美98| 国产宾馆实践打屁股91| 国产精品成人一区二区三区夜夜夜 | 欧美日韩免费观看一区三区| 亚洲国产精品视频| 欧美电视剧免费全集观看| 风间由美一区二区av101| 日本欧美一区二区三区| 精品不卡在线视频| www.日本不卡| 亚洲国产精品久久艾草纯爱| 亚洲国产精品成人久久综合一区| 91蜜桃网址入口| 日韩高清一区在线| 国产亚洲精品精华液| 欧美美女网站色| 国产99久久久国产精品免费看| 成人欧美一区二区三区小说| 日本乱人伦一区| 国产成人综合在线观看| 亚洲免费在线电影| 91精品国产91综合久久蜜臀| 亚洲人成亚洲人成在线观看图片 | 日韩欧美一级在线播放| 国产精品少妇自拍| 色综合久久久久综合体| 午夜国产精品一区| 欧美一区二区三区视频在线观看 | 国产精品丝袜久久久久久app| 97精品久久久午夜一区二区三区 | 99久久国产综合精品女不卡| 老色鬼精品视频在线观看播放| 国产日韩欧美麻豆| 91精品国产黑色紧身裤美女| 欧美日韩国产bt| 91国产精品成人| 91丨porny丨蝌蚪视频| 大胆亚洲人体视频| 成人性生交大片免费看在线播放| 国产精品一区久久久久| 精品制服美女丁香| 丝袜脚交一区二区| 亚洲国产另类av| 亚洲电影一区二区| 亚洲一区在线观看视频| 一区二区在线观看视频| 成人欧美一区二区三区黑人麻豆| 国产欧美一区二区在线| 中文av字幕一区| 国产精品热久久久久夜色精品三区 | 午夜欧美在线一二页| 国产免费久久精品| 精品粉嫩超白一线天av| 日韩免费看的电影| 日韩精品一区二区三区swag| 精品国产91久久久久久久妲己| 日韩一级高清毛片| 精品人在线二区三区| 欧美zozozo| 国产亚洲精品bt天堂精选| 国产日产欧美一区二区视频| 欧美激情自拍偷拍| 国产精品私人影院| 亚洲色大成网站www久久九九| 一区二区三区四区在线| 亚洲成人免费视| 久久国产精品色| 国产成人丝袜美腿| 91网上在线视频| 欧美日韩二区三区| 欧美成人三级电影在线| 久久久久久久久久久99999| 欧美激情一二三区| 亚洲欧美色综合| 亚洲v中文字幕| 麻豆专区一区二区三区四区五区| 国产真实乱对白精彩久久| 成人丝袜视频网| 91国产视频在线观看| 日韩欧美国产午夜精品| 日本一区二区电影| 亚洲一二三四久久| 久久激情五月激情| 99精品一区二区| 欧美精品tushy高清| 国产偷v国产偷v亚洲高清| 亚洲品质自拍视频网站| 日韩中文字幕av电影| 国产曰批免费观看久久久| 99精品视频在线观看| 欧美一区二区三区四区久久| 国产人伦精品一区二区| 亚洲午夜一区二区| 国产美女在线精品| 欧洲国内综合视频| 久久久久国产一区二区三区四区|