91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 391KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-15
  • 語言: 其他
  • 標簽: 東南大學??

資源簡介

東南大學編譯原理課程設計,學長源碼,還有實驗報告

資源截圖

代碼片段和文件信息

#pragma?warning(disable:4786)
#include
#include
#include
#include
#include
#include
#include
#include“NFA.h“
using?namespace?std;
#define?ERROR??-1;
#define?BEGIN???1;
#define?END?????2;
#define?SEGMENT?3;
ifstream?ifile;
ofstream?ofile;
int?lines=0;
mapreTable;
mapreaction;
vector?actionTable;
struct?RE{
string?one;
string?two;
struct?*next;
}RE;

int?check(char?ch)//判斷%下一個字符串是什么
{
if(ch==‘%‘)
{
char?nextch=ifile.get();
switch(nextch)
{
case?‘{‘:return?BEGIN;
case?‘}‘:return?END;
case?‘%‘:return?SEGMENT;
default:ifile.seekg(-1ios::cur);
break;
}
}
return?ERROR;
}
bool?IsLetterNum(char?ch)//判斷規則部分字符串是否符合規則
{
if?((ch<=‘9‘&&ch>=‘0‘)||(ch<=‘z‘&&ch>=‘a‘)||(ch<=‘Z‘&&ch>=‘A‘))
{
return?true;
}
return?false;
}

bool?compleRe(string?&re)//把規則部分轉化成正則表達式
{
int?intcount;
string?str=““;
string?temp;
map::iterator?iter;
int?i=0;
int?j;
int?offset;
char?ch=re[i];
while(ch!=‘\0‘)
{
switch(ch)
{
case‘[‘:
str.append(1‘(‘);
ch=re[++i];
continue;
break;
case‘]‘:
str.append(1‘)‘);
ch=re[++i];
break;
case‘-‘:
{
char?before=re[i-1];
char?after=re[i+1];
str.erase(str.length()-11);
if(IsLetterNum(re[i-2]))
{
str.append(1‘|‘);
}
while(before {
str.append(1before);
str.append(1‘|‘);
before++;
}
str.append(1after);
ch=re[i+2];
i=i+2;
break;
}
case‘{‘:
offset=re.find_first_of(‘}‘i);
for(j=i+1;j {
temp.append(1re[j]);
}
iter=reTable.find(temp);
intcount=reTable.count(temp);
if(intcount<=0)
{
return?false;
}
if(iter!=reTable.end())
{
str.append(1‘(‘);
str.append(iter->second);
str.append(1‘)‘);
}
temp=““;
i=offset;
ch=re[++i];
break;
case‘+‘:
str.append(1re[i-1]);
str.append(1‘*‘);
ch=re[++i];
case‘|‘:
str.append(1‘|‘);
ch=re[++i];
break;
case‘“‘:
offset=re.find_first_of(‘“‘i+1);
temp=re.substr(i+1offset-i-1);
str.append(1‘(‘);
str.append(temp);
str.append(1‘)‘);
i=offset;
ch=re[++i];
break;
default:
str.append(1ch);
ch=re[++i];
break;
}
}
re=str;
return?true;
}

void?GenerateCode(DFA?&?dfa);
int?main()
{
NFA?nfa1;
ofile.open(“yylex.cpp“ios::out);
????ifile.open(“test.txt“ios::out);
if(!ifile)
{
cerr<<“File?could?not?be?opened“< exit(1);
}
char?ch;
ch=ifile.get();
int?state;
state=check(ch);
if(state!=1)
{
cerr<<“The?formation?of?the?inputfile?is?wrong“< exit(1);
}
while(!ifile.eof()&&state!=2)
{
char?nextch=ifile.get();
//if(nextch==‘\t‘||nextch==‘?‘)
//continue;
if(nextch==‘%‘)
{
state=check(nextch);
continue;
}
if(next

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-08-31?08:45??090091黃海匯\
?????文件??????264900??2012-06-05?11:04??090091黃海匯\lex?yacc.pptx
?????文件??????109258??2012-06-02?01:14??090091黃海匯\lex實驗報告.docx
?????目錄???????????0??2015-08-31?08:45??090091黃海匯\seulex\
?????文件???????18006??2015-06-09?14:18??090091黃海匯\seulex\DFA.CPP
?????文件????????2387??2012-06-02?10:42??090091黃海匯\seulex\DFA.H
?????文件????????1880??2012-05-17?11:50??090091黃海匯\seulex\graph.h
?????文件????????8521??2015-06-05?16:34??090091黃海匯\seulex\lex.cpp
?????文件???????13118??2012-05-30?00:37??090091黃海匯\seulex\NFA.CPP
?????文件????????2536??2012-06-02?02:21??090091黃海匯\seulex\NFA.H
?????文件???????12934??2012-05-17?14:07??090091黃海匯\seulex\ourlex.cpp
?????文件?????????534??2012-06-02?15:00??090091黃海匯\seulex\test.txt
?????文件???????????0??2012-06-02?15:00??090091黃海匯\seulex\yylex.cpp
?????目錄???????????0??2015-08-31?08:45??090091黃海匯\yacc\
?????文件?????????110??2012-06-02?02:11??090091黃海匯\yacc\mini.txt
?????文件????????3104??2012-06-02?01:22??090091黃海匯\yacc\minic.txt
?????文件???????24160??2012-06-02?14:45??090091黃海匯\yacc\table.txt
?????文件???????16488??2012-06-02?14:45??090091黃海匯\yacc\yacc.cpp
?????文件???????34412??2012-06-04?19:11??090091黃海匯\yacc實驗報告.docx

評論

共有 條評論