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

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

?? runtime.h

?? 一個Pascal子集語言的編譯器
?? H
?? 第 1 頁 / 共 2 頁
字號:
//RunTime.h


//inputfile:  words.txt, sentence.txt, wordtable2.txt
//outputfile: runtime.txt

#ifndef RUNTIME_H_
#define RUNTIME_H_

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

/*****************************************************************************************
    運行時刻環境 
     
    功能要求:
     
      1。首先讀取sentence.txt文件,判斷各個變量是否在其作用域內出現。 
      2。從words.txt文件中將各個模塊分別讀取出,并分別保存在各組變量里。 
      3。從程序的入口點進入程序,按順序輸出到目標文件,并在函數調用時判斷此段函數代碼是否
         寫過,如果沒寫過則將其寫到當前位置,如果寫過則轉移到以前寫過的位置。 
    
    
    步驟:
        
      1。首先判斷各個變量是否出現在其作用域內,并返回正確或錯誤信息
      2。分析words.txt文件,并將其分段落存入字符串組中去
      
        比如下面一段代碼:
        
        program example(input,output);
        var x,y:integer;

        procedure gcd(m,n:integer);
        var n:integer;
        begin
              n:=m ;
        end;
        
        begin
          read(x,y);
          write(gcd(x))
        end.
        
        將其存到數組中: 
        
        Word[0][0]="var" Word[0][1]="id" Word[0][2]="," Word[0][3]="id" Word[0][4]=":" 
        ...
        ..
        
        Word[1][0]="var" Word[1][1]="id" Word[1][2]=":" Word[1][3]="def" Word[1][4]=";" 
        Word[1][5]="begin" Word[1][6]="ids" Word[1][7]=":" Word[1][8]="ids" Word[1][9]=";" 
        Word[1][10]="end" Word[1][11]=";"
        
        并記錄信息:
        
        Segment[1]=0;   //記錄此變量的段落編號 
                        //以及各個參數信息 
        ParamentCount[0]=2  Parament[0][1]="input" Parament[0][2]="output"
        
        Segment[6]=1;
        
        ParamentCount[1]=2  Parament[1][1]="m" Parament[1][2]="n"
        
     3。將分析好的代碼按照執行時的順序寫到文件中去,如果遇到函數調用,則在其所在語句前加一
        個變量,使變量的值為此函數。 
        
        例如下面這段代碼:
        
        program example(input,output);
        var x,y:integer;

        procedure gcd(m,n:integer);
        var n:integer;
        begin
              n:=m ;
        end;
        
        begin
          read(x,y);
          write(gcd(x))
        end.
        
        將被轉換為:
          
        var x,y:integer;
        read(x,y);
        gcd:
        write(gcd(x))
        
        
******************************************************************************************/
class runTime
{
    private:
    
        ifstream fin1;                //定義文件讀取指針 
        ifstream fin2;                //定義文件讀取指針 
        ifstream fintable;            //讀取變量表的指針
        ofstream fout;                //將各個模塊按照執行順序寫入到目標文件中去 
        
         
        int CurrentLine;
        int Paraments; 
        int VariantIndex;
        int VariantCount;
        int VariantKind[100];
        int VariantType[100];
        int VariantHave[100];
        int VariantBelong[100];
        char VariantName[100][256];   //定義變量信息 
    
        char Temp[256];
    
    
        char Errors[20][256];         //保存了各種錯誤代碼信息 
        int Error_Count;              //記錄錯誤個數   
        char ErrorWord[256];          //記錄錯誤信息  
    
        char Word[10][100][256];      //記錄下每個模塊中每個詞的信息 
        int WordCount[10];            //記錄每個模塊里的單詞個數  
        double Value[10][100];        //記錄下每個詞的變量屬性 
        int Segment[100];             //返回每個模塊的編號值 
        int Segment2[100];            //設置一個模塊編號值的反查函數 
        int SegmentIndex;               
        int SegmentCount;
        
        int ParamentCount[100];       //記錄參數個數
        char Parament[100][10][256];  //記錄每個參數的名稱 
        
        int RunLayer;
        int RunCount;                 //記錄運行時刻調用函數的位置
                                      //包括層號和索引號  
        
        int Used[10];                 //在進行寫操作時判斷此模塊是否被寫過 
        int Begin;                    //每寫一段的開始位置 
        int Index[10];                //記錄每個段所寫到的位置 
        
        int Layer;                    //段落層信息,遇到begin進棧,遇到end出棧 
        
        
    protected:
    
        void Initialize();            //初始化各個參數和變量 
        int CheckWords();             //第一步:檢查所有的詞是否在自己的作用域內出現  
       
