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

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

?? getsym.c

?? 編譯原理這門課確實不是很容易
?? C
?? 第 1 頁 / 共 2 頁
字號:
                rval = ival;
        if(**ptr == '-') {
                exmul = 0.1;
                (*ptr)++;
                }
        else {
                exmul = 10.0;
								if (**ptr == '+')
									(*ptr)++;
				}
        getbase(10,ptr);
        if(ival > 255)
                generror(ERR_FPCON,0,0);
        else
                while(ival--)
                        expo *= exmul;
        rval *= expo;
				lastst = rconst;
}
 
/*
 *      getnum - get a number from input.
 *
 *      getnum handles all of the numeric input. it accepts
 *      decimal, octal, hexidecimal, and floating point numbers.
 */
void getnum(void)
{
	int isfloat=FALSE;
	char buf[50],*ptr = buf;
	while (isxdigit(lastch) || lastch == 'x' || lastch == 'X') {
		*ptr++ = lastch;
		getch();
	}
	if (lastch == '.') {
		isfloat = TRUE;
		*ptr++=lastch;
		getch();
		while (isdigit(lastch)) {
			*ptr++ = lastch;
			getch();
		}
	}
	if (lastch == 'e' || lastch == 'E') {
		isfloat = TRUE;
		*ptr++ = lastch;
		getch();
		if (lastch == '+' || lastch == '-') {
			*ptr++=lastch;
			getch();
		}
		while (isdigit(lastch)) {
			*ptr++ = lastch;
			getch();
		}
	}
	if (lastch == 'F') {
		isfloat = TRUE;
	}
	*ptr = 0;
	ptr = buf;
	if (!isfloat) {
		if (*ptr == '0') {
			ptr++;
      if(*ptr == 'x' || *ptr == 'X') {
      	ptr++;
      	getbase(16,&ptr);
    	}
    	else getbase(8,&ptr);
   	}
		else
			getbase(10,&ptr);
		if (lastch == 'U') {
			lastst = iuconst;
			getch();
			if (lastch == 'L') {
				lastst = luconst;
				getch();
			}
		}
		else if (lastch == 'L') {
			lastst = iconst;
			getch();
			if (lastch == 'U') {
				lastst = luconst;
				getch();
			}
		}
	}
  else    {
                getbase(10,&ptr);
	                if(*ptr == '.') {
											ptr++;
                        rval = ival;    /* float the integer part */
                        getfrac(&ptr);      /* add the fractional part */
                        lastst = rconst;
  		                  }
      	          if(*ptr == 'e' || *ptr == 'E') {
                        ptr++;
                        getexp(&ptr);       /* get the exponent */
                        }
									if (lastch == 'F') {
											if (lastst != rconst) {
												rval = ival;
											}
											lastst = fconst;
											getch();
									}
									else if (lastch == 'L') {
											if (lastst != rconst) {
												rval = ival;
											}
											lastst = lrconst;
											getch();
									}
								}
}
 
