資源簡介
Java實現PL0詞法分析、語法分析、語義分析。有圖形化界面,操作簡單,代碼注釋良好,適合編譯原理課設實踐,絕對包你滿意

代碼片段和文件信息
import?java.util.ArrayList;
import?java.util.List;
/**
?*?created?by?shiyi?on?2016/12/14
?*?保存所有Pcode指令
?*/
public?class?AllPcode?{
List?allPcode;
???/**
????*????代碼的具體形式:
????*????FLA
????*????其中:F段代表偽操作碼
????*???????L段代表調用層與說明層的層差值
????*???????A段代表位移量(相對地址)
????*????進一步說明:
????*????INT:為被調用的過程(包括主過程)在運行棧S中開辟數據區,這時A段為所需數據單元個數(包括三個連接數據);L段恒為0。
????*????CAL:調用過程,這時A段為被調用過程的過程體(過程體之前一條指令)在目標程序區的入口地址。
????*????LIT:將常量送到運行棧S的棧頂,這時A段為常量值。
????*????LOD:將變量送到運行棧S的棧頂,這時A段為變量所在說明層中的相對位置。
????*????STO:將運行棧S的棧頂內容送入某個變量單元中,A段為變量所在說明層中的相對位置。
????*????JMP:無條件轉移,這時A段為轉向地址(目標程序)。
????*????JPC:條件轉移,當運行棧S的棧頂的布爾值為假(0)時,則轉向A段所指目標程序地址;否則順序執行。
????*????OPR:關系或算術運算,A段指明具體運算,例如A=2代表算術運算“+”;A=12代表關系運算“>”等等。運算對象取自運行棧S的棧頂及次棧頂。
????*
????*????OPR?0?0 過程調用結束后返回調用點并退棧
????*????OPR?0?1 棧頂元素取反
????*????OPR?0?2 次棧頂與棧頂相加,退兩個棧元素,結果值進棧
????*????OPR?0?3 次棧頂減去棧頂,退兩個棧元素,結果值進棧
????*????OPR?0?4 次棧頂乘以棧頂,退兩個棧元素,結果值進棧
????*????OPR?0?5 次棧頂除以棧頂,退兩個棧元素,結果值進棧
????*????OPR?0?6 棧頂元素的奇偶判斷,結果值在棧頂
????*????OPR?0?7
????*????OPR?0?8 次棧頂與棧頂是否相等,退兩個棧元素,結果值進棧
????*????OPR?0?9 次棧頂與棧頂是否不等,退兩個棧元素,結果值進棧
????*????OPR?0?10 次棧頂是否小于棧頂,退兩個棧元素,結果值進棧
????*????OPR?0?11 次棧頂是否大于等于棧頂,退兩個棧元素,結果值進棧
????*????OPR?0?12 次棧頂是否大于棧頂,退兩個棧元素,結果值進棧
????*????OPR?0?13 次棧頂是否小于等于棧頂,退兩個棧元素,結果值進棧
????*????OPR?0?14 棧頂值輸出至屏幕
????*????OPR?0?15 屏幕輸出換行
????*????OPR?0?16 從命令行讀入一個輸入置于棧頂
????*/
public?AllPcode()?{
allPcode?=?new?ArrayList();
}
public?List?getAllPcode()?{
return?allPcode;
}
public?int?getPcodePtr()?{
return?allPcode.size();
}
public?void?gen(PerPcode?pcode)?{
allPcode.add(pcode);
}
public?void?gen(Operator?L?int?F?int?A)?{
allPcode.add(new?PerPcode(L?F?A));
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????295??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\.classpath
?????文件??????????7??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\.gitignore
?????文件????????369??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\.project
?????文件????????587??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\.settings\org.eclipse.jdt.core.prefs
?????文件?????374649??2018-10-30?19:39??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\compile?document.docx
?????文件???????2963??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\AllPcode.java
?????文件???????2616??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\AllSymbol.java
?????文件??????24721??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\GSAnalysis.java
?????文件???????8827??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\Interpreter.java
?????文件???????5416??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\LexAnalysis.java
?????文件??????11625??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\MyCompiler.java
?????文件????????142??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\Operator.java
?????文件????????468??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\PerPcode.java
?????文件???????1816??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\PerSymbol.java
?????文件????????489??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\SymType.java
?????文件????????644??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src\Token.java
?????文件????????385??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\testPL0\demo1.txt
?????文件????????375??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\testPL0\demo2.txt
?????文件????????784??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\testPL0\demo3.txt
?????文件????????113??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\testPL0\demo4.txt
?????文件????????104??2017-09-27?15:17??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\testPL0\demo5.txt
?????目錄??????????0??2018-10-30?23:53??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\.settings
?????目錄??????????0??2018-10-30?23:53??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\src
?????目錄??????????0??2018-10-30?23:53??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析\testPL0
?????目錄??????????0??2019-05-27?20:47??java\基于Java語言的PL0文法分析器-詞法分析、語法分析、語義分析
?????目錄??????????0??2019-05-27?20:47??java
-----------?---------??----------?-----??----
???????????????437395????????????????????26
- 上一篇:俄羅斯方塊可行性研究報告
- 下一篇:Excel轉json
評論
共有 條評論