資源簡介
編譯原理.rar

代碼片段和文件信息
#include
#include
#include“stdio.h“
#include“conio.h“
#include“iomanip“
#include
#include
#include
using?namespace?std;
#define?K_ZIFU????????0//標識符
#define?K_SUANFU???????1//運算符
#define?K_SHUZI???????2//常數
#define?K_JIEFU????????3//邊界符
#define?K_KONG?????????4//空格
#define?K_HUANGHANG????5//換行
#define?K_BAOLIUZI????6//保留字
#define?OVER???????????7
#define?NOTOVER????????8
char?*const_0[6]={?“for““if“?“else“?“goto“?“continue““break“};
char??const_1[6]={‘*‘‘+‘‘-‘‘=‘‘>‘‘<‘};
char??const_3[7]={‘;‘‘#‘‘(‘‘)‘‘{‘‘}‘‘/‘};?
int?????K_now;?????????//現在的類型
int?????K_will;????????//being到的字符的類型
char????temp_char;?????//being到的字符
char????temp_chars[255];
bool????flag;
bool????flag0;
int?????amount=1;??
char?name1[100];
char?name2[100];
char?name3[100];
char?name4[100];??
ifstream???infile0infile1infile2;???????
ofstream???outfile0outfile1outfile2outfile3;???
queue?charque;
queue?charque0;
stack?charstr;
struct?shuchustr{
???queue??charque;
???char???bchar;
???int????gto;
};
shuchustr?strstr0;
int?initial1()
{
???infile1.open(“a.txt“ios::in|ios::binary);
???if(!?infile1)
???{
???cout<<“?打開文件失敗!“< ???return?0;
???}
???else
???{
???????outfile1.open(“b.txt“ios::out);
???????outfile0.open(“c.txt“ios::out);
???return?1;
???}
}
int?initial2()
{
???infile2.open(“b.txt“ios::in);
???if(!infile2)
???{
???cout<<“?打開文件失敗!“< ???return?0;
???}
???else
???{
???????outfile2.open(“d.txt“ios::out);
???return?1;
???}
}
int?initial0()
{
???infile0.open(“c.txt“ios::in);
???if(!infile0)
???{
???cout<<“?打開文件失敗!“< ???return?0;
???}
???else
???return?1;
}
int?read_char()
{
???infile1.get(temp_char);
???if(infile1.eof())
???{
??????return?OVER;
???}
???return?NOTOVER;
}
void?write_char()
{
outfile1< if(K_now==0)?
{
charque0.push(“id“);
????????charque.push(temp_chars);
}
else?if(K_now==2)?
{
charque0.push(“n“);
????????charque.push(temp_chars);
}
????else?
{
charque0.push(temp_chars);
????????charque.push(temp_chars);
}
}
int?KIND()
{
??int?i=0;
??if(temp_char==‘?‘||temp_char==‘\n‘||temp_char==‘\t‘||temp_char==‘\r‘)
??{//?空格?回車?轉行
??return?K_KONG;
??}
??for(i=0;i<7;++i)
??{
??if(const_3[i]==temp_char)
??{
??????return?K_JIEFU;?//隔離??“(“??“)“??“[“??“]“
??}
??}
??for(i=0;i<6;++i)
??{
??if(temp_char==const_1[i])
??{
??????return?K_SUANFU;?//基本字符
??}
??}
??if(temp_char>=‘0‘&&temp_char<=‘9‘)
??{
??????return?K_SHUZI;
??}
??if(temp_char>=‘a‘&&temp_char<=‘z‘||temp_char>=‘A‘&&temp_char<=‘Z‘||temp_char==‘_‘)
??{
??????return?K_ZIFU;
??}
??return?OVER;
}
void?analyse_suanfu()
{
?????write_char();
}
void?analyse_kong()
{
???while(read_char())
???{
???????K_will=KIND();
???????if(K_will!=K_KONG)
???{
???infile1.seekg
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????15184??2009-06-22?02:15??編譯原理\11.cpp
?????文件??????80896??2009-06-22?04:38??編譯原理\封面.doc
?????文件?????279552??2009-06-22?04:45??編譯原理\正文.doc
?????文件??????28160??2009-06-22?04:43??編譯原理\目錄和任務書.doc
?????文件??????32256??2009-06-22?01:14??編譯原理\評定表.doc
?????目錄??????????0??2009-06-22?04:52??編譯原理
-----------?---------??----------?-----??----
???????????????436048????????????????????6
- 上一篇:數據結構課程設計之客戶積分管理系統
- 下一篇:最新版信息系統項目管理師視頻教程
評論
共有 條評論