• 大小: 508KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-28
  • 语言: Java
  • 标签:

资源简介

本次课程设计是作一个集词法分析、语法分析、语义分析和中间代码生成于一体的编译器,它集中了《编译原理》里的几乎所有的思想。不但加深了学生对编译方法的理解,而且能对学生的编程能力起到进一步提高的作用,培养学生的程序设计风格。通过某种可视化编程语言的应用,具备初步的Windows环境下的编程思想。

资源截图

代码片段和文件信息


package byyl;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
/**
 *题目:符号表中的名字类

 *描述:作为符号表中的NAME类,它有两个属性,分别存放标志符在字符串的起始地址和长度
 *@author 闫相通(040410206)  哈工大(威海) xiangtongcz@126.com
 *@version 2007.3.13
 */
class WordName
{
/**
 *存放标志符在字符串中的起始地址
 */
public int start;
/**
 *存放标志符的长度
 */
public int length;
}
//
/**
 *题目:符号表类

 *描述:存放符号表
 *@author 闫相通 (040410206) 哈工大(威海) xiangtongcz@126.com
 *@version 2007.3.13 
 */
class Symbol
{   
/**
 *符号表的每一项的序号
 */
public int addr;
/**
 *存放标识符,用于输出显示
 */ 
public StringBuffer sign;
/**
 *符号表的名字栏,对数字来说,它的两个属性都是0
 */ 
public WordName name;
/**
 *标志符的类型
 */
public StringBuffer type;
/**
 *标志符的种类
 */
public StringBuffer kind;
/**
 *标志符的值
 */
public StringBuffer val;
/**
 *构造函数,将各个属性生成对象
 */
public Symbol()
 {  
    sign=new StringBuffer();
    name=new WordName();
    type=new StringBuffer();
    kind=new StringBuffer();
    val=new StringBuffer();
 }

}
/**
 *题目:token类

 *描述:存放种别码,属性值及其对应的字符串
 *@author 闫相通(040410206) 哈工大(威海) xiangtongcz@126.com
 *@version 2007.3.13
 */
class Token

   /**
    *token的序号
    */
   public int label;
   /**
    *存放标志符或数字
    */
   public StringBuffer name; 
   /**
    *种别码
    */
   public int code; 
   /**
    *在符号表的入口地址
    */ 
   public int address;
   /**
    *构造函数,将name指向一个StringBuffer类对象
    */
   public Token()
   {  
     name=new StringBuffer();
   } 

}
/**
 *题目:存放算术表达式或布尔表达式的堆栈类

 *描述:按顺序存放布尔表达式或算术表达式的每一个字符
 *@author 闫相通(040410206) 哈工大(威海) xiangtongcz@126.com
 *@version 2007.3.13
 */
class stack
{
  /**
   *表达式的每一个字符
   */
  public StringBuffer name;
  /**
   *每一个字符的编码
   */
  public int cod;
  /**
   *每一个字符的入口地址
   */
  public int addr;
  /**
   *构造函数,将name指向一个StringBuffer类对象
   */
  public stack()
  {
   name=new StringBuffer();
   }
}
/**
 *题目:存放生成的四元式的堆栈类

 *描述:存放四元式的栈
 *@author 闫相通(040410206) 哈工大(威海) xiangtongcz@126.com
 *@version 2007.3.13
 */
 class equ
{
/**
 *操作码
 */
public StringBuffer op;
/**
 *第一个操作数在符号表中地址
 */
public int op1;
/**
 *第二个操作数在符号表中地址
 */
public int op2;
/**
 *运算的结果
 */
public int result;
/**
 *构造函数,将op指向一个StringBuffer类对象
 */
equ()
{
op=new StringBuffer();
}
   
}

/**
 *题目:ByylScanner启动运行类

 *描述:Simple语言编译器。包括词法分析,语法/语义分析.

 *     中间生成的有符号表,token串,修改后的符号表和四元式。

 *     运行时您将见到四个显示区域。用途如下

 *     左上 inputTextArea 用于打开和编写simple语言源程序

 *     右上symbolTableTextArea 用于显示词法分析后的符号表和修改后的符号表

 *     左下resultTextArea 用于显示词法分析和语法语义分析的出错情况

 *     右下tokenTextArea 用于显示token串和生成的四元式
 *@author 闫相通(040410206)   哈工大(威海) xiangtongcz@126.com
 *@version 2007.3.13
 */
 public  class ByylScanner {
  /**
   *显示的窗体
   */
private frame frame;
/**
 *窗体上的菜单
 */
private MenuBar menubar;
/**
 *菜单中的“文件“项
 */
private Menu menuFile;
    /**
     *菜单中的“编译“项
     */
pr

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

     文件       3329  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$1.class

     文件       1347  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$10.class

     文件        520  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$11.class

     文件       3518  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$2.class

     文件       2278  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$3.class

     文件        961  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$4.class

     文件        522  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$5.class

     文件       2577  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$6.class

     文件       2040  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$7.class

     文件       2040  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$8.class

     文件       2044  2007-03-17 10:31  ByylScanner\byyl\ByylScanner$9.class

     文件      34662  2007-03-17 10:31  ByylScanner\byyl\ByylScanner.class

     文件        344  2007-03-17 10:31  ByylScanner\byyl\equ.class

     文件        332  2007-03-17 10:31  ByylScanner\byyl\stack.class

     文件        520  2007-03-17 10:31  ByylScanner\byyl\Symbol.class

     文件        352  2007-03-17 10:31  ByylScanner\byyl\Token.class

     文件        235  2007-03-17 10:31  ByylScanner\byyl\WordName.class

     文件      77683  2007-03-17 10:29  ByylScanner\ByylScanner.java

     文件       1719  2007-03-17 11:01  ByylScanner\ByylScanner.jcp

     文件        194  2007-03-17 10:32  ByylScanner\test1.java

     文件        198  2007-03-17 10:57  ByylScanner\test2.java

     文件        211  2007-03-17 10:32  ByylScanner\test3.java

     文件        232  2007-03-17 10:32  ByylScanner\test4.java

     文件        251  2007-03-17 10:32  ByylScanner\test5.java

     文件        287  2007-03-17 10:32  ByylScanner\test6.java

     文件       1091  2007-03-16 15:55  网页\byyl\allclasses-frame.html

     文件        971  2007-03-16 15:55  网页\byyl\allclasses-noframe.html

     文件      77208  2007-03-16 15:55  网页\byyl\byyl\ByylScanner.html

     文件      10652  2007-03-16 15:55  网页\byyl\byyl\equ.html

     文件       1215  2007-03-16 15:55  网页\byyl\byyl\package-frame.html

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

评论

共有 条评论

相关资源