        void DefineError();
        void CatchError(int num);     //對錯誤的處理  
        
        void GetWords();              //從文件中讀取單詞 
        
    public:
    
        int Compile();
        void InitialWrite();                    //初始化 
        void CreatCode(char* filename);         //將代碼寫入文件 
        void ChangeWords(int num,int i);        //將單詞進行回寫 
        void Write(int num);                    //將每個模塊的代碼寫入文件
};

void runTime::DefineError()               //定義錯誤類型 
{
    strcpy(Errors[0]," not in it's active field ");
    
}

void runTime::InitialWrite()              //對寫文件進行初始化,此段代碼在CreateCode部分 
{
    RunLayer=0;
    RunCount=0;
    for(int i=0;i<10;i++)   Used[i]=0;

};


void runTime::CatchError(int num)         //將錯誤信息直接輸出 
{
    Error_Count++;
    cout<<"Error ("<<Error_Count<<"): \""<<ErrorWord<<"\" "<<Errors[num]<<" at line: "<<CurrentLine<<endl;
    
        
                
}

void runTime::Initialize()
{
    
    fintable.open("wordtable2.txt");        //打開單詞表文件 
    Error_Count=0;                          //將各個變量進行初始化 
    DefineError();
    
    while(fintable>>VariantIndex)
          fintable>>VariantKind[VariantIndex]
                  >>VariantType[VariantIndex]
                  >>VariantName[VariantIndex]
                  >>VariantHave[VariantIndex]
                  >>VariantBelong[VariantIndex];
                                            //將變量信息從單詞表中讀取出 
    

}

