资源简介
1.根据状态转换图直接编程
编写一个词法分析程序,它从左到右逐个字符的对源程序进行扫描,产生一个个的单词的二元式,形成二元式(记号)流文件输出。在此,词法分析程序作为单独的一遍,如下图所示。
具体任务有:
(1)组织源程序的输入
(2)识别单词的类别并记录类别编号和值,形成二元式输出,得到单词流文件
(3)删除注释、空格和无用符号
(4)发现并定位词法错误,需要输出错误的位置在源程序中的第几行。将错误信息输出到屏幕上。
(5)对于普通标识符和常量,分别建立标识符表和常量表(使用线性表存储),当遇到一个标识符或常量时,查找标识符表或常量表,若存在,则返回位置,否则返回0并且填写符号
代码片段和文件信息
import java.io.*;
import java.util.*;
public class cffx {
String sourceFile;//源文件名
String sentence;//程序语句
String word=““;//分析得到的字符串
String keyWord[]={“int““char““float““void““const““for““if““else““then““while““switch““break““begin““end“};
String id[]=new String[100];
int idLength=0;//记录标志符表中存放的标志符的个数
String num[]=new String[100];
int numLength=0;//记录常数表中存放的常数的个数
int line=0;//当前读到的行数
public boolean isDigit(char ch){
if((ch>=‘0‘)&&(ch<=‘9‘))
return true;
else
return false;
}
public boolean isLetter(char ch){
if(((ch>=‘A‘)&&(ch<=‘Z‘))||((ch>=‘a‘)&&(ch<=‘z‘)))
return true;
else
return false;
}
public void isKeyword(String str){
int i=0;
for(;i if(str.equals(keyWord[i]))//是关键字
{
System
相关资源
- java快捷键工具箱(快速打开本地应用
- java 飞机大战(面向对象源码)
- java 跑马程序
- 飞机大战小游戏源码(java Swing)
- java入门137:清理指定目录下的.tmp文件
- java删除文件夹中所有文件
- java重命名RAR压缩包中文件
- java显示指定类型的文件(按文件后缀
- java控制台(命令行)输入交互
- java 自定义表头(列头增加icon图标)
- Java入门-控件的排布(2).zip
- Java入门-显示多种字体(8).zip
- Java入门-使用表格显示查询结果(77)
- Java入门-取得目录文件信息(50).zi
- Java入门-zip压缩包查看程序(56).zi
- Java入门-阴影文字(26).zip
- Java入门-彩色列表框(4).zip
- Java入门-程序启动界面(20).zip
- Java入门-常用图形的绘制与填充(47)
- Java入门-从压缩包中提取文件(55)
- Java入门-滑杆演示(19).zip
- Java入门-图片倒影(34).zip
- Java入门-3D文字(27).zip
- Java入门-移动的遮照效果(45).zip
- Java入门-自定义光标(23).zip
- Java入门-图片火焰效果(32).zip
- Java入门-简单的文本编辑器(12).zi
- Java入门-产生自己的控件(1).zip
- Java入门-圆形的按钮(5).zip
- Java入门-不规则图形的绘制(48).zi
评论
共有 条评论