int getsym2(void) 
/*
 * translate character sequences to appropriate token names
 */
{       register int    i, j;
				int size;
swlp:
						 switch(lastch) {
                case '+':
                        getch();
                        if(lastch == '+') {
                                getch();
                                lastst = autoinc;
                                }
                        else if(lastch == '=') {
                                getch();
                                lastst = asplus;
                                }
                        else lastst = plus;
                        break;
                case '-':
                        getch();
                        if(lastch == '-') {
                                getch();
                                lastst = autodec;
                                }
                        else if(lastch == '=') {
                                getch();
                                lastst = asminus;
                                }
                        else if(lastch == '>') {
                                getch();
#ifdef CPLUSPLUS
																if (prm_cplusplus && lastch == '*') {
																	getch();
																	lastst = pointstar;
																}
																else
#endif
                                	lastst = pointsto;
                                }
                        else lastst = minus;
                        break;
                case '*':
                        getch();
                        if(lastch == '=') {
                                getch();
                                lastst = astimes;
                                }
                        else lastst = star;
                        break;
                case '/':
                        getch();
                        if(lastch == '=') {
                                getch();
                                lastst = asdivide;
                                }
                        else lastst = divide;
                        break;
                case '^':
                        getch();
                        if(lastch == '=') {
                                getch();
                                lastst = asxor;
                                }
                        else lastst = uparrow;
                        break;
                case ';':
                        getch();
                        lastst = semicolon;
                        break;
                case ':':
                        getch();
#ifdef CPLUSPLUS
												if (prm_cplusplus && lastch == ':') {
													lastst = classsel;
													getch();
												}
												else
#endif
                        	lastst = colon;
                        break;
                case '=':
                        getch();
                        if(lastch == '=') {
                                getch();
                                lastst = eq;
                                }
                        else lastst = assign;
                        break;
                case '>':
                        getch();
                        if(lastch == '=') {
                                getch();
                                lastst = geq;
                                }
                        else if(lastch == '>') {
                                getch();
                                if(lastch == '=') {
                                        getch();
                                        lastst = asrshift;
                                        }
                                else lastst = rshift;
                                }
                        else lastst = gt;
                        break;
                case '<':
                        getch();
												if (incconst) {
                      	  for(i = 0;i < MAX_STRLEN;++i) {
                                if(lastch == '>')
                                        break;
                                if((j = getsch()) == -1)
                                        break;
                                else
                                        laststr[i] = j;
	                              }
  	                      laststr[i] = 0;
    	                    lastst = sconst;
      	                  if(lastch != '>')
        	                        generror(ERR_NEEDCHAR,'>',0);
          	              else
            	                    getch();
												} else
                        	if(lastch == '=') {
                                getch();
                                lastst = leq;
                                }
                        	else if(lastch == '<') {
                                getch();
                                if(lastch == '=') {
                                        getch();
                                        lastst = aslshift;
                                        }
                                else lastst = lshift;
                                }
                        	else lastst = lt;
                        break;
                case '\'':
                        getch();
                        ival = getsch();        /* get a string char */
                        if(lastch != '\'')
                                generror(ERR_NEEDCHAR,'\'',0);
                        else
                                getch();
                        lastst = cconst;
                        break;
								case 0x2d4:
												getch();
												i=0;
												while (lastch != '\"' && lastch)
													i=installphichar(lastch,laststr,i);
												if ((lastch & 0x7f) != '\"')
        	                        generror(ERR_NEEDCHAR,'\"',0);
          	              else
            	                    getch();
												size = strlen(laststr);
												lastst = sconst;
												break;
                case '\"':
					 							size = 0;
												while (lastch == '\"') {
                        	getch();
                        	for(i = size;i < MAX_STRLEN;++i) {
                                if(lastch == '\"')
                                        break;
                                if((j = getsch()) == -1)
                                        break;
                                else
                                        laststr[i] = j;
                                }
	                        laststr[i] = 0;
													size = i;
    	                    lastst = sconst;
      	                  if(lastch != '\"')
        	                        generror(ERR_NEEDCHAR,'\"',0);
          	              else
            	                    getch();
												}
                        break;
                case '!':
                        getch();
                        if(lastch == '=') {
                                getch();
                                lastst = neq;
                                }
                        else lastst = not;
                        break;
                case '%':
                        getch();
                        if(lastch == '=') {
                                getch();
                                lastst = asmodop;
                                }
                        else lastst = modop;
                        break;
                case '~':
                        getch();
                        lastst = compl;
                        break;
                case '.':
												if (isdigit(*lptr))
													getnum();
												else {	
	                        getch();
#ifdef CPLUSPLUS
													if (prm_cplusplus && lastch == '*') {
														getch();
														lastst = dotstar;
													}
													else 
#endif
													  if (lastch == '.') {
													  	getch();
															if (lastch == '.') {
																getch();
																lastst = ellipse;
																break;
															}
															else {
          	        	      	  generror(ERR_ILLCHAR,lastch,0);
															}
														}
                        	lastst = dot;
												}
                        break;
                case ',':
                        getch();
                        lastst = comma;
                        break;
                case '&':
                        getch();
                        if( lastch == '&') {
                                lastst = land;
                                getch();
                                }
                        else if( lastch == '=') {
                                lastst = asand;
                                getch();
                                }
                        else
                                lastst = and;
                        break;
                case '|':
                        getch();
                        if(lastch == '|') {
                                lastst = lor;
                                getch();
                                }
                        else if( lastch == '=') {
                                lastst = asor;
                                getch();
                                }
                        else
                                lastst = or;
                        break;
                case '(':
                        getch();
                        lastst = openpa;
                        break;
                case ')':
                        getch();
                        lastst = closepa;
                        break;
                case '[':
                        getch();
                        lastst = openbr;
                        break;
                case ']':
                        getch();
                        lastst = closebr;
                        break;
                case '{':
                        getch();
                        lastst = begin;
                        break;
                case '}':
                        getch();
                        lastst = end;
                        break;
                case '?':
                        getch();
                        lastst = hook;
                        break;
                default:
												if (iscommentchar(lastch)) {
													do {
														getch();
													} while (!iscommentchar(lastch) && lastch != '\n');
												}
												else
                        	generror(ERR_ILLCHAR,lastch,0);
                        getch();
												return 1;
                }
	return 0;
}
/*
 *      getsym - get next symbol from input stream.
 *
 *      getsym is the basic lexical analyzer.  It builds
 *      basic tokens out of the characters on the input
 *      stream and sets the following global variables:
 *
 *      lastch:         A look behind buffer.
 *      lastst:         type of last symbol read.
 *      laststr:        last string constant read.
 *      lastid:         last identifier read.
 *      ival:           last integer constant read.
 *      rval:           last real constant read.
 *
 *      getsym should be called for all your input needs...
 */
