一、目的(本次实验所涉及并要求掌握的知识点) 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示) 二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析等) 程序输入/输出示例: 如源程序为C语言。输入如下一段: main() { int a,b; a = 10; b = a + 20; } 要求输出如右图。 (2,”main”) (5,”(“) (5,”)“) (5,”{“) (1,”int”) (2,”a”) (5,”,”) (2,”b”) (5,”;”) (2,”a”) (4,”=”) (3,”10”) (5,”;”) (2,”b”) (4,”=”) (2,”a”) (4,”+”) (3,”20”) (5,”;”) (5,” }“ ) 要求: 识别保留字:if、int、for、while、do、return、break、continue; 单词种别码为 1。 其他的都识别为标识符;单词种别码为 2。 常数为无符号整形数;单词种别码为 3。 运算符包括:+、-、*、/、=、 、<、 =、<=、!= ; 单词种别码为 4。 分隔符包括:,、;、{、}、(、); 单词种别码为 5。 三、实验使用环境(本次实验所使用的平台和相关软件) 平台:WindowsXP SP3 软件:MyElicpse 四、实验步骤和调试过程(实验步骤、测试数据设计、测试结果分析) 1)定义常量及变量: private JTextArea ta1; private JTextArea ta2; private JButton jb=new JButton("词法分析"); private JButton jb1=new JButton("清空文本区"); private JLabel jl1=new JLabel("输入源代码:"); private JLabel jl2=new JLabel("分析结果:"); static int m=0; //标识字符位置标记 static String str1 = new String(); String blz[]={"int","return","break","while","for","do","continue","if","else"}; 2) 主要实现的函数: public void actionPerformed(ActionEvent e) { if(e.getSource()==jb1) { int a=JOptionPane.showConfirmDialog(null, "确定清空吗?","提示!",JOptionPane.YES_NO_OPTION); if( a=...