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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 復(fù)件 createcode.h

?? 一個(gè)Pascal子集語(yǔ)言的編譯器
?? H
字號(hào):
//CreateCode.h

//inputfile:  words.txt
//outputfile: TempCode.txt

#ifndef CREATECODE_H_
#define CREATECODE_H_

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include "RunTime.h"
using namespace std;

/*****************************************************************************************
    生成中間代碼 
     
    
    
******************************************************************************************/




void runTime::CreatCode(char* filename)
{
    ofstream fout1("TempCode.txt");
    
    
    for(int i=0;i<=SegmentCount;i++)
    {
        
        //對(duì)模塊編號(hào)做一個(gè)預(yù)處理,將Segment進(jìn)行反查
        for(int j=1;j<=VariantCount;j++)
            if(Segment[j]==i)
                Segment2[i]=j;
            
                                                //還需要將得到的代碼過(guò)一遍,除掉冗余的信息 
        while(strcmp(Word[i][0],"var")==0)
        {
            int j=1;
            while(strcmp(Word[i][j],";")!=0) j++;   //將頭部的定義變量信息去掉 
                                                //將后面所有詞向前移動(dòng)j+1個(gè)位置    
            for(int k=j+1;k<=WordCount[i];k++)
            {
                strcpy(Word[i][k-j-1],Word[i][k]);
                Value[i][k-j-1]=Value[i][k];
            }
            WordCount[i]-=j+1;
        }
        
        fout1<<"Segment "<<i<<" :"<<endl;
    
        for(int j=0;j<=WordCount[i];j++)
        {
            ChangeWords(i,j);
            fout1<<Word[i][j]<<" ";
            if(
            (strcmp(Word[i][j],"then")==0)
            ||
            (strcmp(Word[i][j],"else")==0)
            ||
            (strcmp(Word[i][j],";")==0)
            )
            fout1<<endl;
        
        }
        fout1<<endl;
        fout1<<endl;
    }
    
    cout<<"temp-code born successful."<<endl;
    
    //此時(shí)調(diào)用函數(shù)信息及函數(shù)參數(shù)信息已經(jīng)全部被記錄  
    //下面就利用這些中間代碼寫(xiě)出最后的生成代碼
    
    fout.open("Code.cpp");
    
    fout<<"#include <stdlib.h>"<<endl;
    fout<<"#include <iostream>"<<endl;
    fout<<"using namespace std;"<<endl<<endl;
    
    //在主函數(shù)之前,將所有函數(shù)先寫(xiě)入文件
    for(int i=1;i<=SegmentCount;i++)
    {
                                                          //寫(xiě)入函數(shù)類(lèi)型
        if(VariantKind[Segment2[i]]/100==8)              
            fout<<"void ";
        else
        {
            switch(VariantType[Segment2[1]]%100)
            {
            case 1:fout<<"int ";break;
            case 2:fout<<"real ";break;
            case 3:fout<<"bool ";break;
            default:break;
            }
        }                                             
        fout<<VariantName[Segment2[i]];                   //寫(xiě)入函數(shù)名稱(chēng) 
        fout<<"(";                                        //寫(xiě)入?yún)?shù)信息  
        for(int j=1;j<=VariantHave[Segment2[i]];j++)
        {
            fout<<"int ";
            fout<<VariantName[Segment2[i]+j];             //寫(xiě)入?yún)?shù)名稱(chēng)  
            if(j<VariantHave[Segment2[i]])   
                fout<<" ,";
        }
        fout<<" )"<<endl;
        fout<<"{"<<endl;
        
        Write(i);
        
        fout<<"}"<<endl;
        fout<<"}"<<endl;
        
    }
    
    
    fout<<"int main(int argc,char** argv[])"<<endl;
    fout<<"{"<<endl;
                                                          //首先把所有變量聲明信息寫(xiě)進(jìn)去 
    
    for(int i=1;i<=VariantCount;i++)
            if(VariantKind[i]/100==9)                     //首先要判斷是否為程序頭信息
            {                                           
                 fout<<"char* "<<VariantName[i]<<" ;"<<endl;  
                                                          //如果是,則將其定義為char* 類(lèi)型      
            }
            else if((VariantBelong[i]/100==0)&&(VariantKind[i]/100==1)) 
                                                          //是全局變量
            {
                switch(VariantType[i]%100)
                {
                    case 0:fout<<"void "; break;
                    case 1:fout<<"int ";  break;
                    case 2:fout<<"real ";  break;
                    case 3:fout<<"bool ";  break;
                    default:break;
                }
                fout<<VariantName[i]<<" ;"<<endl;   
                
                
            }
      
     Write(0); 
     
     fout<<"system(\"PAUSE\");"<<endl<<"return 0; "<<endl<<"} "<<endl; //文件的尾部
     
     cout<<"total code born successful."<<endl;             //結(jié)束此過(guò)程,寫(xiě)入文件完畢 
     
      
        
}

