• 大小: 15KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-07-07
  • 语言: Java
  • 标签:

资源简介

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

评论

共有 条评论

相关资源