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

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

?? ul.txt

?? 本課程設計即為詞法分析階段。詞法分析階段是編譯過程的第一個階段。這個階段的任務是從左到右一個字符一個字符地讀入源程序
?? TXT
字號:
//--------------------------------------------------------------------------- 
 
#include <vcl.h> 
 
#include<iostream> 
#include <fstream> 
#pragma hdrstop 
 
#include "Unit1.h" 
//--------------------------------------------------------------------------- 
#pragma package(smart_init) 
#pragma resource "*.dfm" 
 
#define KEYWORDCOUNT 35 
#define SCOUNT 32 
#define FGCOUNT 8 
#define ZSCOUNT 1 
 
using namespace std; 
bool isrv=false; 
bool issd(const String *s1,const String &s2,int kcount); 
bool isfd(const char* s,const char m); 
 
//定義字母表 
char* crt="abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLOMOPQRSTUVWXYZ_"; 
 
//定義數字 
char* numb="1234567890."; 
 
//定義符號 
char* syb="+-*/=~!#%&|<>,.\\"; 
 
//定義分隔符 
char* fgf="{}[]();"; 
 
//定義關鍵字 
String keyw[KEYWORDCOUNT]={"auto","break","case","char","const","continue","default","do","double", 
"else","enum","extern","float","for","goto","if","int","long","register", 
"return","short","signed","sizeof","static","struct","switch","typedef", 
"union","unsigned","void","volatile","while","true","false","bool"} ; 
 
//定義運算符 
String yuns[SCOUNT]={"->",".","!","++","--","&","~","*","/","%","+","-", 
"<<",">>","<","<=",">",">=","==","!=","&&","||", 
"=","+=","-=","*=","/=",",","#"}; 
 
 
 
//定義注釋符 
String zs[ZSCOUNT]={"//"}; 
 
TForm1 *Form1; 
//--------------------------------------------------------------------------- 
__fastcall TForm1::TForm1(TComponent* Owner) 
: TForm(Owner) 
{ 
 
} 
//--------------------------------------------------------------------------- 
 
 
 
