• 大小: 5KB
    文件类型: .java
    金币: 2
    下载: 1 次
    发布日期: 2021-10-30
  • 语言: Java
  • 标签: 编译原理  ,JAVA  

资源简介

该文件为符号串的最左和最右推导的代码 具体使用JAVA软件实现 简单易懂

资源截图

代码片段和文件信息

package compiler;

import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;

import javax.swing.*;


public class tuidao implements ActionListener {
String []s1;   //存放产生式的字符串数组
String s2s3s4sb1;     //s2存放要分析的字符串
StringBuffer sb;
Jframe f;
JLabel L1L2;
JButton b1b2b3b4;
JTextField tf;
JTextArea tata1ta2;
JScrollPane  spsp1sp2;
JPanel p1p2p3p4;
JFileChooser fc1fc2;
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
         if(e.getSource()==b1)
         {
          //tf.setEditable(true);
          //ta.setEditable(true);
          String ss=““;
          fc1=new JFileChooser();
          if(fc1.showOpenDialog(f)==0)
          {
          try
          {
          String str;
          int i=0;
          FileReader fr=new FileReader(fc1.getSelectedFile());
          BufferedReader br=new BufferedReader(fr);
          while((str=br.readLine())!=null)
          {
          ss=ss+str+“\n“;
          s1[i]=(new StringBuffer(str)).delete(13).toString();
          i++;
          }
          }
          catch(Exception e1)
          {} 
          }     
          ta.setText(ss);
         }
         else if(e.getSource()==b2)
         {
          fc2=new JFileChooser();
          if(fc2.showOpenDialog(f)==0)
          {
          try
          {
          FileReader fr=new FileReader(fc2.getSelectedFile());
          BufferedReader br=new BufferedReader(fr);
          s2=br.readLine();
          }
          catch(Exception e1)
          {}   
          }
          tf.setText(s2);
         }
         else if(e.getSource()==b3)
         {
          s3=““;
          ta1.setText(““);
          s2=tf.getText();
          String []st=ta.getText().split(“\n“);
          for(int p=0;p          {
          s1[p]=(new StringBuffer(st[p])).delete(13).toString();
          }
         sb=new StringBuffer(s2);
          for(int j=0;j<100;j++)
          {
           sb1=sb.toString();
          if(j>=sb.length())
          {
          break;
          }
          char a1=sb.toString().charAt(j);
          if((a1<=‘Z‘)&&(a1>=‘A‘))
          {
              for(int m=0;m              {
              if(s1[m].charAt(0)==a1)
              {
              sb=sb.deleteCharAt(j);
              sb=sb.insert(js1[m].substring(1));
            

评论

共有 条评论