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

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

?? main.cpp

?? 詞法、語法分析程序。 絕對不是目前網(wǎng)絡上流行的任何一個版本
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//規(guī)定一行可以書寫多條語句,一個語句也可以占領多行書寫

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <process.h>

#include <fstream.h>
#include <iostream.h>

#include "my_define.h"
#include "my_globals.h"
#include "my_judge.h"
#include "my_subfunc.h"
#include "my_subfunc2.h"
//////////////////////////////////////////////////////////////////////////////

//下表為語法分析遞歸程序的層次結(jié)構(gòu):

void program();//程序
   void proghead();//程序首部
      //保留字PROGRAM
      //變量名(標識符)
      //保留字;
   void block();//程序塊
      void consexpl();//常量說明部分
	     //保留字CONST
         void consdefi();//常量定義
		    //變量名(標識符)
		    //保留字=
            //常量
         void conssuff();//常量定義后綴
            //保留字,
		    void consdefi();//常量定義
            void conssuff();//常量定義后綴
			//保留字;
      void varexpl();//變量說明部分
	     //保留字VAR
         void vardefi();//變量定義部分
		    //變量名(標識符) 
		    void idsuff();//標識符后綴
            //保留字:
            void typeil();//類型
            //保留字;
         void varsuff();//變量定義后綴部分(由"變量定義部分"和"變量定義后綴部分"構(gòu)成,或為空)
		    void vardefi();//變量定義部分
            void varsuff();//變量定義后綴部分
      void procdefi();//過程說明部分
         void procedh();//過程首部
		    //保留字PROCEDURE
		    //變量名(標識符) 
		    void argument();//參數(shù)部分
            //保留字;
         void block();//程序塊
         //保留字;
         void procsuff();//過程后綴
		    void procedh();//過程首部
            void block();//程序塊
            //保留字;
            void procsuff();//過程后綴
      void compsent();
	     //保留字BEGIN
         void sentence();//語句
		    //或賦值結(jié)構(gòu)
		    void assipro();
		       //變量名(標識符) 
			   void suffix();//賦值后綴,分直接賦值和調(diào)用過程賦值兩種
			      //或者保留字:=
			           void express();//表達式 
					      //保留字ADD或SUB(正負號)
                          void term();//項
			                 void factor();//因子
                             void factsuff();//因子后綴
                          void termsuff();//項后綴
			                 //保留字ADD或SUB(加型運算符)
			                 void factor();//因子
                             void factsuff();//因子后綴
                  //或者保留字(
                       void express();//表達式 
                       //保留字)
		    //或if結(jié)構(gòu)
            void ifsent();
		       //保留字IF
		       void conditio();//條件分兩種情況:ODD作用在表達式上,或者兩個表達式進行比較
			      //或者
			      //保留字
			      void express();//表達式 
				  //或者
                  void express();//表達式 
				  void respoper();//6種比較運算符
			   //保留字THEN
               void sentence();//語句
		    //或while結(jié)構(gòu)
            void whilsent();
		       //保留字WHILE
			   void conditio();//條件
               //保留字DO
               void sentence();//語句
		    //或Read()
            void read();
		       //保留字READ
			   //保留字(
               //變量名(標識符) 
               void idsuff();//標識符后綴
               //保留字)
		    //或Write()
            void write();
		       //保留字WRITE
			   //保留字(
               void express();//表達式
               void exprsuff();//表達式后綴
			      //保留字,
			      void express();//表達式
                  void exprsuff();//表達式后綴
               //保留字)
		    //或復合語句
			void compsent();
         void sentsuff();//語句后綴
		    //保留字;
		    void sentence();//語句
            void sentsuff();//語句后綴
         //保留字END
   //標識符.
 
/////////////////////////////////////////////////////////////////////////////