void runTime::Write(int num)
{
    
int state=0;

int i=-1;

    while(i<WordCount[num])
    {
        if(state==0) state=1;
        i++;
        if(strcmp(Word[num][i],"begin")==0)         //程序塊的頭
        {
              fout<<"{"<<endl;
              state+=50;
        }
        else if(strcmp(Word[num][i],"end")==0)      //程序塊的尾
        {
             if(state==10) fout<<"; }"<<endl;
             state-=50;
        }    
        else if(strcmp(Word[num][i],"while")==0)    //while
        {
             fout<<"while("<<endl;   
        }
        else if(strcmp(Word[num][i],"do")==0)       //do
        {
             fout<<") {"<<endl; 
        }
        else if(strcmp(Word[num][i],".")==0)        //程序結(jié)束 
        {
        
            fout<<" "<<endl;
        }
        else if(strcmp(Word[num][i],";")==0)        //遇到分號(hào),按照狀態(tài)處理 
        {
             if(state==10) fout<<"; }"<<endl;
             else fout<<";"<<endl;
             state=0;
        }
        else if(strcmp(Word[num][i],"read")==0)     //"讀"命令 
        {
            fout<<"cin>>";
            state=11;                                //將狀態(tài)該為讀狀態(tài)    
            i++;                                    //跳過(guò)后面的括號(hào) 
        }
        else if(strcmp(Word[num][i],"write")==0)    //"寫(xiě)"命令 
        {
            fout<<"cout<<";
            state=12;                                //將狀態(tài)該為寫(xiě)狀態(tài) 
            i++;   
        }
        else if(strcmp(Word[num][i],")")==0)        //只可能是"讀"或"寫(xiě)"命令的 
        {
            state=1;
            fout<<";"<<endl;
            i++;
        }
        else if(strcmp(Word[num][i],",")==0)
        {
            if(state==11)
                fout<<">>";
            else if(state==12)
                fout<<"<<";
        }
        else if(strcmp(Word[num][i],"if")==0)
        {
            fout<<"if ( ";
        }
        else if(strcmp(Word[num][i],"then")==0)
        {
            fout<<" ){"<<endl;
        }
        else if(strcmp(Word[num][i],"else")==0)
        {
            fout<<"; }"<<endl<<"else{"<<endl;
            state=10;
        }
        else if(strcmp(Word[num][i],"while")==0)
        {
            fout<<Word[num][i];
        }
        else if((Word[num][i][0]>96)&&(Word[num][i][0]<124))
        {
            //遇到變量時(shí),需要判斷此是否為函數(shù)調(diào)用,如果是, 則將其后的括號(hào)中的內(nèi)容全部寫(xiě)入 
            if(Word[num][i+1][0]=='(')
            {
                while(strcmp(Word[num][i+1],")")!=0)
                {
                    fout<<Word[num][i];
                    i++;
                }
                fout<<Word[num][i];
                fout<<")";
                i+=2;
            }
            else if(strcmp(Word[num][i],VariantName[Segment2[num]])==0)         
                                                    //如果是變量的返回值,則需要將其寫(xiě)成return形式
            {
                fout<<" return ";
                i++; 
            } 
            else                                    //如果是一般變量則直接輸出 
            {
                fout<<Word[num][i];
            }
        }
        else                                        //遇到其他的字符,則直接將其輸出 
        {
            fout<<Word[num][i];
        }
    }
    if(state!=0) fout<<";"<<endl;
}



