資源簡介
java模擬編譯器,實(shí)現(xiàn)詞法,語法分析,生成語法樹

代碼片段和文件信息
package?analyzer;
/**
?*?Created?by?myz?on?2016/6/29.
?*/
import?javax.swing.*;
import?java.util.ArrayList;
public?class?LexAnalysis?{
????private?JTextArea?errorArea;
????public?ArrayList?tokenlist=new?ArrayList<>();
????String[]?sss;
????public?LexAnalysis(JTextArea?jTextArea){
????????this.errorArea=jTextArea;
????}
????public??ArrayList?lexical_analysis(String?input)?{
????????String?s?=?input;
????????char[]?a?=?s.toCharArray();//char數(shù)組
????????int?Lnumber?=?0;//左括號(hào)的數(shù)目
????????int?Rnumber?=?0;//右括號(hào)的數(shù)目
????????int?Istrue?=?0;//是否錯(cuò)誤?0為沒有錯(cuò)誤?1為有錯(cuò)誤
????????int[]?b?=?new?int[a.length];//整數(shù)型
????????for?(int?ii?=?0;?ii?????????????b[ii]?=?(int)?a[ii];
????????}
????????for?(int?i?=?0;?i?
????????????if?(i?==?0)?{
????????????????if?(b[i]?>?47?&&?b[i]?58)
????????????????{
????????????????????//Llist.set(0“s“);
????????????????????//Llist.remove(1);
????????????????????//a[i]?=?‘s‘;
????????????????}
????????????????if?(b[i]?48?||?b[i]?>?57)?{
????????????????????if?(b[i]?!=?40?&&?b[i]?!=?41?&&?b[i]?!=?42?&&?b[i]?!=?43?&&?b[i]?!=?45?&&?b[i]?!=?47)?{
????????????????????????System.out.println(“不能識(shí)別的運(yùn)算符!“);
????????????????????????errorArea.append(“error:不能識(shí)別的運(yùn)算符!\n“);
????????????????????????Istrue?=?1;
????????????????????????break;
????????????????????}
????????????????????if?(b[i]?!=?40)?{
????????????????????????System.out.println(“運(yùn)算式首位不能是運(yùn)算符!“);
????????????????????????errorArea.append(“error:運(yùn)算式首位不能是運(yùn)算符!\n“);
????????????????????????Istrue?=?1;
????????????????????????break;
????????????????????}
????????????????}
????????????????if?(b[i]?==?40)?{
????????????????????//b[i]==40是左括號(hào)
????????????????????Lnumber++;
????????????????????//System.out.println(“bixie“);
????????????????????int?ssss?=?0;//判斷是否有右括號(hào)
????????????????????if?(b[i?+?1]?==?41)?{
????????????????????????System.out.println(“左右括號(hào)之間不能為空!“);
????????????????????????errorArea.append(“error:左右括號(hào)之間不能為空!\n“);
????????????????????????Istrue?=?1;
????????????????????????break;
????????????????????}
????????????????????if?(b[i?+?1]?==?43?||?b[i?+?1]?==?45?||?b[i?+?1]?==?42?||?b[i?+?1]?==?47)?{
????????????????????????System.out.println(“左括號(hào)右側(cè)不能是運(yùn)算符!“);
????????????????????????errorArea.append(“error:左括號(hào)右側(cè)不能是運(yùn)算符!\n“);
????????????????????????Istrue?=?1;
????????????????????????break;
????????????????????}
????????????????????for?(int?j?=?i;?j?????????????????????????//b[j]=(int)a[j];
????????????????????????if?(b[j]?==?41)?{
????????????????????????????ssss?=?1;
????????????????????????????//break;
????????????????????????}
????????????????????}
????????????????????if?(ssss?==?0)?{
????????????????????????System.out.println(“左括號(hào)不能找到與之匹配的右括號(hào)!“);
????????????????????????errorArea.append(“error:左括號(hào)不能找到與之匹配的右括號(hào)!\n“);
????????????????????????Istrue?=?1;
????????????????????????break;
????????????????????}
????????????????}
????????????}//首位
????????????else?if?(i+1?==?a.length?)
????????????{
????????????????if
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????11367??2016-06-29?20:17??src\analyzer\LexAnalysis.java
?????文件??????10206??2016-06-29?20:12??src\analyzer\SLRParsing.java
?????文件???????2840??2016-06-29?19:26??src\analyzer\Wordsplit.java
?????文件?????????89??2016-06-29?19:49??src\bean\Grammar.java
?????文件???????7664??2016-06-29?20:22??src\client\compilerCilent.java
?????文件???????3204??2016-06-29?20:22??src\client\compilerCilent.jfd
?????文件???????2088??2016-06-29?20:19??src\client\paintTree.java
?????文件????????192??2016-06-29?14:52??src\tree\Nodes.java
?????文件???????1693??2016-06-29?14:52??src\tree\TernaryTree.java
?????目錄??????????0??2016-06-29?20:17??src\analyzer
?????目錄??????????0??2016-06-29?19:49??src\bean
?????目錄??????????0??2016-06-29?20:22??src\client
?????目錄??????????0??2016-06-29?14:52??src\tree
?????目錄??????????0??2016-06-29?19:45??src
-----------?---------??----------?-----??----
????????????????39343????????????????????14
評(píng)論
共有 條評(píng)論