void     getsym(void)
{

				if (backupchar != -1) {
					lastst = backupchar;
					backupchar = -1;
					return;
				}
				if (cantnewline && !*lptr) {
					lastst = eol;
					return;
				}
        while(iswhitespacechar(lastch)) {
          getch();
					if (cantnewline && !*lptr) {
						lastst = eol;
						return;
					}
				}
        if( lastch == -1)
                lastst = eof;
        else if(isdigit(lastch))
                getnum();
        else if(isstartchar(lastch)) {
                getid();
                searchkw();
				}
        else getsym2();
}
/*
 * when we need specific punctuation, call one of these routines
 */
int needpunc(enum e_sym p, int *skimlist)
{       if( lastst == p) {
                getsym();
								return(TRUE);
				}
        else
                expecttoken(p,skimlist);
	return(FALSE);
}
int needpuncexp(enum e_sym p, int *skimlist)
{       if( lastst == p) {
                getsym();
								return(TRUE);
				}
        else
                expecttokenexp(p,skimlist);
	return(FALSE);
}
/*
 * having to back up a character is rare, but sometimes...
 */
void backup(int st)
{
  backupchar = lastst;
  lastst = st;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费不卡电影| 中文字幕av资源一区| 激情综合五月婷婷| 久久这里只有精品视频网| 国产老女人精品毛片久久| 精品国产乱码久久久久久图片 | 高清久久久久久| 中文一区二区完整视频在线观看| 成人高清在线视频| 玉足女爽爽91| 欧美日韩一区中文字幕| 久久99蜜桃精品| 久久久国产精品午夜一区ai换脸| 粉嫩av一区二区三区在线播放| 1区2区3区精品视频| 欧美视频自拍偷拍| 久久国产精品99久久人人澡| 久久夜色精品一区| 94-欧美-setu| 日韩精品成人一区二区在线| 久久久久久久精| 91丝袜美腿高跟国产极品老师 | 国产成人99久久亚洲综合精品| 国产精品高清亚洲| 欧美日韩午夜在线| 国产综合色精品一区二区三区| 国产精品成人一区二区艾草| 精品视频在线免费看| 久久99精品久久只有精品| 中文字幕亚洲成人| 欧美性欧美巨大黑白大战| 久久精品国产亚洲5555| 国产精品福利电影一区二区三区四区| 欧美日韩国产精选| 国产精品1区二区.| 亚洲综合色区另类av| 精品国产乱码91久久久久久网站| 99久久精品国产麻豆演员表| 秋霞电影一区二区| 亚洲少妇屁股交4| 日韩天堂在线观看| 99视频一区二区| 秋霞午夜av一区二区三区| 国产精品午夜在线观看| 在线成人高清不卡| 成人亚洲一区二区一| 欧美aⅴ一区二区三区视频| 国产精品久久久久久久久快鸭 | 欧美一区二区三区啪啪| 成人免费毛片嘿嘿连载视频| 日韩高清不卡一区二区| 国产精品色哟哟| 91精品国产91热久久久做人人 | 成人av资源在线观看| 婷婷综合久久一区二区三区| 国产精品嫩草99a| 制服丝袜成人动漫| 91网站在线播放| 狠狠色丁香久久婷婷综合_中| 亚洲综合在线观看视频| 久久精品日产第一区二区三区高清版| 欧美日韩久久久| 97se亚洲国产综合自在线 | 欧美a一区二区| 亚洲免费观看在线观看| 国产三级一区二区| 欧美一级爆毛片| 欧美在线综合视频| 成人av资源站| 国产精品自拍毛片| 奇米影视一区二区三区| 亚洲午夜激情av| 亚洲欧洲日韩女同| 国产三级精品三级在线专区| 欧美变态tickling挠脚心| 欧美午夜一区二区三区免费大片| 波多野洁衣一区| 国产精品影音先锋| 久久99热国产| 蜜桃久久av一区| 亚洲成人自拍网| 亚洲精品国产一区二区精华液| 国产精品免费人成网站| 日本一区二区在线不卡| 2019国产精品| 日韩欧美在线一区二区三区| 欧美日韩一级二级三级| 色美美综合视频| 99国产精品一区| 国产成a人亚洲精品| 国产美女久久久久| 经典三级视频一区| 乱一区二区av| 麻豆freexxxx性91精品| 日韩专区在线视频| 五月天久久比比资源色| 亚洲一区二区欧美日韩 | 亚洲色图一区二区| 成人免费在线播放视频| 国产精品美女视频| 国产精品高潮呻吟久久| 国产精品区一区二区三| 国产精品美女久久福利网站| 国产精品私人影院| 国产精品传媒入口麻豆| 国产婷婷色一区二区三区四区| 久久婷婷成人综合色| 国产亚洲va综合人人澡精品| 久久蜜桃av一区精品变态类天堂| 精品久久久久久综合日本欧美| 日韩欧美资源站| 日韩一二三区不卡| 欧美成人猛片aaaaaaa| 精品国产自在久精品国产| 欧美大片在线观看一区二区| 日韩欧美国产精品一区| 欧美第一区第二区| 国产亚洲欧洲一区高清在线观看| 久久一区二区视频| 国产亚洲精久久久久久| 国产精品久久久久久福利一牛影视| 国产精品国产三级国产有无不卡 | 欧美日韩国产综合视频在线观看| 欧美视频在线播放| 欧美日韩国产中文| 5858s免费视频成人| 91精品免费在线观看| 日韩美女在线视频| 2023国产一二三区日本精品2022| 国产日韩精品视频一区| 国产精品久久久一区麻豆最新章节| 亚洲私人影院在线观看| 亚洲成av人片在线观看| 秋霞av亚洲一区二区三| 国产精品主播直播| 成人黄色电影在线| 在线免费观看成人短视频| 在线播放日韩导航| 欧美精品一区二区久久婷婷 | 久久夜色精品一区| 国产精品色噜噜| 亚洲一区二区三区视频在线播放| 日韩经典一区二区| 久久福利视频一区二区| 成人午夜免费电影| 欧美亚一区二区| 日韩午夜av电影| 国产精品视频第一区| 亚洲综合丝袜美腿| 国模娜娜一区二区三区| 91在线丨porny丨国产| 欧美高清dvd| 日本一区二区电影| 亚洲国产欧美在线| 黄色日韩三级电影| 91香蕉视频在线| 91精品国产免费| 中文字幕中文字幕一区| 日韩和欧美一区二区| 国产不卡免费视频| 欧美视频一区二| 视频在线观看91| 成人教育av在线| 欧美电影在线免费观看| 国产精品全国免费观看高清| 无吗不卡中文字幕| 成人午夜看片网址| 欧美日本在线看| 国产精品网曝门| 日本欧洲一区二区| 99免费精品在线观看| 日韩一区二区在线看| 国产精品国产三级国产普通话99 | 国模少妇一区二区三区| 在线观看亚洲专区| 久久久www免费人成精品| 亚洲电影激情视频网站| 成人综合婷婷国产精品久久| 6080yy午夜一二三区久久| 最新国产の精品合集bt伙计| 看电视剧不卡顿的网站| 在线欧美日韩精品| 欧美国产一区在线| 蜜臀99久久精品久久久久久软件| 91麻豆成人久久精品二区三区| 精品va天堂亚洲国产| 亚洲一区二区三区四区中文字幕| 国产91在线观看丝袜| 91精品国产综合久久精品性色| 亚洲视频小说图片| 国产精品一二三| 91精品福利在线一区二区三区| 最新不卡av在线| 高清不卡在线观看| 欧美videos中文字幕| 亚洲r级在线视频| 91在线视频在线| 国产精品网曝门| 国产精品1区二区.| 精品国产一区二区三区av性色|