void runTime::ChangeWords(int num,int i)
{
    
        if(strcmp(Word[num][i],"number")==0)              //將除了變量以外的所有信息轉(zhuǎn)回原形 
            {
            _itoa(int(Value[num][i]),Word[num][i],10);
            }
        else if(strcmp(Word[num][i],"ids")==0)
            {
             strcpy(Word[num][i],VariantName[int(Value[num][i])]);
            }
        else if(strcmp(Word[num][i],"op")==0)
            {
            switch(int(Value[num][i]))
                {   
                case 1:strcpy(Word[num][i],"+");break;
                case 2:strcpy(Word[num][i],"-");break;
                case 3:strcpy(Word[num][i],"*");break;
                case 4:strcpy(Word[num][i],"/");break;
                case 5:strcpy(Word[num][i],"/");break;
                case 6:strcpy(Word[num][i],"%");break;
                default:break;
                }
            }
        else if(strcmp(Word[num][i],"def")==0)
            {
                switch(int(Value[num][i]))
                {
                    case 1:strcpy(Word[num][i],"int");break;
                    case 2:strcpy(Word[num][i],"double");break;
                    case 3:strcpy(Word[num][i],"bool");break;
                    default:break;
                }   
                    
            }
        else if(strcmp(Word[num][i],"relop")==0)
            {
                switch(int(Value[num][i]))
                {
                    case 0:strcpy(Word[num][i],"==");break;
                    case 1:strcpy(Word[num][i],">");break;
                    case 2:strcpy(Word[num][i],"<");break;
                    case 3:strcpy(Word[num][i],"<=");break;
                    case 4:strcpy(Word[num][i],">=");break;
                    case 5:strcpy(Word[num][i],"<>");break;
                    default:break;
                }  
            }
        else if(strcmp(Word[num][i],"assignop")==0)
        {
            strcpy(Word[num][i],"=");
        }
        else if((VariantKind[int(Value[num][i])]==800)||(VariantKind[int(Value[num][i])]==700))
            {
                if(strcmp(Word[num][i+1],"(")==0)             //如果它的下個(gè)字符是"("則作為函數(shù)
                      {
                      }
                else
                      { 
                                                              //就把它當(dāng)作一個(gè)返回值  
                      strcpy(Word[num][i],VariantName[int(Value[num][i])]);
                      strcat(Word[num][i],"[RunLayer]");  
                      }
            }
        
    

    
}





