• 大小: 3.88MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-14
  • 语言: Java
  • 标签: 编译原理  

资源简介

使用算符优先分析算法分析下面的文法:E’ → #E#E → E+T | TT → T*F | FF → P^F | PP → (E) | i其中i可以看作是一个终结符,无需作词法分析。具体要求如下:1、如果输入符号串为正确句子,显示分析步骤,包括分析栈中的内容、优先关系、输入符号串的变化情况;2、如果输入符号串不是正确句子,则指示出错位置。

资源截图

代码片段和文件信息

package s;
import javax.swing.*;
import java.awt.Font;
import java.awt.event.*;
public class Jsuanfu extends Jframe implements ActionListener{
private JTextArea ta=new JTextArea(1850);;
private JTextField tf;
private JButton jb1;
private JButton jb2;
private JLabel jl1;
private JLabel jl2;
char[] a=new char[50];
char[] s=new char[50];
int jkzp=0;
char m;
boolean f=true;
String st1=““st2=““st3=““;

public int table[][]={{2111122}
                {2211122}
                {2211122}
                {222-1-122}
                {111110-1}
                {222-1-122}
                {11111-10}};
public Jsuanfu(){
super(“算符优先分析器“);
this.setSize(600500);
this.setLocation(200150);
this.setLayout(null);
tf=new JTextField(30);
jb1=new JButton(“清空文本区“);
jb2=new JButton(“优先分析“);
jl1=new JLabel(“输入字符串:“);
jl2=new JLabel(“分析结果:“);
jl1.setFont(new Font(“楷书“Font.BOLD14));
jl2.setFont(new Font(“楷书“Font.BOLD14));
jl1.setSize(10025);
jl1.setLocation(1010);
this.add(jl1);
tf.setSize(400 25);
tf.setLocation(12010);
this.add(tf);
jl2.setSize(9025);
jl2.setLocation(10 40);
this.add(jl2);
ta.setEditable(false);
    JScrollPane sc=new JScrollPane(taJScrollPane.VERTICAL_SCROLLBAR_ALWAYS
                JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    sc.setSize(580350);
    sc.setLocation(10 70);
    this.add(sc);
    jb1.setBounds(10043010025);
    jb2.setBounds(40043010025);
    this.add(jb1);
    this.add(jb2);
    ta.append(“  步骤“+“\t“+“栈“+“\t“+“当前符号“+“\t“+“剩余输入串“+“\t“+“移进或归约“+“\n“);
    jb1.addActionListener(this);
    jb2.addActionListener(this);
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) 
{
if(e.getSource()==jb1)
if(JOptionPane.showConfirmDialog(null“确定清空吗?“ “提示!“JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
{
ta.setText(““);
tf.setText(““);
ta.append(“  步骤“+“\t“+“栈“+“\t“+“当前符号“+“\t“+“剩余输入串“+“\t“+“移进或归约“+“\n“);
p=0;
f=true;
}
if(e.getSource()==jb2)
{   
int n1=0;
z=0;
String st=tf.getText();
char[] b=new char[st.length()];
for(int l=0;l {
b[l]=st.charAt(l);
a[l]=st.charAt(l);
n1=l;
}
for(int d=n1+1;d<50;d++)
a[d]=‘#‘;
k=1;
s[k]=‘#‘;
    while(z      {  
    if(a[z]==‘+‘||a[z]==‘*‘||a[z]==‘^‘||a[z]==‘i‘||a[z]==‘(‘||a[z]==‘)‘||a[z]==‘#‘)
     e();
    else
    {
     ta.append(“出错“);
     f=false;
    }
       z++;
     }
}
}
 int ch(char b){
int t=-1;
switch(b)
{
case ‘+‘:t=0;break;
case ‘*‘:t=1;break;
case ‘^‘:t=2;break;
case ‘i‘:t=3;break;
case ‘(‘:t=4;break;
case ‘)‘:t=5;break;
case ‘#‘:t=6;
}
return t;
}
void e(){
if(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件          0  2008-05-19 19:37  算符优先分析器\.metadata\.lock

     文件       5113  2008-05-22 15:49  算符优先分析器\.metadata\.log

     文件         26  2008-05-22 15:49  算符优先分析器\.metadata\version.ini

     文件       4828  2008-05-20 21:02  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\1\90d48c376d26001d1404e2acf4d028f5

     文件       3854  2008-05-20 16:04  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\15\809bd46c4326001d1dd8bacabd004be9

     文件       4877  2008-05-20 21:38  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\17\601b53557226001d1404e2acf4d028f5

     文件       3677  2008-05-20 16:02  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\17\a09b08284326001d1dd8bacabd004be9

     文件       3764  2008-05-20 16:06  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\18\e0f57add5d26001d1404e2acf4d028f5

     文件       4737  2008-05-20 20:12  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\2d\e073fe646626001d1404e2acf4d028f5

     文件       4801  2008-05-20 20:52  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\2e\40ecbe396c26001d1404e2acf4d028f5

     文件       4328  2008-05-20 19:42  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\32\70eb33bb6426001d1404e2acf4d028f5

     文件       4686  2008-05-20 20:12  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\3e\80734c136626001d1404e2acf4d028f5

     文件       4830  2008-05-20 20:59  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\46\001327fe6c26001d1404e2acf4d028f5

     文件       4848  2008-05-20 21:10  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\4e\f02416576e26001d1404e2acf4d028f5

     文件       4875  2008-05-20 21:38  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\60\90b711167226001d1404e2acf4d028f5

     文件       4966  2008-05-20 22:38  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\60\d0ec1e7c7a26001d17a2abe2f0f13908

     文件       4821  2008-05-20 20:58  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\6a\30afa08b6c26001d1404e2acf4d028f5

     文件       3882  2008-05-20 19:27  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\6b\a03e90946026001d1404e2acf4d028f5

     文件       4764  2008-05-20 20:22  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\6d\40d56a776726001d1404e2acf4d028f5

     文件       4875  2008-05-20 21:43  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\73\90ec07677326001d1404e2acf4d028f5

     文件       4853  2008-05-20 21:36  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\76\501bc5f87126001d1404e2acf4d028f5

     文件       5250  2008-05-22 15:56  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\76\a0a0de82f227001d1c31962a1896e856

     文件       4853  2008-05-20 21:41  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\77\40fc2bb17226001d1404e2acf4d028f5

     文件       3767  2008-05-20 16:05  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\78\80091b814326001d1dd8bacabd004be9

     文件       4966  2008-05-20 22:39  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\7b\303b88547b26001d17a2abe2f0f13908

     文件       4087  2008-05-20 19:37  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\7e\50cba4ab6126001d1404e2acf4d028f5

     文件       4001  2008-05-20 19:33  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\7f\3089c0296126001d1404e2acf4d028f5

     文件       4817  2008-05-20 21:04  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\81\308b8b4b6d26001d1404e2acf4d028f5

     文件       4842  2008-05-20 21:17  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\81\4061cc9d7126001d1404e2acf4d028f5

     文件       4848  2008-05-20 21:15  算符优先分析器\.metadata\.plugins\org.eclipse.core.resources\.history\83\c0b6de176f26001d1404e2acf4d028f5

............此处省略215个文件信息

评论

共有 条评论