void main()
{
//詞法分析部分:
//////////////////////////////////////////////////////////////////////
    cout<<"詞法分析開始!!"<<endl;
	if((f1=fopen("input.txt","r"))==NULL)
	{
		cout<<"不能打開輸入文件!"<<endl;
	    exit(0);
	}
	cout<<"輸入文件為"<<"input.txt"<<endl;
	if((f2=fopen("output.txt","w"))==NULL)
	{
		cout<<"不能打開輸出文件!"<<endl;
	    exit(0);
	}
    cout<<"輸出文件為"<<"output.txt"<<endl;
	ofstream onfile;
    onfile.open("output.txt");
    while(fgets(buff,80,f1)!=NULL)
    {
      I=0;
      while(I<=strlen(buff)-2)
	  {
        Get_A_Word(onfile);
	  }
	}
    fclose(f1); fclose(f2);
    onfile.close();
    cout<<"詞法分析完畢!!"<<endl;
//////////////////////////////////////////////////////////////////////
//
//語法分析部分:
//////////////////////////////////////////////////////////////////////
	cout<<endl;
    cout<<"語法分析開始!!"<<endl;
//	ifstream infile("output.txt",ios::in|ios::nocreate);
	if (!infile)
	{
	  cout<<"不能打開輸入文件:\n";
	  exit(1);
	}
    cout<<"輸入文件為"<<"output.txt"<<endl;
	if((f2=fopen("output2.txt","w"))==NULL)
	{
		cout<<"不能打開輸出文件!"<<endl;
	    exit(0);
	}
    cout<<"輸出文件為"<<"output2.txt"<<endl;
    onfile.open("output2.txt");
/**/infile>>Code;
/**/infile>>buff;cout<<buff<<endl;
/**/program();
/**/cout<<"該程序語法正確!"<<endl;
    infile.close();
	fclose(f2);
    onfile.close();
}

///////////////////////////////////////////////////////////

/////////////////////////////////////
//程序構(gòu)成:
//   程序首部+程序塊+.
//  
void program()//程序
{
  proghead();
  block();
  if(Code==DOT)
  { 
	infile>>Code;
    infile>>buff;cout<<buff<<endl; 
  }
  else { error(2); }
};
//////

/////////////////////////////////////
//程序塊構(gòu)成:
//   常量說明部分
//   變量說明部分
//   過程說明部分
//   語句部分
//
void block()//程序塊
{ 
  consexpl();//常量說明部分
  varexpl();//變量說明部分
  procdefi();//過程說明部分
  compsent();//語句部分
};
//////

/////////////////////////////////////
//程序首部舉例:
//   program testexample;
//
void proghead()//程序首部
{
 if(Code==PROGRAM)
 {
   infile>>Code;
   infile>>buff;cout<<buff<<endl; 
   if(Code>=BEGIN_OF_V+1&&Code<=BEGIN_OF_V+MAX_NUM_OF_V)
   //此范圍為變量名(標識符)的內(nèi)碼范圍
   {
     infile>>Code;
     infile>>buff;cout<<buff<<endl; 
	 if(Code==SEM)
	 {
	   infile>>Code;
       infile>>buff;cout<<buff<<endl; 
	 }
	 else
	   error(5);
   }
   else
     error(4);
 }
 else
   error(3);
};
//////

/////////////////////////////////////
//常量說明部分構(gòu)成:
//   CONST + <常量定義> + <常量定義后綴> + ;
//   格式舉例:const  num=20, times=10, hd=0;
void consexpl()
{
  if(Code==CONST)
  {
    infile>>Code;
    infile>>buff;cout<<buff<<endl;
	consdefi();
	conssuff();
	if(Code==SEM)
	{
	  infile>>Code;
      infile>>buff;cout<<buff<<endl;
	}
	else
	{ error(6); }
  }
};
//////