#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线国产亚洲欧美| 美女爽到高潮91| 亚洲国产经典视频| 精品电影一区二区三区| 日韩亚洲欧美中文三级| 欧美丰满少妇xxxbbb| 欧美午夜影院一区| 欧美日韩精品一区视频| 欧美美女喷水视频| 欧美日韩综合色| 欧美日韩国产成人在线免费| 欧美精品视频www在线观看| 91麻豆精品国产91| 51久久夜色精品国产麻豆| 欧美久久久一区| 精品国产乱码久久久久久牛牛 | 国产成人亚洲综合色影视| 国产一区二区精品久久99| 国产精品夜夜爽| 99精品久久免费看蜜臀剧情介绍| 8x8x8国产精品| 日韩免费高清av| 国产欧美日韩卡一| 亚洲欧美影音先锋| 日韩精品一二区| 国产乱一区二区| 91性感美女视频| 69成人精品免费视频| 国产三级三级三级精品8ⅰ区| 国产精品乱人伦一区二区| 亚洲一二三四久久| 久久99热国产| 91国产丝袜在线播放| 精品日韩在线一区| 亚洲欧美一区二区三区国产精品 | 丝袜美腿一区二区三区| 国产精品中文字幕日韩精品| 91蝌蚪porny| 久久综合一区二区| 亚洲电影中文字幕在线观看| 国产乱码精品1区2区3区| 欧美亚洲尤物久久| 欧美激情艳妇裸体舞| 日韩二区在线观看| 99久久99久久精品国产片果冻| 欧美一级片免费看| 一区二区三区国产精品| 国产黄色精品视频| 欧美一区二区久久| 亚洲精品欧美激情| 国产91高潮流白浆在线麻豆| 欧美精品18+| 亚洲一区视频在线| 99久久99久久免费精品蜜臀| 精品国产百合女同互慰| 色视频欧美一区二区三区| 99国产麻豆精品| 国产乱码精品一区二区三区忘忧草 | 日韩激情av在线| 97超碰欧美中文字幕| 国产亚洲欧洲997久久综合 | 懂色av中文一区二区三区| 3d成人动漫网站| 亚洲午夜免费电影| av激情综合网| 国产精品久久网站| 成人午夜av在线| 国产欧美在线观看一区| 国产高清在线观看免费不卡| 精品国产一区久久| 老司机精品视频在线| 91精品国产综合久久精品| 亚洲18色成人| 欧美日韩国产一级片| 亚洲电影在线播放| 欧美日韩一区成人| 日本免费新一区视频| 91精品一区二区三区在线观看| 午夜精品久久久久久久蜜桃app| 91黄色在线观看| 亚洲成人综合视频| 欧美日本国产视频| 免费在线观看日韩欧美| 91精品国产丝袜白色高跟鞋| 日本不卡一二三区黄网| 欧美成人性福生活免费看| 精品一区二区三区香蕉蜜桃| 久久人人超碰精品| 成人美女视频在线观看| 亚洲欧美在线视频| 欧美亚洲日本一区| 免费成人你懂的| 国产午夜精品一区二区三区四区 | 亚洲男人都懂的| 在线观看免费一区| 男男gaygay亚洲| 亚洲国产精品精华液2区45| 99国产精品久| 蜜臀久久99精品久久久久久9| 国产调教视频一区| 色av成人天堂桃色av| 丝袜美腿亚洲一区二区图片| 欧美sm美女调教| 91网站最新网址| 日韩成人av影视| 国产精品久久综合| 91精品国产91热久久久做人人 | 亚洲黄色小视频| 91精品国产综合久久精品app| 精品亚洲成av人在线观看| 国产精品久久久久久久久久免费看| 色猫猫国产区一区二在线视频| 三级精品在线观看| 国产精品久久久久久久久久久免费看| 欧美亚洲免费在线一区| 国产91富婆露脸刺激对白| 丝袜美腿亚洲一区二区图片| 国产日韩欧美a| 欧美一区二区三区喷汁尤物| 99这里只有精品| 精品一区二区三区欧美| 亚洲电影在线播放| 国产精品国产三级国产三级人妇| 欧美高清视频一二三区| 成人一区二区三区中文字幕| 免费欧美高清视频| 亚洲高清一区二区三区| 中文字幕一区二区三区视频| 26uuu精品一区二区在线观看| 欧美久久高跟鞋激| 在线观看成人免费视频| 成人福利视频网站| 国产精品香蕉一区二区三区| 日韩电影免费在线看| 亚洲第一福利一区| 樱桃国产成人精品视频| 国产精品日日摸夜夜摸av| 2021中文字幕一区亚洲| 91精品国产一区二区| 欧美日韩国产精选| 精品视频在线免费看| 色综合 综合色| 91在线精品一区二区| 国产·精品毛片| 国产成人精品亚洲777人妖 | 成人丝袜18视频在线观看| 国产在线播放一区三区四| 美女性感视频久久| 男女男精品视频网| 婷婷综合在线观看| 五月婷婷综合激情| 日韩精品1区2区3区| 日韩有码一区二区三区| 日韩电影在线一区二区三区| 日本麻豆一区二区三区视频| 视频一区视频二区在线观看| 日韩成人免费电影| 蜜臀av性久久久久av蜜臀妖精 | 久久久久久毛片| 久久久精品tv| 国产精品色哟哟| 亚洲日本在线天堂| 亚洲成人免费看| 久久精品国产精品亚洲精品| 久久国产福利国产秒拍| 国产精品亚洲人在线观看| 波多野结衣亚洲| 91久久精品国产91性色tv| 欧洲生活片亚洲生活在线观看| 欧美日韩一级二级| 日韩一级黄色片| 亚洲国产精品二十页| 亚洲欧美偷拍卡通变态| 视频一区视频二区在线观看| 国产一区二区电影| 99精品国产91久久久久久| 欧洲av在线精品| 日韩精品中午字幕| 中文字幕人成不卡一区| 亚洲一区二区三区国产| 免费的成人av| 99久免费精品视频在线观看| 欧美日韩日日摸| 久久精品夜夜夜夜久久| 亚洲卡通欧美制服中文| 美女被吸乳得到大胸91| 99久久久无码国产精品| 91精品国产麻豆| 亚洲色图.com| 久久成人免费网| 91美女片黄在线观看91美女| 日韩三区在线观看| 专区另类欧美日韩| 国产在线一区二区| 欧美性猛片xxxx免费看久爱| 国产丝袜美腿一区二区三区| 无码av免费一区二区三区试看| 成人在线视频一区| 日韩欧美不卡在线观看视频| 亚洲美女视频一区|