实验__ 一 _ ________手工构造简单词法分析程序_______________
一. 实验目的及要求
了解词法分析程序的基本构造原理,掌握简单词法分析程序的手工构造方法。
1、输入的常量说明串,要求最后以分号作结束标志;
2、根据输入串或读入的文本文件中第一个单词是否为“const”判断输入串或文本
文件是否为常量说明内容;
3、识别输入串或打开的文本文件中的常量名。常量名必须是标识符,定义为字
母开头,后跟若干个字母,数字或下划线;
4、根据各常量名紧跟等号“=”后面的内容判断常量的类型。其中:字符型常量
定义为放在单引号内的一个字符;字符串常量定义为放在双引号内所有内容;整型
常量定义为带或不带+、- 号,不以 0 开头的若干数字的组合;实型常量定义为带
或不带+、- 号,不以 0 开头的若干数字加上小数点再后跟若干数字的组合;
5、统计并输出串或文件中包含的各种类型的常量个数;
6、以二元组(类型,值)的形式输出各常量的类型和值;
7、根据常量说明串置于高级语言源程序中时可能出现的错误情况,模仿高级语言编
译器对不同错误情况做出相应处理。
二. 实验内容
对从键盘输入或从文件读入的形如:
“const count=10,sum=81.5,char1=’f’,string1=”hj”, max=169;”的常量说明串进
行处理,分析常量说明串中各常量名、常量类型及常量值,并统计各种类型常量个数。
三. 实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附
页)
核心代码:
package com.lotus.lab1;
import java.util.Scanner;
public class LexicalAnalysis {
static String[][] result=new String[4][100];//存分析结果
//统计 int、char、float、string 的个数
static int intNumber=0;
static int charNumber=0;
static int floatNumber=0;
static int stringNumber=0;
public static void main(String[] args) {
// TODO Auto-generated method stub