• 大小: 105KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-08-06
  • 语言: 其他
  • 标签: IF-ELSE  

资源简介

IF-ELSE条件语句的翻译程序设计(递归下降法、输出三地址表示)

资源截图

代码片段和文件信息

package test;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

import javax.swing.*;

/*
 * 用于介面設計
 * */
public class test1 extends Jframe implements ActionListener {
// 界面设计
BufferedReader fin = null;
JPanel jp = new JPanel();
JLabel jl = new JLabel(“检测文本名“);
JTextField jtf = new JTextField(“1.txt“);
JButton jb = new JButton(“开始检测“);

public test1() {
this.add(jp);
jp.setLayout(null);
this.setBounds(100 100 250 200);
this.setVisible(true);
jp.add(jtf);
jtf.setBounds(110 30 100 50);
jp.add(jl);
jl.setBounds(10 30 100 50);
jp.add(jb);
jb.setBounds(60 100 100 50);
jb.addActionListener(this);
this.settitle(“If-else检测“);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
jp.setBackground(Color.green);
this.setResizable(false);
}

// 主程序调用
public static void main(String args[]) {
new test1();
}

// 事件触发器
public void actionPerformed(ActionEvent e) {
try {
File fc0 = new File(jtf.getText());
fc0.createNewFile();
fin = new BufferedReader(new FileReader(fc0));
String c = ““;
String s = ““;
while ((c = fin.readLine()) != null) {
s = s + c;
}
char[] ch = s.toCharArray();
Begin(ch);// 开始检测文本内容
} catch (Exception e1) {
e1.printStackTrace();
}
}

/*
 * 从这里开始检测
 */
// 开始检测
public void Begin(char c[]) {
for (int i = 0; i < c.length; i++) {
int k = i;
if ((c[i] == ‘i‘ || c[i] == ‘I‘)
&& (c[i + 1] == ‘f‘ || c[i + 1] == ‘F‘)) {
CheckIf(c k);
break;
}
}
}

// 提出if段代码检测
public void CheckIf(char c[] int i) {
char ch[] = new char[1000];
Boolean b = false;
boolean b1 = true;
int j = 0;
for (j = 0; j < c.length; j++) {
if (c[i] == ‘e‘ && c[i + 1] == ‘l‘ && c[i + 2] == ‘s‘
&& c[i + 3] == ‘e‘) {
ch[j] = c[i];
ch[j + 1] = c[i + 1];
ch[j + 2] = c[i + 2];
ch[j + 3] = c[i + 3];
b = true;
}
if (c[i] == ‘{‘ || c[i] == ‘}‘) {
b1 = !b1;
}
if (b == true && c[i] == ‘;‘) {
if (b1 == true) {
ch[j] = c[i++];
j = c.length;
} else {
ch[j++] = c[i++];
ch[j]=‘}‘;
j = c.length;
}
}
ch[j] = c[i++];

}
ch[j] = ‘\0‘;
JumpTest2(ch);
}

// 转向test2 词法分析
public void JumpTest2(char c[]) {
System.out.println(“test1输出:“);
System.out.println(“提取出来的if——else程序如下“);
System.out.println(c);
new test2(c);
}
}

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

     文件        383  2010-01-06 10:35  0120710340806 陈扬\.project

     文件        232  2010-01-06 10:35  0120710340806 陈扬\.classpath

     文件        147  2009-10-09 09:41  0120710340806 陈扬\1.txt

     文件        131  2010-01-07 10:18  0120710340806 陈扬\2.txt

     文件        132  2010-01-07 10:18  0120710340806 陈扬\3.txt

     文件        130  2010-01-07 10:25  0120710340806 陈扬\4.txt

     文件        176  2009-10-09 08:26  0120710340806 陈扬\5.txt

     文件       2592  2010-01-07 18:17  0120710340806 陈扬\src\test\test1.java

     文件       4325  2009-10-09 09:41  0120710340806 陈扬\src\test\test2.java

     文件       2099  2010-01-07 18:22  0120710340806 陈扬\src\test\test3.java

     文件       4316  2009-10-09 09:41  0120710340806 陈扬\bin\test\test2.class

     文件       3763  2009-10-09 08:22  0120710340806 陈扬\bin\test\test1.class

     文件       2776  2009-10-09 08:22  0120710340806 陈扬\bin\test\test3.class

     文件     201216  2010-01-07 18:28  0120710340806 陈扬\课程设计0708陈扬.doc

     目录          0  2010-01-07 19:47  0120710340806 陈扬\src\test

     目录          0  2010-01-07 19:47  0120710340806 陈扬\bin\test

     目录          0  2010-01-07 19:47  0120710340806 陈扬\src

     目录          0  2010-01-07 19:47  0120710340806 陈扬\bin

     目录          0  2010-01-07 19:47  0120710340806 陈扬

----------- ---------  ---------- -----  ----

               222418                    19


评论

共有 条评论