资源简介
编译原理课程实验题目,实现了C语言、Java语言词法分析器的功能,包括图形用户界面,可以打开指定的文件,可以保存相应的分析结果。
代码片段和文件信息
package compile;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
import javax.swing.border.titledBorder;
/**
* C语言词法分析器
* @author 王伟
*
*/
public class CLanguageCompile extends Jframe implements ActionListener {
private static final long serialVersionUID = -5936979066746570003L;
private String[] s1 = {“文件“ “帮助“};
private String[][] s2 = {{“打开“ “保存“ “退出“} {“关于词法分析器“}};
JMenu[] jMenus = new JMenu[s1.length];
JMenuItem[][] jMenuItems = new JMenuItem[s1.length][s2[0].length];
private int lineCount = 0;
//C语言识别保留字
//private String[] keyWord = {“if“ “else“ “int“ “for“ “while“ “do“ “ruturn“ “break“ “countinue“ “printf“ “scanf“ “void“};
//Java语言识别保留字
private String[] keyWord = {“if“ “else“ “byte“ “char“ “short“ “int“ “long“ “float“ “double“ “String“ “for“ “while“ “do“ “ruturn“ “break“ “countinue“ “println“ “print“ “void“ “static“ “private“ “protected“ “public“ “final“};
//特殊字符
private String[] specialChar = {“;“ ““ “““ “(“ “)“ “{“ “}“ “+“ “-“ “*“ “/“ “<=“ “>=“ “==“ “!=“ “:“ “[“ “]“};
//临时字符串
StringBuilder sBuilder = new StringBuilder();
//最终分析结果字符串
StringBuilder resultBuilder = new StringBuilder();
private JTextArea contentArea resultArea;
private JButton analyze reset;
/**
* 构造
*/
public CLanguageCompile() {
init();
}
/**
* 初始化界面方法
*/
public void init() {
this.settitle(“Java语言此法分析器 BY 王伟“);
this.setBounds(100 100 850 700);
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
this.setResizable(false);
this.setContentPane(createTotalPane());
JMenuBar jmb = new JMenuBar();
/**
* 设置菜单栏
*/
for(int i=0; i jMenus[i] = new JMenu(s1[i]);
jMenus[i].setFont(new Font(““ Font.BOLD 20));
jmb.add(jMenus[i]);
for(int j=0; j jMenuItems[i][j] = new JMenuItem(s2[i][j]);
jMenuItems[i][j].setFont(new Font(““ Font.BOLD 20));
jMenus[i].add(jMenuItems[i][j]);
jMenuItems[i][j].addActionListener(this);
}
}
this.setJMenuBar(jmb);
}
public JPanel createTotalPane() {
JPanel pane = new JPanel(new BorderLayout());
pane.setBorder(new EmptyBorder(10 10 10 10));
pane.add(BorderLayout.NORTH createLabelPane());
pane.add(BorderLayout.CENTER createTextAreaPane());
pane.add(BorderLayout.SOUTH createButtonPan
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-05-19 14:20 CLanguageCompile\
文件 232 2012-05-02 18:07 CLanguageCompile\.classpath
文件 392 2012-05-02 18:07 CLanguageCompile\.project
目录 0 2012-05-19 14:20 CLanguageCompile\bin\
目录 0 2012-05-19 14:20 CLanguageCompile\bin\compile\
文件 1244 2012-05-09 19:50 CLanguageCompile\bin\compile\CLanguageCompile$1.class
文件 924 2012-05-09 19:50 CLanguageCompile\bin\compile\CLanguageCompile$2.class
文件 10340 2012-05-09 19:50 CLanguageCompile\bin\compile\CLanguageCompile.class
目录 0 2012-05-19 14:20 CLanguageCompile\src\
目录 0 2012-05-19 14:20 CLanguageCompile\src\compile\
文件 9950 2012-05-09 19:50 CLanguageCompile\src\compile\CLanguageCompile.java
- 上一篇:java邮件发送客户端
- 下一篇:java记账本
相关资源
- 蓝桥杯VIP习题及答案
- 广州大学编译原理实验报告1-3.zip
- 编译原理实验 词法分析设计 MFC
- 语义分析—编译原理
- java编写的算符优先分析法分析器
- 华中科技大学 编译原理 面向过程的
- 山东大学编译原理实验报告含代码
- Compiler_mean3tmp.rar
- 西安交通大学编译原理实验代码及报
- 操作系统实验一进程调度
- C、java表白代码合集
- 编译原理第3版[刘铭][实验程序源代码
- 南京中新赛克2016校招笔试题C语言软件
- 开源STM32F4xx自定义USB数据传输,支持
- 用Java做编译原理正规式转换成NFA.ra
- 基于Android的C语言题库管理系统
- 编译原理课程设计含报告和可运行源
- 词法分析器实现java和c++
- C语言解析教程原书第4版美 凯利.pdf
- 编译原理课程设计(附报告和可运行
- 现代编译原理虎书,包含c版和java版中
- 现代编译器的Java实现.(美)Andrew.W
- 编译原理java实现所需jar包-个人博客文
- 编译原理-虎书-龙书-鲸书
- C语言词法分析器(Java版.带界面)
- java编写的LR语法分析器编译原理实验
- C语言程序设计第4版
- JAVA 编译原理 SLR(1)算法模拟器
- java 中间代码生成 编译原理
- 编译原理词法分析器 java版
评论
共有 条评论