//TODO: ----------[ 判斷一個字符是否在一個字符串內 ]-------------------- 
bool isfd(const char* s,const char m) 
{ 
    int i=strlen(s); 
 
    for(int jj=0;jj<=i-1;++jj) 
    { 
        if(m==s[jj])return true; 
    } 
    return false; 
} 
 
 
//TODO: ---------------[ 判斷一個字符串是否在另一個字符串內 ]--------------- 
bool issd(const String *s1,const String &s2,int kcount) 
{ 
    for(int i=0;i<=kcount-1;++i) 
    { 
        if(s2==s1[i])return true; 
    } 
    return false; 
} 
 
 
//TODO: ----------------------[ 進行詞法分析 ]------------------------- 
void __fastcall TForm1::Anylize1Click(TObject *Sender) 
{ 
    int ii; 
    char lin[1000]; 
    char num[10]; 
    char fh; 
    int j; 
    String final; 
    Result1->Checked=true; 
 
    for(int i=0;i<=RichEdit1->Lines->Count-1;++i) 
    { 
        j=1; 
        ii=-1; 
 
        char tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
 
 
 
        for(unsigned int iii=0;iii<=strlen(RichEdit1->Lines->Strings[i].c_str());++iii) 
        { 
 
 
            //狀態1:"開頭 
            if(RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]=='\"') 
            { 
                final+="(" +String(i+1) + ") "+"字符串開始標志:\""+String("\r\n"); 
                tk=RichEdit1->Lines->Strings[i].SubString(++j,1).c_str()[0]; 
                while(tk!='\n'&&tk!='\r'&&tk!='\0'&&tk!='\"') 
                { 
                    lin[++ii]=tk; 
                    ++j; 
 
                    tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
                    if(tk=='\"'){ 
                        lin[++ii]='\0'; 
                        // if(strlen(lin)>=4)lin[strlen(lin)-3]='\0'; 
                        final+="(" +String(i+1) + ")" +"字符串:"+String(lin)+String("\r\n"); 
                        final+="(" +String(i+1) + ") "+"字符串結束標志:\""+String("\r\n"); 
                        goto sends; 
                    } 
                } 
                if(strlen(lin)>=4)lin[strlen(lin)-3]='\0'; 
                final+="(" +String(i+1) + ")" +"字符串:"+String(lin)+String("\r\n"); 
                final+="(" +String(i+1) + ")"+"(" +String(j) + ") " +"錯誤:有字符串開始標志卻無結束標志"+String("\r\n"); 
 
sends: 
 
 
                ++j; 
                ii=-1;     } 
            //---------------------------------------------------------------------- 
            //狀態2://開頭 
            else  if(RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]=='/'&&RichEdit1->Lines->Strings[i].SubString(j+1,1).c_str()[0]=='/') 
            { final+="(" +String(i+1) + ") "+"注釋符://"+String("\r\n"); 
            tk=RichEdit1->Lines->Strings[i].SubString(j+2,1).c_str()[0]; 
            j+=2; 
            while(tk!='\n'&&tk!='\r'&&tk!='\0') 
            { 
                lin[++ii]=tk; 
                ++j; 
 
                tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
            } 
            lin[++ii]='\0'; 
            final+="(" +String(i+1) + ")" +"注釋內容:"+String(lin)+String("\r\n"); 
 
 
 
            ii=-1;     } 
 
            //------------------------------------------------------------- 
                        //狀態2:#開頭 
            else  if(RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]=='#') 
            { final+="(" +String(i+1) + ") "+"預定義符:#"+String("\r\n"); 
            tk=RichEdit1->Lines->Strings[i].SubString(j+1,1).c_str()[0]; 
            j+=1; 
            while(tk!='\n'&&tk!='\r'&&tk!='\0') 
            { 
                lin[++ii]=tk; 
                ++j; 
 
                tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
            } 
            lin[++ii]='\0'; 
            final+="(" +String(i+1) + ")" +"預定義內容:"+String(lin)+String("\r\n"); 
 
 
 
            ii=-1;     } 
 
            //------------------------------------------------------------- 
            //狀態3:'開頭 
 
            else if(RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]=='\'') 
            { 
                final+="(" +String(i+1) + ") "+"字符開始標志:\'"+String("\r\n"); 
                tk=RichEdit1->Lines->Strings[i].SubString(++j,1).c_str()[0]; 
                while(tk!='\n'&&tk!='\r'&&tk!='\0'&&tk!='\'') 
                { 
                    lin[++ii]=tk; 
                    ++j; 
 
                    tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
                    if(tk=='\''){ 
                        lin[++ii]='\0'; 
                        // if(strlen(lin)>=4)lin[strlen(lin)-3]='\0'; 
                        final+="(" +String(i+1) + ")" +"字符:"+String(lin)+String("\r\n"); 
                        final+="(" +String(i+1) + ") "+"字符結束標志:\'"+String("\r\n"); 
                                                if(strlen(lin)>1)final+="(" +String(i+1) + ") "+"(" +String(j) + ") "+"字符長度大于1,是否是字符串?"+String("\r\n"); 
                        goto sends2; 
                    } 
                } 
                if(strlen(lin)>=4)lin[strlen(lin)-3]='\0'; 
                final+="(" +String(i+1) + ")" +"字符串:"+String(lin)+String("\r\n"); 
                final+="(" +String(i+1) + ")"+"(" +String(j) + ") " +"錯誤:有字符串開始標志卻無結束標志"+String("\r\n"); 
 
sends2: 
 
 
                ++j; 
                ii=-1;     } 
 
 
            //狀態3:字母開頭 
            else if(isfd(crt,tk)) 
            { 
                while(isfd(crt,tk)||isfd(numb,tk)) 
                { 
                    lin[++ii]=tk; 
                    ++j; 
                    tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
                } 
                lin[++ii]='\0'; 
 
                //是否關鍵字 
                if(issd(keyw,lin,KEYWORDCOUNT)) 
                    final+="(" +String(i+1) + ") "+"關鍵字:"+String(lin)+String("\r\n"); 
                else 
                    final+="(" +String(i+1) + ") "+"自定義標識符:"+String(lin)+String("\r\n"); 
 
                ii=-1; 
            } 
 
            //狀態4:符號開頭 
            else if(isfd(syb,tk)) 
            { 
                while(isfd(syb,tk)) 
                { 
                    lin[++ii]=tk; 
                    ++j; 
                    tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
                } 
                lin[++ii]='\0'; 
 
                //是否運算符 
                if(issd(yuns,lin,SCOUNT)) 
                    final+="(" +String(i+1) + ") "+"運算符:"+String(lin)+String("\r\n"); 
                else 
                    final+="(" +String(i+1) + ")"+"(" +String(j) + ") "+"錯誤符號:"+String(lin)+String("\r\n"); 
                ii=-1; 
 
 
            } 
 
            //狀態5:數字開頭 
            else if(isfd(numb,tk)) 
            { 
                while(isfd(numb,tk)) 
                { 
                    lin[++ii]=tk; 
                    ++j; 
                    tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
                } 
                lin[++ii]='\0'; 
                final+="(" +String(i+1) + ") "+"數字:"+String(lin)+String("\r\n"); 
                ii=-1; 
            } 
 
            //狀態6:分隔符開頭 
 
            else if(isfd(fgf,tk)) 
            { 
 
 
                lin[++ii]=tk; 
                ++j; 
                tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
 
                lin[++ii]='\0'; 
                final+="(" +String(i+1) + ") "+"分隔符:"+String(lin)+String("\r\n"); 
                ii=-1; 
            } 
 
 
            //以上什么都不是,跳過 
            else 
            { 
                ++j; 
                tk=RichEdit1->Lines->Strings[i].SubString(j,1).c_str()[0]; 
            } 
 
 
 
        } 
 
    } 
    Memo1->Text=final; 
    isrv=true; 
    RichEdit1->Width=Form1->Width-Memo1->Width-8; 
 
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品18久久久久久久久久久久| 在线观看91av| 色网综合在线观看| 亚洲麻豆国产自偷在线| 亚洲影视在线播放| 日韩av一区二| 国产成人午夜99999| 91免费版pro下载短视频| 欧美日韩国产首页| 精品国产伦理网| 亚洲图片你懂的| 视频一区视频二区中文字幕| 国产一区二区三区久久悠悠色av| 成人午夜看片网址| 欧美日本在线播放| 久久久久国产精品厨房| 亚洲自拍都市欧美小说| 激情欧美一区二区| 日本精品裸体写真集在线观看| 在线电影一区二区三区| 国产亚洲精品aa午夜观看| 亚洲精品免费电影| 美女一区二区视频| 99久久国产综合精品女不卡| 欧美一区二区日韩一区二区| 中文字幕在线观看不卡| 热久久国产精品| 91视频一区二区三区| 日韩一级成人av| 成人欧美一区二区三区白人| 日韩在线一区二区| 成人免费视频播放| 欧美一卡二卡在线| 亚洲美女一区二区三区| 国产真实乱子伦精品视频| 欧美在线看片a免费观看| 久久久影院官网| 亚洲国产va精品久久久不卡综合| 国产精品一区二区三区99| 欧美日韩亚洲不卡| 一区在线观看视频| 激情综合网天天干| 欧美日韩在线播放三区四区| 国产日韩欧美制服另类| 日本美女一区二区三区| 91免费精品国自产拍在线不卡| 欧美va亚洲va| 午夜精品一区二区三区三上悠亚| 成人国产在线观看| www国产亚洲精品久久麻豆| 午夜一区二区三区在线观看| 成人av电影在线播放| 久久毛片高清国产| 免费在线观看视频一区| 欧美伊人久久大香线蕉综合69| 中文字幕成人网| 国产精品一区二区久激情瑜伽| 91麻豆精品91久久久久同性| 亚洲综合激情网| 99vv1com这只有精品| 麻豆精品国产传媒mv男同 | 精品国内片67194| 偷拍自拍另类欧美| 欧美在线小视频| 亚洲色图一区二区| 成人免费视频免费观看| 国产女人水真多18毛片18精品视频| 欧美96一区二区免费视频| 欧美人牲a欧美精品| 亚洲一区在线视频观看| 97se亚洲国产综合自在线观| 国产精品久久久久久久久免费桃花| 国产永久精品大片wwwapp| 日韩欧美一区二区免费| 日韩电影一区二区三区| 欧美高清视频www夜色资源网| 亚洲激情五月婷婷| 欧美在线观看视频一区二区 | 国产精品99久久久久久久女警| 日韩视频在线永久播放| 午夜精品久久久久久久久久久| 欧美午夜寂寞影院| 亚洲成人中文在线| 在线成人午夜影院| 日韩精品高清不卡| 欧美一区二区在线免费播放| 男人的天堂亚洲一区| 日韩亚洲欧美在线| 老司机免费视频一区二区| 日韩欧美一卡二卡| 精油按摩中文字幕久久| 久久―日本道色综合久久| 国产美女精品一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 国产经典欧美精品| 亚洲欧洲日本在线| 在线视频你懂得一区| 亚洲无线码一区二区三区| 欧美高清视频不卡网| 卡一卡二国产精品 | 婷婷夜色潮精品综合在线| 91精品国产综合久久精品 | 精品奇米国产一区二区三区| 国产在线一区观看| 国产精品久线在线观看| 在线观看亚洲专区| 人禽交欧美网站| 国产午夜精品一区二区 | 亚洲欧洲日韩在线| 欧美男男青年gay1069videost| 欧美色网站导航| 日韩在线一二三区| 久久久久久久久久看片| 99久久国产免费看| 亚洲国产美国国产综合一区二区| 欧美一区二区三区视频在线| 国产精品一区二区果冻传媒| 亚洲人成亚洲人成在线观看图片| 欧美日韩国产另类不卡| 国产中文字幕精品| 亚洲美女电影在线| 欧美大片在线观看一区| www.亚洲激情.com| 午夜精品久久一牛影视| 国产亚洲女人久久久久毛片| 欧美在线一区二区三区| 精品亚洲成av人在线观看| 中文字幕在线免费不卡| 91精品国产91综合久久蜜臀| 国产成人av电影在线| 亚洲成人黄色小说| 精品国产乱码久久久久久老虎 | 欧美成人国产一区二区| 99国产精品久久久久| 秋霞影院一区二区| 1000精品久久久久久久久| 777久久久精品| av电影在线观看一区| 日韩黄色免费网站| 1024成人网色www| 日韩精品最新网址| 在线亚洲一区观看| 国产高清在线精品| 午夜影院在线观看欧美| 国产精品福利av| 精品久久一区二区| 欧美午夜寂寞影院| 波多野结衣在线aⅴ中文字幕不卡| 日韩电影一区二区三区四区| 亚洲色图欧美在线| 久久久久久久精| 91精品午夜视频| 在线视频国内一区二区| 国产91清纯白嫩初高中在线观看| 婷婷国产在线综合| 亚洲欧美一区二区三区国产精品| 精品国产乱码久久久久久久| 亚洲免费在线观看视频| 久久久高清一区二区三区| 制服.丝袜.亚洲.另类.中文| 91免费视频大全| 成人免费视频国产在线观看| 麻豆精品国产传媒mv男同 | 欧美日韩国产一级| 91蜜桃在线免费视频| 丰满白嫩尤物一区二区| 精品一区二区免费视频| 丝袜国产日韩另类美女| 一区二区三区精品视频在线| 国产精品三级在线观看| 久久精品亚洲精品国产欧美| 精品久久人人做人人爽| 日韩欧美视频一区| 欧美一级片免费看| 欧美一区二区三区四区视频 | 图片区日韩欧美亚洲| 一区二区三区四区在线免费观看| 国产精品欧美精品| 国产日韩精品视频一区| 久久久久久久免费视频了| 久久综合久久综合亚洲| 日韩午夜激情免费电影| 日韩一区二区精品| 欧美一区二区视频网站| 日韩一区二区视频| 欧美一级免费观看| 欧美一区二区二区| 日韩一二在线观看| 日韩视频中午一区| 精品国产1区2区3区| 精品奇米国产一区二区三区| 精品国产麻豆免费人成网站| 精品国产一区久久| 久久精品欧美日韩精品| 欧美精彩视频一区二区三区| 亚洲国产高清aⅴ视频| 国产精品午夜在线| 日韩理论电影院| 亚洲激情第一区| 丝袜美腿亚洲综合|