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

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

?? scanner.cpp

?? 編譯原理學習使用的代碼 內容有從詞法分析到中間代碼生成的代碼 并且含有注釋
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

			      /* 當前字符c為"=",當前識別單詞返回值currentToken設置為等號單詞EQ */
                   case '=':
                   currentToken.Lex = EQ;
                   break;

			      /* 當前字符c為"<",當前識別單詞返回值currentToken設置為小于單詞LT */
                   case '<':
                   currentToken.Lex = LT;
                   break;

			      /* 當前字符c為"+",當前識別單詞返回值currentToken設置為加號單詞PLUS */
                   case '+':
                   currentToken.Lex = PLUS;
                   break;

			      /* 當前字符c為"-",當前識別單詞返回值currentToken設置為減號單詞MINUS */
                   case '-':
                   currentToken.Lex = MINUS;
                   break;

		       	 /* 當前字符c為"*",當前識別單詞返回值currentToken設置為乘號單詞TIMES */
                   case '*':
                   currentToken.Lex = TIMES;
                   break;
   
		     	 /* 當前字符c為"/",當前識別單詞返回值currentToken設置為除號單詞OVER */
                   case '/':
                   currentToken.Lex = OVER;
                   break;
  
			     /* 當前字符c為"(",當前識別單詞返回值currentToken設置為左括號單詞LPAREN */
                   case '(':
                   currentToken.Lex = LPAREN;
                   break;

			     /* 當前字符c為")",當前識別單詞返回值currentToken設置為右括號單詞RPAREN */
                   case ')':
                   currentToken.Lex = RPAREN;
                   break;

			    /* 當前字符c為";",當前識別單詞返回值currentToken設置為分號單詞SEMI */
                   case ';':
                   currentToken.Lex = SEMI;
                   break;
   	    	    /* 當前字符c為",",當前識別單詞返回值currentToken設置為逗號單詞COMMA */
 			       case ',':
			       currentToken.Lex = COMMA;
                   break;     		 
		        /* 當前字符c為"[",當前識別單詞返回值currentToken設置為左中括號單詞LMIDPAREN */
		           case '[':
			       currentToken.Lex = LMIDPAREN;
			       break;
    		 
			    /* 當前字符c為"]",當前識別單詞返回值currentToken設置為右中括號單詞RMIDPAREN */
			       case ']':
			       currentToken.Lex = RMIDPAREN;
			       break;
    
			    /* 當前字符c為其它字符,當前識別單詞返回值currentToken設置為錯誤單詞ERROR */
                   default:
                   currentToken.Lex = ERROR;
				   Error = TRUE;
                   break;
           }
         }
         break;						
	   /********** 當前狀態為開始狀態START的處理結束 **********/

	   /* 當前DFA狀態state為注釋狀態INCOMMENT,確定性有限自動機DFA處于注釋位置 */
       case INCOMMENT:

		 /* 當前字符存儲狀態save設置為FALSE,注釋中內容不生成單詞,無需存儲 */
         save = FALSE;				

		 /* 當前字符c為EOF,當前DFA狀態state設置為完成狀態DONE,當前單詞識別結束 *
		  * 當前識別單詞返回值currentToken設置為文件結束單詞ENDFILE            */
         if (c == EOF)			
         { state = DONE;
           currentToken.Lex = ENDFILE;

         }

		 /* 當前字符c為"}",注釋結束.當前DFA狀態state設置為開始狀態START */
         else if (c == '}') state = START;
         break;

	   /* 當前DFA狀態state為賦值狀態INASSIGN,確定性有限自動機DFA處于賦值單詞位置 */
       case INASSIGN:				

		 /* 當前DFA狀態state設置為完成狀態DONE,賦值單詞結束 */
         state = DONE;				

		 /* 當前字符c為"=",當前識別單詞返回值currentToken設置為賦值單詞ASSIGN */
		 if (c == '=')
           currentToken.Lex = ASSIGN;

		 /* 當前字符c為其它字符,即":"后不是"=",在輸入行緩沖區中回退一個字符       *
		  * 字符存儲狀態save設置為FALSE,當前識別單詞返回值currentToken設置為ERROR */
         else
         { 
           ungetNextChar();
           save = FALSE;
           currentToken.Lex = ERROR;
		   Error = TRUE;
         }
         break;
        
	   case INRANGE:				

		 /* 當前DFA狀態state設置為完成狀態DONE,賦值單詞結束 */
         state = DONE;				

		 /* 當前字符c為".",當前識別單詞返回值currentToken設置為下標界UNDERANGE */
		 if (c == '.')
           currentToken.Lex = UNDERANGE;

		 /* 當前字符c為其它字符,即"."后不是".",在輸入行緩沖區中回退一個字符       *
		  * 字符存儲狀態save設置為FALSE,當前識別單詞返回值currentToken設置為ERROR */
         else
         { 
           ungetNextChar();
           save = FALSE;
           currentToken.Lex = DOT;
         }
         break;
 
	   /* 當前DFA狀態state為數字狀態INNUM,確定性有限自動機處于數字單詞位置 */
    case INNUM:					

		 /* 當前字符c不是數字,則在輸入行緩沖區源中回退一個字符					*
		  * 字符存儲標志設置為FALSE,當前DFA狀態state設置為DONE,數字單詞識別完成 *
		  * 當前識別單詞返回值currentToken設置為數字單詞NUM                     */
         if (!isdigit(c))
         { 
           ungetNextChar();
           save = FALSE;
           state = DONE;
           currentToken.Lex = INTC;
         }
         break;
    	/*當前DFA狀態state為字符標志狀態INCHAR,確定有限自動機處于字符標志狀態*/
    case INCHAR:					

         if (isalnum(c))
        
		 { int c1=getNextChar();
            if (c1 =='\'')
			{ save = TRUE;
			  state = DONE;
			  currentToken.Lex = CHARC;
			}
		    else 
			{	ungetNextChar();
                ungetNextChar();
                state = DONE;
                currentToken.Lex = ERROR;
				Error = TRUE;
			}
		 }
		 else
		 {      ungetNextChar();
                state = DONE;
                currentToken.Lex = ERROR;
				Error = TRUE;
		 }
		 break;
   /* 當前DFA狀態state為標識符狀態INID,確定性有限自動機DFA處于標識符單詞位置 */
       case INID:					

		 /* 當前字符c不是字母,則在輸入行緩沖區源中回退一個字符		 			  *
		  * 字符存儲標志設置為FALSE,當前DFA狀態state設置為DONE,標識符單詞識別完成 *
		  * 當前識別單詞返回值currentToken設置為標識符單詞ID                      */
         if (!isalnum(c))
         { 
           ungetNextChar();
           save = FALSE;
           state = DONE;
           currentToken.Lex = ID;
         }
         break;

	   /* 當前DFA狀態state為完成狀態DONE,確定性有限自動機DFA處于單詞結束位置 */
       case DONE:	break;	

	   /* 當前DFA狀態state為其它狀態,此種情況不應發生 */
       default: 

		 /* 將詞法掃描器產生錯誤的狀態state寫入列表文件listing	*
		  * 當前DFA狀態state設置為完成狀態DONE					*
		  * 當前識別單詞返回值currentToken設置為錯誤單詞ERROR	*/
         fprintf(listing,"Scanner Bug: state= %d\n",state);
		 Error = TRUE;
         state = DONE;
         currentToken.Lex = ERROR;
         break;

     }
	 /*************** 分類判斷處理結束 *******************/

	 /* 當前字符存儲狀態save為TRUE,且當前正識別單詞已經識別部分未超過單詞最大長度 *
	  * 將當前字符c寫入當前正識別單詞詞元存儲區tokenString						  */
     if ((save) && (tokenStringIndex <= MAXTOKENLEN))
       tokenString[tokenStringIndex++] = (char) c;

	 if (state == DONE)
     {
	   /* 當前DFA狀態state為完成狀態DONE,單詞識別完成   *
	    * 當前識別單詞詞元存儲區tokenString加上結束標志 */
	   tokenString[tokenStringIndex] = '\0';

	   /* 當前單詞currentToken為標識符單詞類型,查看其是否為保留字單詞 */
       if (currentToken.Lex == ID)
	   { 
		   currentToken.Lex = reservedLookup(tokenString);
		   if (currentToken.Lex != ID)
			 strcpy(tokenString,tokenString);
       }
     }
   }
   /**************** 循環處理結束 ********************/
   /*將行號信息存入Token*/
   currentToken.lineshow = lineno;
   /*將單詞的語義信息存入Token*/
   strcpy(currentToken.Sem , tokenString); 

  /*將已處理完的當前Token存入鏈表的Token部分*/
    ((*currentNode).Token).lineshow=currentToken.lineshow;
   	((*currentNode).Token).Lex=currentToken.Lex;
	strcpy(((*currentNode).Token).Sem,currentToken.Sem);
 
     Tokennum++;   /*Token總數目加1*/
  
     /*若不是第一個結點,則將當前結點連入鏈表*/ 
	 if (preNode!=currentNode)
	    { 
		   preNode->nextToken=currentNode;
           preNode=currentNode;
	    }   
   /*申請一個新的結點,以記錄下一個Token的信息*/
	 currentNode=(ChainNodeType *)malloc(CHAINNODELEN);
   /*初始化這個結點中,指向下一個結點的指針為空*/ 
	 currentNode->nextToken=NULL;
 }