int runTime::CheckWords()
{
    int Value;
    //int state=0;
    fin1.open("sentence.txt");
    
    while(fin1>>CurrentLine>>Paraments)
    {
        while(fin1>>Temp)
        {
            if(strcmp(Temp,";")==0) break;
            
            if(strcmp(Temp,"ids")==0)
            {
                fin1>>Value;
                
                if((VariantBelong[Value]!=0)&&(VariantBelong[Value]/100!=0)&&(VariantBelong[Value]/100!=Paraments))
                                            //它的聲明既不在主程序中也不在此模塊內,說明調用錯誤 
                {
                    /*
                        輸出錯誤信息 
                    */
                    strcpy(ErrorWord,VariantName[Value]);
                    CatchError(0);
                    
                }
            }
        }
    }
    if(Error_Count==0)    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品毛片久久久久久| 欧美一级二级三级蜜桃| 精品一区二区三区免费毛片爱| 亚洲一区二区三区视频在线播放| 《视频一区视频二区| 中文一区在线播放| 亚洲人成人一区二区在线观看| 国产精品久久久久久久岛一牛影视 | 国产午夜精品一区二区三区嫩草 | 欧美精选一区二区| 欧美人狂配大交3d怪物一区| 欧美精品电影在线播放| 欧美一区二区三区影视| 久久综合给合久久狠狠狠97色69| 国产三级精品三级在线专区| 亚洲天堂免费在线观看视频| 亚洲高清视频的网址| 婷婷夜色潮精品综合在线| 美日韩一级片在线观看| 成人一级黄色片| 在线精品观看国产| 欧美大片在线观看一区| 久久精品一区二区三区不卡牛牛| 亚洲欧美在线另类| 亚洲一区二区黄色| 久久av老司机精品网站导航| 成人深夜在线观看| 欧美日韩一级二级| 久久亚洲私人国产精品va媚药| 国产精品福利一区二区| 首页国产欧美久久| 国产精品 欧美精品| 色屁屁一区二区| 精品欧美一区二区久久| 亚洲欧美aⅴ...| 久久国产视频网| 91久久线看在观草草青青| 日韩欧美二区三区| 一区二区三区91| 国产91色综合久久免费分享| 欧美性猛片aaaaaaa做受| 日韩欧美国产不卡| 亚洲一级电影视频| 国产成人亚洲综合a∨婷婷| 欧美日韩免费一区二区三区视频| 久久久精品黄色| 日韩黄色在线观看| 色哟哟在线观看一区二区三区| 精品国产免费久久| 亚洲成精国产精品女| av成人老司机| 国产亚洲成年网址在线观看| 性做久久久久久免费观看欧美| 菠萝蜜视频在线观看一区| 日韩欧美电影在线| 亚洲一区视频在线观看视频| 成人午夜免费av| 久久久精品免费免费| 另类小说视频一区二区| 欧美日韩久久一区| 亚洲精品视频在线看| a在线欧美一区| 国产亚洲精品7777| 国产美女在线精品| 欧美大胆一级视频| 美腿丝袜一区二区三区| 日韩天堂在线观看| 男女激情视频一区| 91精品国产综合久久久久| 婷婷久久综合九色综合伊人色| 一本久久a久久精品亚洲| 国产精品免费网站在线观看| 国产不卡一区视频| 国产精品素人一区二区| 成人的网站免费观看| 国产精品免费av| 色综合久久综合网欧美综合网| 国产精品高清亚洲| 97精品国产露脸对白| 一区二区三区**美女毛片| 欧美在线观看视频一区二区| 亚洲一区二区三区四区不卡| 欧美体内she精视频| 日日夜夜精品免费视频| 日韩欧美国产一二三区| 国产一区二区伦理| 国产精品久久久一区麻豆最新章节| 成人国产一区二区三区精品| 亚洲青青青在线视频| 欧美午夜视频网站| 免费欧美在线视频| 国产视频一区在线播放| 色综合色综合色综合色综合色综合| 一区二区理论电影在线观看| 欧美夫妻性生活| 国产成人综合网站| 亚洲欧美一区二区久久| 欧美军同video69gay| 国内成+人亚洲+欧美+综合在线| 国产精品婷婷午夜在线观看| 欧日韩精品视频| 免费精品视频最新在线| 亚洲国产精品ⅴa在线观看| 91九色02白丝porn| 国内精品嫩模私拍在线| 亚洲人成精品久久久久| 日韩午夜激情免费电影| eeuss鲁一区二区三区| 青娱乐精品视频在线| 国产丝袜在线精品| 欧美日本在线播放| av激情亚洲男人天堂| 美女免费视频一区| 亚洲日本va午夜在线电影| 欧美一区二区三区免费视频 | 婷婷综合另类小说色区| 中文在线一区二区| 日韩欧美亚洲另类制服综合在线 | 美女视频黄免费的久久| 亚洲视频香蕉人妖| 日韩精品一区二区在线观看| 91蝌蚪porny| 国产一区二区精品久久99| 一区二区三区在线影院| 国产精品无人区| 精品国产乱码91久久久久久网站| 色www精品视频在线观看| 国产黄色成人av| 日韩精品高清不卡| 亚洲一区影音先锋| 成人欧美一区二区三区黑人麻豆 | 久久精品国产99久久6| 国产精品短视频| 久久久精品人体av艺术| 欧美一区二区视频在线观看2020| 日本高清不卡一区| 免费人成在线不卡| 亚洲成人动漫在线观看| 国产三级精品三级| 精品裸体舞一区二区三区| 亚洲成人精品影院| 亚洲日本一区二区| 日韩毛片高清在线播放| 国产精品剧情在线亚洲| wwwwww.欧美系列| 欧美精品一区二区精品网| 欧美刺激午夜性久久久久久久| 欧洲亚洲国产日韩| 色欧美88888久久久久久影院| 本田岬高潮一区二区三区| 成人国产视频在线观看| caoporen国产精品视频| 北条麻妃国产九九精品视频| 国产成人午夜片在线观看高清观看| 韩国精品在线观看| 激情欧美一区二区三区在线观看| 美女尤物国产一区| 激情伊人五月天久久综合| 欧美v日韩v国产v| 亚洲人成网站在线| 亚洲一区二区三区视频在线 | 欧美精品在线一区二区| 欧美午夜一区二区三区| 欧美一区二区三区四区五区| 91麻豆精品国产91久久久更新时间| 欧美精品tushy高清| 日韩色在线观看| 久久综合九色综合欧美98| 亚洲国产精品精华液ab| 亚洲视频一区在线观看| 五月天视频一区| 国产精品自产自拍| 波多野结衣亚洲| 欧美无人高清视频在线观看| 欧美一级国产精品| 久久久久久亚洲综合影院红桃| 国产精品久久毛片av大全日韩| 一区二区三区四区不卡视频| 免费看日韩a级影片| 国产精品1区2区3区在线观看| 成人毛片视频在线观看| 欧美日韩视频在线观看一区二区三区| 91精品国产综合久久久久久漫画| 久久午夜免费电影| 亚洲精品一二三四区| 美女视频网站黄色亚洲| av毛片久久久久**hd| 91麻豆精品国产自产在线观看一区| 亚洲精品一区二区在线观看| 亚洲精品高清在线观看| 久久精品免费看| 欧洲亚洲精品在线| 久久99国产精品久久| 久久久亚洲午夜电影| 国产91丝袜在线播放0| 久久久久久久久久久久久女国产乱| 男男成人高潮片免费网站| av电影一区二区| 久久影院午夜论| 丝袜脚交一区二区|