資源簡介
java平臺對輸入的表達式進行了簡單的詞法分析(注意:輸入只能在txt中輸入!!!),用算符優先分析方法分析表達式是否合法,程序能給出語法的分析過程和表達式的結果。由于C語言的運算符較多,導致算符運算關系表比較大,所以每種表達式選擇了一種符號作為代表。壓縮包中給了多個用例。

代碼片段和文件信息
package?test;
import?java.awt.BorderLayout;
import?java.awt.Desktop;
import?java.awt.FlowLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileNotFoundException;
import?java.io.FileReader;
import?java.io.IOException;
import?java.util.Stack;
import?javax.swing.JButton;
import?javax.swing.JFileChooser;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JPanel;
import?javax.swing.JScrollPane;
import?javax.swing.JTextArea;
import?javax.swing.JTextField;
public?class?test?{
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
fame?f;
f=new?fame();?
f.build();?
}
}
class?fi
{
File?file;
String?f()
{
file=new?File(“所要分析的表達式.txt“);
BufferedReader?bre?=?null;
try?{
bre?=?new?BufferedReader(new?FileReader(file));
}?catch?(FileNotFoundException?e1)
{
//?TODO?Auto-generated?catch?block
e1.printStackTrace();
}
String?t=null;
StringBuffer?sbu=new?StringBuffer();
try?{
t=bre.readLine();
}?catch?(IOException?e1)?{
//?TODO?Auto-generated?catch?block
e1.printStackTrace();
}
?while(t!=null)
?{
?sbu.append(t+“\n“);
?try?{
t=bre.readLine();
}?catch?(IOException?e1)?{
//?TODO?Auto-generated?catch?block
e1.printStackTrace();
}
?}
?try?{
bre.close();
}?catch?(IOException?e1)?{
//?TODO?Auto-generated?catch?block
e1.printStackTrace();
}
?//讀文件
//設置界面
??String?str1=sbu.toString();
??return?str1;
?}
}
class?fame?implements?ActionListener
{
?char?[]op={‘#‘‘‘‘=‘‘$‘‘?‘‘!‘‘>‘‘+‘‘*‘‘@‘‘(‘‘~‘‘)‘‘a‘‘:‘‘[‘‘]‘‘i‘};
char[][]?gx={
{‘=‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘?‘‘<‘‘?‘‘<‘‘?‘‘<‘}
{‘>‘‘>‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘>‘‘<‘‘?‘‘<‘‘?‘‘<‘}
{‘>‘‘>‘‘?‘‘?‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘>‘‘<‘‘?‘‘<‘‘?‘‘<‘}
{‘>‘‘>‘‘?‘‘?‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘>‘‘<‘‘?‘‘<‘‘?‘‘<‘}
{‘?‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘?‘‘<‘‘=‘‘<‘‘?‘‘<‘}
{‘>‘‘>‘‘?‘‘?‘‘>‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘>‘‘<‘‘>‘‘<‘‘?‘‘<‘}
{‘>‘‘>‘‘?‘‘?‘‘>‘‘?‘‘?‘‘<‘‘<‘‘<‘‘<‘‘<‘‘>‘‘<‘‘>‘‘<‘‘?‘‘<‘}
{‘>‘‘>‘‘?‘‘?‘‘>‘‘?‘‘>‘‘?‘‘<‘‘<‘‘<‘‘<‘‘>‘‘<‘‘>‘‘<‘‘?‘‘<‘}
{‘>‘‘>‘‘?‘‘?‘‘>‘‘?‘‘>‘‘>‘‘?‘‘<‘‘<‘‘<‘‘>‘‘<‘‘>‘‘<‘‘?‘‘<‘}
{‘>‘‘>‘‘?‘‘?‘‘>‘‘?‘‘>‘‘>‘‘>‘‘>‘‘?‘‘?‘‘>‘‘?‘‘>‘‘?‘‘>‘‘?‘}
{‘?‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘=‘‘<‘‘?‘‘<‘‘?‘‘<‘}
{‘>‘‘>‘‘?‘‘?‘‘>‘‘?‘‘>‘‘>‘‘>‘‘>‘‘?‘‘<‘‘>‘‘<‘‘>‘‘?‘‘>‘‘<‘}
{‘>‘‘>‘‘?‘‘?‘‘>‘‘?‘‘>‘‘>‘‘>‘‘>‘‘?‘‘?‘‘>‘‘?‘‘>‘‘?‘‘>‘‘?‘}
{‘>‘‘>‘‘>‘‘>‘‘>‘‘?‘‘>‘‘>‘‘>‘‘>‘‘?‘‘?‘‘>‘‘?‘‘>‘‘?‘‘>‘‘?‘}
{‘>‘‘>‘‘?‘‘?‘‘?‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘>‘‘<‘‘?‘‘<‘‘>‘‘<‘}
{‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘<‘
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-30?22:51??編譯課設\
?????文件?????????301??2018-01-20?19:20??編譯課設\.classpath
?????文件?????????380??2018-01-20?19:20??編譯課設\.project
?????目錄???????????0??2018-04-30?22:51??編譯課設\.settings\
?????文件?????????598??2018-01-20?19:20??編譯課設\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2018-04-30?22:51??編譯課設\bin\
?????目錄???????????0??2018-04-30?22:51??編譯課設\bin\test\
?????文件????????2171??2018-01-22?15:28??編譯課設\bin\test\changetoa.class
?????文件???????12863??2018-01-22?15:28??編譯課設\bin\test\fame.class
?????文件????????1570??2018-01-22?15:28??編譯課設\bin\test\fi.class
?????文件?????????451??2018-01-22?15:28??編譯課設\bin\test\test.class
?????目錄???????????0??2018-04-30?22:51??編譯課設\src\
?????目錄???????????0??2018-04-30?22:51??編譯課設\src\test\
?????文件???????14386??2018-01-22?15:28??編譯課設\src\test\test.java
?????文件???????????7??2018-01-22?15:31??編譯課設\所要分析的表達式.txt
?????文件?????????121??2018-01-22?15:13??編譯課設\測試案例.txt
- 上一篇:Java實現的進銷存管理軟件
- 下一篇:學生選課教務系統java MySql
評論
共有 條評論