/* 直到處理完表示文件結束的Token:ENDFILE,說明處理完所有的Token*/
/* 并存入了鏈表中,循環結束*/
while ((currentToken.Lex)!=ENDFILE);
 /*將由chainHead指向的Token鏈表存入文件"Tokenlist"中*/
 ChainToFile(chainHead);

 /*釋放鏈表*/
while (chainHead!=NULL)
 { 
	tempNode=chainHead->nextToken;
    free(chainHead);  
    chainHead=tempNode; 
 }

}
/* 詞法分析函數結束 */









?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美精品三级| 亚洲一二三四在线观看| 中文字幕在线播放不卡一区| 中文字幕日韩一区| 国产一区二区三区| 欧美绝品在线观看成人午夜影视| 日韩片之四级片| 中文字幕日韩精品一区| 亚洲欧洲成人精品av97| 秋霞电影网一区二区| 91日韩在线专区| 日韩精品资源二区在线| 日韩视频在线你懂得| 欧美大片在线观看| 久久久久9999亚洲精品| 青青草国产精品亚洲专区无| 国产一区二区三区在线观看免费| 色偷偷88欧美精品久久久| 欧美成人一区二区三区在线观看| 中文字幕在线一区| 韩日精品视频一区| 欧美日韩性生活| 亚洲天堂网中文字| 欧美日韩午夜精品| 国产欧美日本一区视频| 婷婷国产v国产偷v亚洲高清| 欧洲激情一区二区| 亚洲蜜臀av乱码久久精品| 国产不卡高清在线观看视频| 久久综合国产精品| 国产精品1区2区| 亚洲精品中文在线| 捆绑紧缚一区二区三区视频| 欧美不卡视频一区| av亚洲产国偷v产偷v自拍| 亚洲狠狠爱一区二区三区| 久久久噜噜噜久久中文字幕色伊伊 | 欧美一级欧美三级在线观看| 中文字幕一区二区三区四区| 国产69精品久久久久777| 国产欧美一区二区精品久导航 | 欧美α欧美αv大片| 久久久久久久久一| 国产自产v一区二区三区c| 日韩精品影音先锋| 国产美女娇喘av呻吟久久| 久久久99精品久久| 91社区在线播放| 视频一区视频二区在线观看| 精品国产免费久久| av电影在线观看完整版一区二区| 亚洲色图欧洲色图婷婷| 欧美日韩五月天| 99这里只有精品| 亚洲免费观看高清完整版在线观看 | 中文字幕+乱码+中文字幕一区| 97久久精品人人爽人人爽蜜臀| 婷婷久久综合九色综合绿巨人| 精品久久久久久亚洲综合网 | 国产精品家庭影院| 91精品福利视频| 黑人巨大精品欧美黑白配亚洲| 国产精品久久久久久久久久久免费看 | 欧美视频一区二区三区四区| 国产另类ts人妖一区二区| 一区二区在线观看不卡| 欧美激情在线一区二区三区| 欧美一区二区观看视频| 在线观看国产精品网站| 麻豆成人久久精品二区三区红| **网站欧美大片在线观看| 精品精品国产高清a毛片牛牛| 国产最新精品精品你懂的| 国产日韩欧美亚洲| 色哟哟国产精品| 久久精品国产秦先生| 精品成人一区二区三区| 成人av电影在线观看| 中文字幕在线观看一区| 蜜桃91丨九色丨蝌蚪91桃色| 日韩欧美久久久| 国模无码大尺度一区二区三区| 精品国产免费一区二区三区四区| 男男gaygay亚洲| 日韩欧美一区电影| 综合久久久久久久| 国产亚洲一区字幕| 一本久久a久久免费精品不卡| 亚洲综合在线免费观看| 欧美色图片你懂的| 在线亚洲+欧美+日本专区| 国产精品资源网| 日韩精品91亚洲二区在线观看| 最好看的中文字幕久久| 国产午夜久久久久| 国产亚洲短视频| 欧美三级视频在线播放| 色婷婷精品久久二区二区蜜臀av| 高清不卡在线观看av| 成人深夜在线观看| 国产裸体歌舞团一区二区| 波多野结衣中文字幕一区| 色女孩综合影院| 99久久综合精品| 国产成人在线看| 91小视频免费观看| 欧洲激情一区二区| 欧美放荡的少妇| 国产精品短视频| 成人性生交大片免费看在线播放 | 亚洲一区二区三区视频在线 | 日韩一区二区视频在线观看| 精品国产一区二区三区四区四 | 亚洲一区二区四区蜜桃| 精品视频在线免费看| 黄色资源网久久资源365| 国产在线播精品第三| 91美女精品福利| 337p日本欧洲亚洲大胆精品 | 中文字幕免费在线观看视频一区| 亚洲高清免费视频| 久久草av在线| 99麻豆久久久国产精品免费| 精品美女在线观看| 蜜臀av一区二区| 欧美军同video69gay| 日韩成人av影视| 欧美日韩国产一二三| 亚洲成人777| 欧美日本免费一区二区三区| 国产成人av电影在线| av电影在线不卡| 一区二区三区在线免费播放| 91污片在线观看| 亚洲国产综合人成综合网站| 91九色最新地址| 蜜桃免费网站一区二区三区| 欧美电影免费观看高清完整版在线 | 国产a级毛片一区| 国产精品久久三区| 91成人在线免费观看| 日本女优在线视频一区二区| 精品sm在线观看| 91蝌蚪porny| 蜜桃精品视频在线| 国产午夜精品一区二区三区嫩草| 不卡av免费在线观看| 日韩和的一区二区| 久久久久久久综合日本| 在线观看成人小视频| 国产a久久麻豆| 亚洲成人av电影在线| 国产精品二区一区二区aⅴ污介绍| 欧美中文字幕一区| 国产另类ts人妖一区二区| 亚洲国产精品久久人人爱蜜臀 | 久久99国产精品久久99果冻传媒| 亚洲国产精品精华液ab| 欧美日韩免费一区二区三区| 成人性色生活片免费看爆迷你毛片| 丝袜美腿亚洲综合| 亚洲精品久久7777| 中文欧美字幕免费| 精品国产百合女同互慰| 91精品国产麻豆国产自产在线| 一本色道久久综合亚洲91 | 欧美国产欧美综合| 2023国产精品自拍| 久久久久国产精品麻豆 | 国产制服丝袜一区| 韩国女主播一区| 精品一区二区免费看| 久久99久久精品欧美| 蜜桃精品视频在线| 狠狠色综合日日| 精品一区二区影视| 福利一区福利二区| www.99精品| 欧美视频一区在线| 欧美一级在线视频| 国产日韩欧美电影| 亚洲自拍都市欧美小说| 亚洲成人精品影院| 精品一区二区日韩| 99视频在线精品| 在线不卡一区二区| 久久色在线视频| 亚洲猫色日本管| 日本成人在线网站| 成人h动漫精品| 欧美日韩一区二区在线观看 | 91福利在线导航| 久久综合色8888| 亚洲成人av一区二区| 国产精品乡下勾搭老头1| 在线观看不卡一区| 中文字幕成人在线观看| 视频一区在线视频| 色欧美日韩亚洲| 国产欧美日韩精品a在线观看|