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

資源簡介

用c++實現的一個簡單的編譯器,可以由一段程序經過詞法語法語義分析產生類似于匯編的中間代碼。

資源截圖

代碼片段和文件信息

//?SemanticAnalyse.cpp?:?定義控制臺應用程序的入口點。
//

#include?“stdafx.h“

using?namespace?std;
//**************************************語法分析***********************************************
//定義樹節點
typedef?struct?node
{
????string?name;
????int?type;
????int?subid;
????struct?node?*?child;
????struct?node?*?next;
}?NODE;

NODE?*?root;
stack?NodeStack;
stack?StringStack;??????//字符串棧記錄符號
stack?TempStack;

map?FinishSymbol;????????????????//終結符
map?nonfinishSymbol;???????????????//非終結符
vector?AnalysisTable[18][18];???????//存儲預測分析表
vector?>?Token;???//存儲Token序列
vector?grammar[24];??//文法字符串

void?Initialize();????????????//初始化預測分析表
string?GetWord(FILE*?fpint*?flag);???//從回車和空格之間讀出一個單詞
string?FindWord(string?strint*?id);
void?SaveTokenTo(FILE*?fp);????//讀取文件中的token到內存中
void?CreateTree();

//初始化預測分析表
void?Initialize()
{
????//初始化root
????root?=?new?NODE();
????root->name?=?“P“;
????root->subid?=?nonfinishSymbol[“P“];
????root->type?=?0;
root->next?=?NULL;
????//初始化終結符
????FinishSymbol.insert(pair(“id“0));
????FinishSymbol.insert(pair(“num“1));
????FinishSymbol.insert(pair(“(“2));
????FinishSymbol.insert(pair(“)“3));
????FinishSymbol.insert(pair(“{“4));
????FinishSymbol.insert(pair(“}“5));
????FinishSymbol.insert(pair(“;“6));
????FinishSymbol.insert(pair(“if“7));
????FinishSymbol.insert(pair(“else“8));
????FinishSymbol.insert(pair(“while“9));
????FinishSymbol.insert(pair(“!“10));
????FinishSymbol.insert(pair(“=“11));
????FinishSymbol.insert(pair(“int“12));
????FinishSymbol.insert(pair(“relop“13));
????FinishSymbol.insert(pair(“addop“14));
????FinishSymbol.insert(pair(“mulop“15));
????FinishSymbol.insert(pair(“#“16));
????//初始化非終結符
????nonfinishSymbol.insert(pair(“Program“0));
????nonfinishSymbol.insert(pair(“Slist“1));
????nonfinishSymbol.insert(pair(“Dlist“2));
????nonfinishSymbol.insert(pair(“Dtemp“3));
????nonfinishSymbol.insert(pair(“D“4));
????nonfinishSymbol.insert(pair(“type“5));
????nonfinishSymbol.insert(pair(“Olist“6));
????nonfinishSymbol.insert(pair(“Otemp“7));
????nonfinishSymbol.insert(pair(“O“8));
????nonfinishSymbol.insert(pair(“iftemp“9));
????nonfinishSymbol.insert(pair(“ex“10));
????nonfinishSymbol.insert(pair(“ex_temp“11));
????nonfinishSymbol.insert(pair(“sim_ex“12));
????nonfinishSymbol.insert(pair(“sim_ex_temp“13));
????nonfinishSymbol.insert(pair(“term“14));
????nonfinishSymbol.insert(pair(“termtemp“15));
????nonfinishSymbol.insert(pair(“factor“16))

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????225280??2008-12-31?19:58??SemanticAnalyse\debug\SemanticAnalyse.exe

?????文件?????767944??2008-12-31?19:58??SemanticAnalyse\debug\SemanticAnalyse.ilk

?????文件????2214912??2008-12-31?19:58??SemanticAnalyse\debug\SemanticAnalyse.pdb

?????文件????????364??2008-12-31?19:56??SemanticAnalyse\SemanticAnalyse\aaa.txt

?????文件????????215??2008-11-30?21:57??SemanticAnalyse\SemanticAnalyse\aaa.txt.bak

?????文件???????8044??2008-12-31?19:58??SemanticAnalyse\SemanticAnalyse\Debug\BuildLog.htm

?????文件?????????67??2008-12-31?19:58??SemanticAnalyse\SemanticAnalyse\Debug\mt.dep

?????文件????????403??2008-12-28?20:36??SemanticAnalyse\SemanticAnalyse\Debug\SemanticAnalyse.exe.embed.manifest

?????文件????????468??2008-12-28?20:36??SemanticAnalyse\SemanticAnalyse\Debug\SemanticAnalyse.exe.embed.manifest.res

?????文件????????385??2008-12-31?19:58??SemanticAnalyse\SemanticAnalyse\Debug\SemanticAnalyse.exe.intermediate.manifest

?????文件????1045235??2008-12-31?19:58??SemanticAnalyse\SemanticAnalyse\Debug\SemanticAnalyse.obj

?????文件????8388608??2008-12-29?12:16??SemanticAnalyse\SemanticAnalyse\Debug\SemanticAnalyse.pch

?????文件??????35030??2008-12-29?12:16??SemanticAnalyse\SemanticAnalyse\Debug\stdafx.obj

?????文件?????281600??2008-12-31?19:58??SemanticAnalyse\SemanticAnalyse\Debug\vc80.idb

?????文件?????372736??2008-12-31?19:58??SemanticAnalyse\SemanticAnalyse\Debug\vc80.pdb

?????文件????????332??2009-04-06?21:02??SemanticAnalyse\SemanticAnalyse\output.txt

?????文件????????998??2008-12-28?20:36??SemanticAnalyse\SemanticAnalyse\ReadMe.txt

?????文件??????24369??2008-12-31?19:58??SemanticAnalyse\SemanticAnalyse\SemanticAnalyse.cpp

?????文件???????4511??2008-12-28?20:36??SemanticAnalyse\SemanticAnalyse\SemanticAnalyse.vcproj

?????文件???????1427??2009-04-06?21:02??SemanticAnalyse\SemanticAnalyse\SemanticAnalyse.vcproj.PC-200810202201.Administrator.user

?????文件???????1411??2008-12-29?17:10??SemanticAnalyse\SemanticAnalyse\SemanticAnalyse.vcproj.soft093.soft.user

?????文件????????358??2008-12-21?20:27??SemanticAnalyse\SemanticAnalyse\source.txt

?????文件????????220??2008-12-28?20:36??SemanticAnalyse\SemanticAnalyse\stdafx.cpp

?????文件????????488??2008-12-29?12:16??SemanticAnalyse\SemanticAnalyse\stdafx.h

?????文件????1805312??2009-04-06?21:02??SemanticAnalyse\SemanticAnalyse.ncb

?????文件????????910??2008-12-28?20:36??SemanticAnalyse\SemanticAnalyse.sln

????..A..H.?????18432??2009-04-06?21:02??SemanticAnalyse\SemanticAnalyse.suo

?????目錄??????????0??2008-12-31?19:58??SemanticAnalyse\SemanticAnalyse\Debug

?????目錄??????????0??2008-12-31?19:58??SemanticAnalyse\debug

?????目錄??????????0??2008-12-31?19:58??SemanticAnalyse\SemanticAnalyse

............此處省略4個文件信息

評論

共有 條評論