/////////////////////////////////////
// <常量定義> 格式:
//  <標識符> = 數(shù)
void consdefi()
{
  if(Code>=BEGIN_OF_V+1&&Code<=BEGIN_OF_V+MAX_NUM_OF_V)
  //此范圍為變量名(標識符)的內(nèi)碼范圍
  {
    infile>>Code;
    infile>>buff;cout<<buff<<endl;
	if(Code==EQU)
	{
	  infile>>Code;
      infile>>buff;cout<<buff<<endl;
	  if(Code>=BEGIN_OF_C+1&&Code<=BEGIN_OF_C+MAX_NUM_OF_C)
      //此范圍為常量的內(nèi)碼范圍
	  {
	    infile>>Code;
        infile>>buff;cout<<buff<<endl;
	  }
	  else
	   error(9);
	}
	else
	 error(8);
  }
  else
   error(7);
}
/////////////////////////////////////
void conssuff()
{
  if(Code==COM)
  {
    infile>>Code;
    infile>>buff;cout<<buff<<endl;
	consdefi();
	conssuff();
  }
  //當Code!=COM時, void conssuff()不執(zhí)行, 
  //此時只定義了一個常量
}
/////////////////////////////////////
void varexpl()
{
  if(Code==VAR)
  {
    infile>>Code;
    infile>>buff;cout<<buff<<endl;
	vardefi();
	varsuff();
  }
}
/////////////////////////////////////
void vardefi()
{
 if(Code>=BEGIN_OF_V+1&&Code<=BEGIN_OF_V+MAX_NUM_OF_V)
 //此范圍為變量名(標識符)的內(nèi)碼范圍
 {
   infile>>Code;
   infile>>buff;cout<<buff<<endl;
   idsuff();
   if(Code==COL)
   {
     infile>>Code;
     infile>>buff;cout<<buff<<endl;
	 typeil();
	 if(Code==SEM)
	 {
	   infile>>Code;
       infile>>buff;cout<<buff<<endl;
	 }
	 else
		 error(12);
   }
   else
	   error(11);
 }
}
/////////////////////////////////////
void varsuff()
{
  if(Code>=BEGIN_OF_V+1&&Code<=BEGIN_OF_V+MAX_NUM_OF_V)
  //此范圍為變量名(標識符)的內(nèi)碼范圍
  {
    vardefi();
	varsuff();
  }
}
/////////////////////////////////////
void typeil()
{
  if(Code==INTEGER||Code==LONG)
  {
    infile>>Code;
    infile>>buff;cout<<buff<<endl; 
  }
  else
  error(13);
}
/////////////////////////////////////
void procdefi()
{
  if(Code==PROCEDURE)
  {
    procedh();
	block();
	if(Code==SEM)
	{
	  infile>>Code;
      infile>>buff;cout<<buff<<endl;  
	  procsuff();
	}
	else
	  error(14);
  }
}
/////////////////////////////////////
void procedh()
{
  if(Code==PROCEDURE)
  {
	infile>>Code;
    infile>>buff;cout<<buff<<endl;  
	if(Code>=BEGIN_OF_V+1&&Code<=BEGIN_OF_V+MAX_NUM_OF_V)
    //此范圍為變量名(標識符)的內(nèi)碼范圍
	{
	  infile>>Code;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一电影网| 日韩国产欧美在线播放| 日韩三级精品电影久久久 | 视频在线观看一区| 国产精品久久三| 日韩美女一区二区三区四区| 在线中文字幕一区二区| 粉嫩久久99精品久久久久久夜| 日韩激情中文字幕| 亚洲欧美色图小说| 国产欧美一区二区三区鸳鸯浴| 欧美一区二区三区四区在线观看| 91女神在线视频| 国产成人在线网站| 色综合天天综合狠狠| 久久狠狠亚洲综合| 日韩精品成人一区二区在线| 亚洲视频免费在线观看| 欧美国产在线观看| 亚洲精品一区二区三区香蕉| 欧美精品aⅴ在线视频| 色播五月激情综合网| 成人性生交大片免费看在线播放 | 99久久国产免费看| 国产精品一区二区黑丝| 久久丁香综合五月国产三级网站| 亚洲国产一区二区a毛片| 亚洲天堂免费在线观看视频| 国产精品毛片a∨一区二区三区| 26uuu精品一区二区三区四区在线| 在线播放国产精品二区一二区四区 | 日韩精品一区二| 欧美精品久久天天躁| 欧美日韩在线免费视频| 在线亚洲人成电影网站色www| 97se亚洲国产综合自在线观| 成人精品一区二区三区中文字幕| 成人性生交大片| 成人免费高清视频在线观看| 成人久久18免费网站麻豆| 岛国av在线一区| av一区二区三区在线| av一本久道久久综合久久鬼色| 国产成人午夜精品5599| 高清不卡一区二区| 99免费精品在线| 色综合欧美在线| 欧美日韩中文另类| 欧美男生操女生| 日韩一区二区在线看| 精品理论电影在线| 久久久久国产成人精品亚洲午夜| 久久久久久影视| 国产精品乱码一区二区三区软件| 最新日韩av在线| 亚洲国产精品自拍| 免费在线观看不卡| 国产一区二区女| 91热门视频在线观看| 欧美性色欧美a在线播放| 欧美日韩成人在线| 精品国产伦一区二区三区观看体验| 2欧美一区二区三区在线观看视频| 日本一区二区视频在线| 亚洲欧美电影院| 日韩电影在线一区| 国产一区二区三区免费| 99国产欧美久久久精品| 欧美日本精品一区二区三区| 久久久精品影视| 亚洲精品欧美综合四区| 蜜臀av一区二区在线免费观看 | 亚洲永久精品大片| 免费成人av在线播放| 国产成人一区二区精品非洲| 欧美最猛性xxxxx直播| 日韩精品一区二区三区三区免费| 日韩不卡一二三区| 成人激情动漫在线观看| 欧美日韩国产在线观看| 久久精品在这里| 亚洲第一在线综合网站| 韩国中文字幕2020精品| 欧洲国内综合视频| 久久一区二区视频| 亚洲午夜一区二区三区| 国产剧情一区二区| 欧美日韩亚洲另类| 国产精品你懂的在线欣赏| 亚洲成av人片在线| 成人一级片网址| 日韩欧美国产综合一区| 亚洲精品久久嫩草网站秘色| 狠狠色丁香婷综合久久| 欧美日韩黄色一区二区| 国产精品久久久久一区二区三区 | 欧美一级专区免费大片| 亚洲婷婷在线视频| 国产乱子轮精品视频| 欧美日韩精品是欧美日韩精品| 国产日韩欧美高清| 免费成人av在线播放| 欧美亚洲另类激情小说| 中文在线免费一区三区高中清不卡| 三级在线观看一区二区| 色噜噜狠狠色综合欧洲selulu| 久久精品亚洲一区二区三区浴池 | 91久久久免费一区二区| 国产网站一区二区三区| 老司机午夜精品| 欧美日韩一区二区三区在线| 国产精品久久久久久久久快鸭 | 国产亚洲短视频| 久久精品国产成人一区二区三区| 在线视频一区二区免费| 国产精品三级av| 国产一区二区三区香蕉| 91精品国产欧美一区二区18| 亚洲国产色一区| 色婷婷综合久久久久中文| 中文一区二区在线观看| 国产综合色在线| 欧美不卡一区二区三区| 热久久国产精品| 欧美乱妇一区二区三区不卡视频| 亚洲一区在线视频观看| 色哟哟一区二区三区| 亚洲日本欧美天堂| www.欧美亚洲| 最新国产精品久久精品| 99久久免费视频.com| 亚洲欧洲日韩综合一区二区| 成人免费视频一区| 国产精品大尺度| av中文字幕在线不卡| 国产精品久久国产精麻豆99网站 | 欧美一区二区日韩| 奇米影视一区二区三区小说| 在线不卡一区二区| 天天操天天综合网| 日韩欧美中文字幕精品| 久久国产免费看| 亚洲精品一区二区精华| 欧美一区二区三区视频免费 | 久久福利资源站| 久久精品无码一区二区三区| 国产成人精品三级麻豆| 国产精品高潮呻吟| 91黄色免费版| 视频在线观看一区| 精品国产乱码久久久久久1区2区 | 日韩精品一区二区在线观看| 韩国理伦片一区二区三区在线播放| 精品精品国产高清一毛片一天堂| 国产乱码精品一区二区三区av| 国产欧美日韩在线看| 91日韩一区二区三区| 丝袜诱惑亚洲看片| 精品国产一区二区三区av性色 | 91在线精品一区二区| 一区二区三区在线视频免费| 欧美日韩免费一区二区三区视频 | 六月丁香婷婷色狠狠久久| 久久久久久久综合日本| 91浏览器在线视频| 午夜视频久久久久久| 精品国产一区二区三区不卡| 97久久久精品综合88久久| 日本欧美在线看| 国产精品对白交换视频| 91精品国产91热久久久做人人| 国产老女人精品毛片久久| 亚洲一区av在线| 精品99久久久久久| 色猫猫国产区一区二在线视频| 美国三级日本三级久久99| 国产精品三级在线观看| 91精品国产福利| 91丝袜美腿高跟国产极品老师| 日韩av中文在线观看| 中文字幕 久热精品 视频在线 | 亚洲人成电影网站色mp4| 777色狠狠一区二区三区| 国产成人精品一区二| 婷婷综合另类小说色区| 国产精品色呦呦| 制服丝袜av成人在线看| 不卡一区中文字幕| 奇米在线7777在线精品| 亚洲精品乱码久久久久久黑人| 欧美成人三级电影在线| 欧美在线free| 粗大黑人巨茎大战欧美成人| 香蕉久久夜色精品国产使用方法 | 午夜精品免费在线| 国产欧美日韩精品a在线观看| 欧美精品国产精品| 99精品久久免费看蜜臀剧情介绍| 捆绑变态av一区二区三区| 一区二区三区**美女毛片|