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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? c-exp.tab.c

?? 早期freebsd實現(xiàn)
?? C
?? 第 1 頁 / 共 5 頁
字號:
# line 30 "./c-exp.y"#include <stdio.h>#include <string.h>#include "defs.h"#include "symtab.h"#include "gdbtypes.h"#include "frame.h"#include "expression.h"#include "parser-defs.h"#include "value.h"#include "language.h"#include "bfd.h"#include "symfile.h"#include "objfiles.h"/* These MUST be included in any grammar file!!!! Please choose unique names!   Note that this are a combined list of variables that can be produced   by any one of bison, byacc, or yacc. */#define	yymaxdepth c_maxdepth#define	yyparse	c_parse#define	yylex	c_lex#define	yyerror	c_error#define	yylval	c_lval#define	yychar	c_char#define	yydebug	c_debug#define	yypact	c_pact	#define	yyr1	c_r1			#define	yyr2	c_r2			#define	yydef	c_def		#define	yychk	c_chk		#define	yypgo	c_pgo		#define	yyact	c_act		#define	yyexca	c_exca#define yyerrflag c_errflag#define yynerrs	c_nerrs#define	yyps	c_ps#define	yypv	c_pv#define	yys	c_s#define	yy_yys	c_yys#define	yystate	c_state#define	yytmp	c_tmp#define	yyv	c_v#define	yy_yyv	c_yyv#define	yyval	c_val#define	yylloc	c_lloc#define yyss	c_yyss		/* byacc */#define	yyssp	c_yysp		/* byacc */#define	yyvs	c_yyvs		/* byacc */#define	yyvsp	c_yyvsp		/* byacc */intyyparse PARAMS ((void));intyylex PARAMS ((void));voidyyerror PARAMS ((char *));/* #define	YYDEBUG	1 */# line 97 "./c-exp.y"typedef union   {    LONGEST lval;    unsigned LONGEST ulval;    double dval;    struct symbol *sym;    struct type *tval;    struct stoken sval;    struct ttype tsym;    struct symtoken ssym;    int voidval;    struct block *bval;    enum exp_opcode opcode;    struct internalvar *ivar;    struct type **tvec;    int *ivec;  } YYSTYPE;# line 117 "./c-exp.y"/* YYSTYPE gets defined by %union */static intparse_number PARAMS ((char *, int, int, YYSTYPE *));# define INT 257# define CHAR 258# define UINT 259# define FLOAT 260# define STRING 261# define NAME 262# define TYPENAME 263# define NAME_OR_INT 264# define NAME_OR_UINT 265# define STRUCT 266# define CLASS 267# define UNION 268# define ENUM 269# define SIZEOF 270# define UNSIGNED 271# define COLONCOLON 272# define TEMPLATE 273# define ERROR 274# define SIGNED_KEYWORD 275# define LONG 276# define SHORT 277# define INT_KEYWORD 278# define CONST_KEYWORD 279# define VOLATILE_KEYWORD 280# define LAST 281# define REGNAME 282# define VARIABLE 283# define ASSIGN_MODIFY 284# define THIS 285# define ABOVE_COMMA 286# define OROR 287# define ANDAND 288# define EQUAL 289# define NOTEQUAL 290# define LEQ 291# define GEQ 292# define LSH 293# define RSH 294# define UNARY 295# define INCREMENT 296# define DECREMENT 297# define ARROW 298# define BLOCKNAME 299# line 197 "./c-exp.y"/* Ensure that if the generated parser contains any calls to malloc/realloc,   that they get mapped to xmalloc/xrealloc.  We have to do this here   rather than earlier in the file because this is the first point after   the place where the SVR4 yacc includes <malloc.h>, and if we do it   before that, then the remapped declarations in <malloc.h> will collide   with the ones in "defs.h". */#define malloc	xmalloc#define realloc	xrealloc#define yyclearin yychar = -1#define yyerrok yyerrflag = 0extern int yychar;extern int yyerrflag;#ifndef YYMAXDEPTH#define YYMAXDEPTH 150#endifYYSTYPE yylval, yyval;# define YYERRCODE 256# line 946 "./c-exp.y"/* Take care of parsing a number (anything that starts with a digit).   Set yylval and return the token type; update lexptr.   LEN is the number of characters in it.  *//*** Needs some error checking for the float case ***/static intparse_number (p, len, parsed_float, putithere)     register char *p;     register int len;     int parsed_float;     YYSTYPE *putithere;{  register LONGEST n = 0;  register LONGEST prevn = 0;  register int i;  register int c;  register int base = input_radix;  int unsigned_p = 0;  if (parsed_float)    {      /* It's a float since it contains a point or an exponent.  */      putithere->dval = atof (p);      return FLOAT;    }  /* Handle base-switching prefixes 0x, 0t, 0d, 0 */  if (p[0] == '0')    switch (p[1])      {      case 'x':      case 'X':	if (len >= 3)	  {	    p += 2;	    base = 16;	    len -= 2;	  }	break;      case 't':      case 'T':      case 'd':      case 'D':	if (len >= 3)	  {	    p += 2;	    base = 10;	    len -= 2;	  }	break;      default:	base = 8;	break;      }  while (len-- > 0)    {      c = *p++;      if (c >= 'A' && c <= 'Z')	c += 'a' - 'A';      if (c != 'l' && c != 'u')	n *= base;      if (c >= '0' && c <= '9')	n += i = c - '0';      else	{	  if (base > 10 && c >= 'a' && c <= 'f')	    n += i = c - 'a' + 10;	  else if (len == 0 && c == 'l')	    ;	  else if (len == 0 && c == 'u')	    unsigned_p = 1;	  else	    return ERROR;	/* Char not a digit */	}      if (i >= base)	return ERROR;		/* Invalid digit in this base */      /* Portably test for overflow (only works for nonzero values, so make	 a second check for zero).  */      if((prevn >= n) && n != 0)	 unsigned_p=1;		/* Try something unsigned */      /* If range checking enabled, portably test for unsigned overflow.  */      if(RANGE_CHECK && n!=0)      {		 if((unsigned_p && (unsigned)prevn >= (unsigned)n))	    range_error("Overflow on numeric constant.");	       }      prevn=n;    }  if (unsigned_p)    {      putithere->ulval = n;      return UINT;    }  else    {      putithere->lval = n;      return INT;    }}struct token{  char *operator;  int token;  enum exp_opcode opcode;};const static struct token tokentab3[] =  {    {">>=", ASSIGN_MODIFY, BINOP_RSH},    {"<<=", ASSIGN_MODIFY, BINOP_LSH}  };const static struct token tokentab2[] =  {    {"+=", ASSIGN_MODIFY, BINOP_ADD},    {"-=", ASSIGN_MODIFY, BINOP_SUB},    {"*=", ASSIGN_MODIFY, BINOP_MUL},    {"/=", ASSIGN_MODIFY, BINOP_DIV},    {"%=", ASSIGN_MODIFY, BINOP_REM},    {"|=", ASSIGN_MODIFY, BINOP_LOGIOR},    {"&=", ASSIGN_MODIFY, BINOP_LOGAND},    {"^=", ASSIGN_MODIFY, BINOP_LOGXOR},    {"++", INCREMENT, BINOP_END},    {"--", DECREMENT, BINOP_END},    {"->", ARROW, BINOP_END},    {"&&", ANDAND, BINOP_END},    {"||", OROR, BINOP_END},    {"::", COLONCOLON, BINOP_END},    {"<<", LSH, BINOP_END},    {">>", RSH, BINOP_END},    {"==", EQUAL, BINOP_END},    {"!=", NOTEQUAL, BINOP_END},    {"<=", LEQ, BINOP_END},    {">=", GEQ, BINOP_END}  };/* Read one token, getting characters through lexptr.  */intyylex (){  register int c;  register int namelen;  register unsigned i;  register char *tokstart; retry:  tokstart = lexptr;  /* See if it is a special token of length 3.  */  for (i = 0; i < sizeof tokentab3 / sizeof tokentab3[0]; i++)    if (!strncmp (tokstart, tokentab3[i].operator, 3))      {	lexptr += 3;	yylval.opcode = tokentab3[i].opcode;	return tokentab3[i].token;      }  /* See if it is a special token of length 2.  */  for (i = 0; i < sizeof tokentab2 / sizeof tokentab2[0]; i++)    if (!strncmp (tokstart, tokentab2[i].operator, 2))      {	lexptr += 2;	yylval.opcode = tokentab2[i].opcode;	return tokentab2[i].token;      }  switch (c = *tokstart)    {    case 0:      return 0;    case ' ':    case '\t':    case '\n':      lexptr++;      goto retry;    case '\'':      /* We either have a character constant ('0' or '\177' for example)	 or we have a quoted symbol reference ('foo(int,int)' in C++	 for example). */      lexptr++;      c = *lexptr++;      if (c == '\\')	c = parse_escape (&lexptr);      yylval.lval = c;      c = *lexptr++;      if (c != '\'')	{	  namelen = skip_quoted (tokstart) - tokstart;	  if (namelen > 2)	    {	      lexptr = tokstart + namelen;	      namelen -= 2;	      tokstart++;	      goto tryname;	    }	  error ("Invalid character constant.");	}      return CHAR;    case '(':      paren_depth++;      lexptr++;      return c;    case ')':      if (paren_depth == 0)	return 0;      paren_depth--;      lexptr++;      return c;    case ',':      if (comma_terminates && paren_depth == 0)	return 0;      lexptr++;      return c;    case '.':      /* Might be a floating point number.  */      if (lexptr[1] < '0' || lexptr[1] > '9')	goto symbol;		/* Nope, must be a symbol. */      /* FALL THRU into number case.  */    case '0':    case '1':    case '2':    case '3':    case '4':    case '5':    case '6':    case '7':    case '8':    case '9':      {	/* It's a number.  */	int got_dot = 0, got_e = 0, toktype;	register char *p = tokstart;	int hex = input_radix > 10;	if (c == '0' && (p[1] == 'x' || p[1] == 'X'))	  {	    p += 2;	    hex = 1;	  }	else if (c == '0' && (p[1]=='t' || p[1]=='T' || p[1]=='d' || p[1]=='D'))	  {	    p += 2;	    hex = 0;	  }	for (;; ++p)	  {	    if (!hex && !got_e && (*p == 'e' || *p == 'E'))	      got_dot = got_e = 1;	    else if (!hex && !got_dot && *p == '.')	      got_dot = 1;	    else if (got_e && (p[-1] == 'e' || p[-1] == 'E')		     && (*p == '-' || *p == '+'))	      /* This is the sign of the exponent, not the end of the		 number.  */	      continue;	    /* We will take any letters or digits.  parse_number will	       complain if past the radix, or if L or U are not final.  */	    else if ((*p < '0' || *p > '9')		     && ((*p < 'a' || *p > 'z')				  && (*p < 'A' || *p > 'Z')))	      break;	  }	toktype = parse_number (tokstart, p - tokstart, got_dot|got_e, &yylval);        if (toktype == ERROR)	  {	    char *err_copy = (char *) alloca (p - tokstart + 1);	    memcpy (err_copy, tokstart, p - tokstart);	    err_copy[p - tokstart] = 0;	    error ("Invalid number \"%s\".", err_copy);	  }	lexptr = p;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久激情五月激情| 韩国三级在线一区| 国产日韩在线不卡| 亚洲色图另类专区| 国产精品一级二级三级| 欧美午夜电影网| 2024国产精品| 五月婷婷综合在线| 99久久99久久精品免费观看| 精品久久久久久久久久久久久久久| 亚洲欧美色一区| 成人免费毛片片v| 26uuu欧美日本| 国产成人高清视频| 2023国产精品| 国产·精品毛片| 精品国产第一区二区三区观看体验| 一区二区三区免费观看| 99久久精品免费看| 日韩精品一二三区| 欧美日韩国产一级二级| 一级做a爱片久久| 欧美一区二区三区系列电影| 亚洲一卡二卡三卡四卡五卡| 91美女片黄在线观看| 国产精品无码永久免费888| 国产剧情在线观看一区二区| 国产精品电影院| 99久免费精品视频在线观看| 国产精品热久久久久夜色精品三区| 91婷婷韩国欧美一区二区| 三级精品在线观看| 久久久91精品国产一区二区精品| 国产乱理伦片在线观看夜一区| 国产精品伦理在线| 7777精品伊人久久久大香线蕉完整版| 亚洲最色的网站| 久久久久久久一区| 99久久伊人久久99| 免费成人在线观看| 2024国产精品视频| 欧美视频在线不卡| 成人一二三区视频| 麻豆国产精品一区二区三区| 精品国产网站在线观看| 一本大道久久a久久精二百| 一区二区三区日韩在线观看| 日韩美女视频在线| 国产精品18久久久久久久久| 亚洲高清免费观看高清完整版在线观看| 欧美日韩黄视频| 福利电影一区二区三区| 午夜精品久久久久久久久久久 | 日本韩国欧美在线| 国产精品久久久久7777按摩| 欧美一区二区三区在线观看| 色999日韩国产欧美一区二区| 久久99久国产精品黄毛片色诱| 国产人妖乱国产精品人妖| 67194成人在线观看| 欧美在线观看视频一区二区| 日本少妇一区二区| 国产欧美一区二区三区在线看蜜臀 | 国产精品美女久久久久aⅴ国产馆| 欧美理论片在线| 久久av中文字幕片| 亚洲成人第一页| 久久综合久久综合九色| 欧美日韩一卡二卡三卡| 蜜桃精品在线观看| 亚洲午夜久久久久中文字幕久| 日韩毛片一二三区| 日韩一区日韩二区| 7777精品久久久大香线蕉| 91福利视频网站| 色综合色狠狠综合色| 97se亚洲国产综合自在线不卡 | 久久不见久久见免费视频1| 石原莉奈在线亚洲二区| 性做久久久久久久久| 亚洲大片免费看| 午夜欧美视频在线观看| 天天影视涩香欲综合网| 日韩av电影一区| 看电视剧不卡顿的网站| 国精产品一区一区三区mba桃花| 国内国产精品久久| 国产999精品久久久久久| www.色精品| 91老师片黄在线观看| 欧美三日本三级三级在线播放| 精品视频在线免费观看| 日韩一级二级三级精品视频| 国产91丝袜在线播放0| 国产精品一区专区| 夫妻av一区二区| 色狠狠色狠狠综合| 欧美精品第1页| 久久婷婷国产综合国色天香| 中文av字幕一区| 亚洲综合精品自拍| 老司机免费视频一区二区| 国产裸体歌舞团一区二区| 日本成人在线一区| 精品一区二区免费看| 91久久精品一区二区二区| 色综合天天性综合| 国产一区二区三区四| 日韩av电影免费观看高清完整版 | 日韩中文字幕不卡| 韩国中文字幕2020精品| 91亚洲国产成人精品一区二区三| 欧美图区在线视频| 亚洲精品在线观看视频| 中文字幕日本不卡| 日韩精品电影一区亚洲| 国产精品18久久久久久久久| 在线观看亚洲一区| 精品国产污污免费网站入口 | 99久久精品国产网站| 91久久一区二区| 国产日韩欧美精品一区| 亚洲国产一区二区a毛片| 国产一区二区不卡老阿姨| 91精品办公室少妇高潮对白| 欧美mv日韩mv| 亚洲成在人线在线播放| 成人精品一区二区三区四区| 欧美日本一区二区在线观看| 久久久不卡网国产精品一区| 亚洲福利视频一区二区| 91在线小视频| 久久这里都是精品| 水野朝阳av一区二区三区| 成人app在线| 91老师国产黑色丝袜在线| 欧美成人猛片aaaaaaa| 亚洲一区影音先锋| 高清beeg欧美| 久久久精品tv| 免费高清成人在线| 欧美日韩精品专区| 一区二区三区在线播放| 国产福利视频一区二区三区| 欧美一区欧美二区| 亚洲福利一区二区三区| 91在线观看高清| 中文文精品字幕一区二区| 亚洲精品视频免费观看| 天天色天天爱天天射综合| 91在线国产观看| 国产日韩欧美高清| 国产一区二区主播在线| 日韩亚洲欧美在线观看| 亚洲一二三四区| 91在线看国产| 亚洲私人影院在线观看| 波多野结衣中文字幕一区| 欧美精品一区二区三区四区| 午夜久久福利影院| 欧美猛男超大videosgay| 亚洲综合免费观看高清完整版在线 | 韩日欧美一区二区三区| 精品欧美一区二区在线观看| 免费成人结看片| 日韩欧美国产精品| 久久精品国产成人一区二区三区 | 一区二区三区四区国产精品| 一本久久精品一区二区| 国产精品成人网| 97久久人人超碰| 亚洲视频一二区| 色综合久久综合网97色综合| 一二三区精品福利视频| 欧美丝袜自拍制服另类| 五月天中文字幕一区二区| 91精品午夜视频| 激情亚洲综合在线| 国产欧美精品国产国产专区| 国产成人av电影在线| 中文字幕中文乱码欧美一区二区| av男人天堂一区| 一区二区三区四区亚洲| 欧美久久一二区| 免费成人av资源网| 国产亚洲欧美激情| 97久久超碰国产精品| 有码一区二区三区| 欧美四级电影在线观看| 蜜臀久久99精品久久久画质超高清| 欧美变态凌虐bdsm| 99这里都是精品| 亚洲自拍偷拍网站| 日韩免费观看高清完整版在线观看| 国产一区亚洲一区| 亚洲视频香蕉人妖| 日韩欧美久久一区| 91麻豆自制传媒国产之光| 日韩成人免费在线| 亚洲国产成人自拍|