资源简介
使用直接分析法编制C语言子集的词法分析程序(带实验报告),最近翻出来的以前编译原理课程做的记法分析程序,有需要的参考一下吧,java实现
代码片段和文件信息
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class WordAnalyze extends Jframe{
ArrayList wordList=new ArrayList();
//char [] operators={‘=‘‘+‘‘-‘‘*‘‘/‘‘(‘‘)‘‘{‘‘}‘‘‘‘;‘‘#‘‘[‘‘]‘‘<‘‘>‘‘\“‘‘.‘};
StringBuffer temp=new StringBuffer();
String origin=null;
char ch=‘ ‘;
int index=0;
Properties keywords=new Properties();
Properties operators=new Properties();
JToolBar toolbar=new JToolBar();
int strLength=0;
JTextArea textArea;
DefaultTableModel tableModel;
JTable table;
JSplitPane split;
WordAnalyze() {
super(“--简易C语言词法分析器--“);
setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
int xy;
Dimension size=Toolkit.getDefaultToolkit().getScreenSize();
x=(size.width-400)/2;
y=(size.height-400)/2;
setSize(450400);
setLocation(xy);
textArea=new JTextArea();
textArea.setForeground(Color.BLUE);
textArea.setLineWrap(true);
String [] columnNames={“单词““编码““属性“};
tableModel=new DefaultTableModel();
table=new JTable(tableModel);
table.setForeground(Color.BLUE);
tableModel.addColumn(“单词“);
tableModel.addColumn(“编码“);
tableModel.addColumn(“说明“);
split=new JSplitPane(JSplitPane.HORIZONTAL_SPLITnew JScrollPane(textArea)new JScrollPane(table));
toolbar.add(new analyze(“analyze“new ImageIcon(“images\\analyze.gif“)));
toolbar.add(new quit(“quit“new ImageIcon(“images\\quit.gif“)));
getContentPane().add(toolbarBorderLayout.NORTH);
getContentPane().add(split);
split.setDividerLocation(210);
split.setResizeWeight(1);
}
class analyze extends AbstractAction {
public analyze(String text Icon icon) {
super(text icon);
}
public void actionPerformed(ActionEvent e) {
origin=textArea.getText();
tableModel.setRowCount(0);
strLength=origin.length();
wordList.clear();
loadKeywordAndOperator();
if(analyze())
showResault();
}
}
class quit extends AbstractAction {
public quit(String text Icon icon){
super(text icon);
}
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
void showResault() {
//textArea.setText(Arrays.toString(wordList.toArray()));
object [] wordArr=wordList.toArray();
String row[]=new String [3];
String code=null;
for(int i=0;i row[0]=(String)wordArr[i];
if((code=keywords.getProperty(row[0]))!=null){
row[1]=code;
row[2]=“关键字“;
}
else if((code=operators.getProperty(row[0]))!=null){
row[1]=code;
row[2]=“运算符/界符“;
}
else if(row[0].charAt(0)>47&&row[0].charAt(0)<58){
row[1]=“0“;
row[2]=“常数“;
}
else {
row[1]=“1“;
row[2]=“标识符“;
}
tableModel.addRow(row);
}
}
void loadKeywordAndOperator() {
try {
keywords.load(new FileInputStream(new File(“keywords.properties“)));
o
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 134656 2007-04-15 15:37 实验一:使用直接分析法编制C语言子集的词法分析程序\使用直接分析法编制C语言子集的词法分析程序.doc
文件 1104 2007-04-13 16:46 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\images\analyze.gif
文件 1116 2007-04-13 16:46 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\images\quit.gif
..A.SH. 4608 2007-04-13 16:53 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\images\Thumbs.db
文件 295 2007-04-14 16:33 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\keywords.properties
文件 210 2007-04-14 17:04 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\operators.properties
文件 1180 2007-04-15 22:17 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\WordAnalyze$analyze.class
文件 560 2007-04-15 22:17 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\WordAnalyze$quit.class
文件 5963 2007-04-15 22:17 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\WordAnalyze.class
文件 4740 2007-04-15 22:17 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\WordAnalyze.java
目录 0 2007-04-13 16:53 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序\images
目录 0 2007-04-15 15:32 实验一:使用直接分析法编制C语言子集的词法分析程序\源程序
目录 0 2007-06-30 16:55 实验一:使用直接分析法编制C语言子集的词法分析程序
----------- --------- ---------- ----- ----
154432 13
相关资源
- 物流管理系统源码(含数据库)5624
- mysql数据处理,java用户登录处理
- jsp模拟酷狗官网源码(附数据库)
- 法律咨询信息系统(java+jsp+sqlserver)
- 一个完整的点餐微信小程序(附后台
- 基于 struts 的学生寝室管理系统的设计
- 煤矿安全管理系统(jsp源码+数据库脚
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- 基于JSP实现的美食餐饮管理系统(源
- 尚硅谷书城源码(仅附html页面)
- 都市供求信息网(源码+数据库+文档)
- 图书管理系统(源码+数据库+截图)
- 学生信息管理系统源码+mysql数据库
- javaweb网上购物系统源码(附数据库脚
- jsp+servlet+jdbc开发学生信息后台管理系
- JSP选课系统(源码+文档+数据库)
- 基于JSP的超市销售管理系统(源码+
- jsp宠物商店(源码+数据库)
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 毕业设计-医院人事管理系统(源码
- Vue + SpringBoot + MyBatis 音乐网站(源码
- jsp进销存管理系统(源码+数据库+文档
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- JSP考试网上报名考试系统(源码+数据
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
评论
共有 条评论