资源简介
本次课程设计是作一个集词法分析、语法分析、语义分析和中间代码生成于一体的编译器,它集中了《编译原理》里的几乎所有的思想。不但加深了学生对编译方法的理解,而且能对学生的编程能力起到进一步提高的作用,培养学生的程序设计风格。通过某种可视化编程语言的应用,具备初步的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-fr
文件 971 2007-03-16 15:55 网页\byyl\allclasses-nofr
文件 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-fr
............此处省略29个文件信息
评论
共有 条评论