资源简介
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
评论
共有 条评论