资源简介
编译原理词法分析器 java版
包括内容:
1.所识别语言的词法的EBNF描述。
2.所采用的二元式格式说明(如一个单词(不包括用户定义的标识符)一个种别,还是一类一个种别,对用户定义的标识符归为一个种别)。
3.词法分析程序包含的模块、各模块间的关系图、程序流程图、全局变量、函数接口等。
4.词法分析程序源代码。

代码片段和文件信息
package zero.compiler;
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.io.*;
public class compile extends Jframe {
/**
*
*/
private static final long serialVersionUID = 699911785225676998L;
private JButton jButtonRun = new JButton(“运行“);
private JButton jButtonClear = new JButton(“清空“);
private JLabel inLabel = new JLabel(“原码“);
private JLabel outLabel = new JLabel(“分析结果“);
private TextArea inTextArea = new TextArea(15 35);
private TextArea outTextArea = new TextArea(15 35);
String[] keyWords = { “public“ “private“ “auto“ “break“ “case“ “char“
“const“ “continue“ “default“ “do“ “double“ “else“ “enum“
“float“ “for“ “if“ “int“ “long“ “rebister“ “return“ “short“
“signed“ “sizeof“ “static“ “struct“ “switch“ “typedef“
“union“ “unsigned“ “void“ “volatile“ “while“ “main“ “cin“
“cout“ };// 关键字数组
String[] operator = { “+“ “-“ “*“ “/“ “%“ “=“ “.“ “>“ “<“ “?“ };// 运算符
String[] sepretor = { “;“ “:“ “{“ “}“ “(“ “)“ “[“ “]“ };// 分隔符
private void initListener() // 事件监听器
{
ActListener actListener = new ActListener();
jButtonRun.addActionListener(actListener);
jButtonClear.addActionListener(actListener);
}
class ActListener implements ActionListener // 构建事件监听器
{
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jButtonRun) {
porRun();
}
if (e.getSource() == jButtonClear) {
inTextArea.setText(““);
outTextArea.setText(““);
}
}
}
private void porRun() // 分析过程
{
String inText = inTextArea.getText();// 定义字符串
StringTokenizer str1 = new StringTokenizer(inText
“ \n\t\r;+=-\“\‘)(}{][<>“ true);
// 分隔符集合
int n = str1.countTokens();
String[] eachText = new String[n];
for (int a = 0; a < n; a++) {
eachText[a] = str1.nextToken();
}
outTextArea.append(“1 为关键字 2 为标识符“ + “\n“ + “3 为常数 4 为运算符“ + “\n“
+ “5 为分隔符“ + “\n“);
outTextArea.append(“====================================\n“);
for (int i = 0; i < eachText.length; i++) {
outer: for (int j = 0; j < keyWords.length; j++) {
// 判断为关键字
if (eachText[i].equals(keyWords[j])) {
outTextArea.append(“(1“ + eachText[i] + “)“ + “\n“);
i++;
break outer;
}
}
for (int k = 0; k < operator.length; k++) // 判断为运算符
{
if (eachText[i].equals(operator[k]))
outTextArea.append(“(4“ + eachText[i] + “)“ + “\n“);
}
for (int m = 0; m < sepretor.length; m++) {
if (eachText[i].equals(sepretor[m])) // 判断为分隔符
outTextArea.append(“(5“ + eachText[i] + “)“ + “\n“);
}
char[] inChar = eachText[i].toCharArray();
if (Character.isDigit(inChar[0]))
outTextArea.append(“(3“ + eachText[i] + “)“ + “\n“);
if (Character.isLetter(inChar[0]))
outTextArea.append(“(2“ + eachText[i] + “)“ + “\n“);
}
}
public compile() throws IOExce
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2012-04-17 10:18 Compiler\.classpath
文件 384 2012-04-17 10:18 Compiler\.project
文件 827 2009-05-30 18:43 Compiler\in.txt
文件 4075 2009-05-30 18:48 Compiler\src\zero\compiler\compile.java
文件 531 2009-05-30 18:27 Compiler\src\zero\compiler\Test.java
文件 5438 2009-05-30 18:48 Compiler\bin\zero\compiler\compile.class
文件 1104 2009-05-30 18:48 Compiler\bin\zero\compiler\compile$ActListener.class
文件 1303 2009-05-30 18:27 Compiler\bin\zero\compiler\Test.class
文件 629 2012-04-17 10:18 Compiler\.settings\org.eclipse.jdt.core.prefs
目录 0 2012-04-17 15:26 Compiler\src\zero\compiler
目录 0 2009-05-30 18:12 Compiler\bin\zero\compiler
目录 0 2012-04-17 15:26 Compiler\src\zero
目录 0 2009-05-30 18:12 Compiler\bin\zero
目录 0 2012-04-17 15:26 Compiler\src
目录 0 2012-04-17 15:26 Compiler\bin
目录 0 2012-04-17 15:26 Compiler\.settings
目录 0 2012-04-17 15:26 Compiler
文件 11776 2012-04-17 09:54 实验要求 .doc
----------- --------- ---------- ----- ----
26368 18
- 上一篇:java聊天室软件源代码
- 下一篇:黑马Android百度地图实战项目视频,文档
相关资源
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
评论
共有 条评论