- 19
- 0
- 约8.95千字
- 约 10页
- 2018-01-04 发布于河南
- 举报
无符号数的识别
无符号数的词法分析程序
一、实验目的和要求
(1)初步掌握编译原理的实验的技能;
二、实验内容和原理
内容:掌握词法分析的基本思想,并用高级语言编写无符号数(包括整数和实数)的词法分析程序。
要求:从键盘中输入一字符串(包括字母、数字等),编写程序识别出其中的无符号数。
无符号数的文法规则课定义如下:
无符号数 无符号实数|无符号整数
无符号实数 无符号整数.数字串[E比例因子]
比例因子 有符号整数
有符号整数 [+|-]无符号整数
无符号整数 数字串
数字串 数字{数字}
数字 0 1 2 3 4 5 6 7 8 9
本实验中我利用了状态转化图的思想,下面是试验中用到构造的状态转化图:
描述状态机的代码格式如下:
int state = S0 ;
while(1)
{
Switch(state)
{
case S0 :
if(T0转移条件满足) {状态转移到满足T0的次态;操作;}
if(T1转移条件满足) {状态转移到满足T1的次态;操作;}
if(T2转移条件满足) {状态转移到满足T2的次态;操作;}
…
Break ;
case S1 :
//插入S1状态下的操作;
break ;
…
}
}
实验代码:
//本程序主要实现实数的识别
import java.io.BufferedReader ;
import java.io.IOException ;
import java.io.InputStreamReader ;
public class RealNumberIdentified {
/*---------------------------------成员变量的定义---------------------------------------*/
private final int S_0 = 0 ;
private final int S_1 = 1 ;
private final int S_2 = 2 ;
private final int S_3 = 3 ;
private final int S_4 = 4 ;
private final int S_5 = 5 ;
private final int S_6 = 6 ;
private final int S_7 = 7 ;
private char originNumber[ ] ; //用来记录原始的数字串
private String resultNumber = new String( ) ;
private int realnumberAmount = 0 ; //用来记录识别出的实数的个数
private int realnumberFlag = 0 ; //用于标识该实数是正数还是负数
private int eFlag = 0 ; //用来标识该实数是不是指数实数
private int pointFlag = 0 ; //用来标识该实数是否是小数
private int basePlusMinus = 1 ; //用来标识底数的符号
private int count = 0 ; //用来记录已经识别数字串的位数
private int currentState = S_0 ; //用来记录当前所处于的状态
/*---------------------------------------------------------------------------------- -----*/
/*-------------------------该方法用来初始化一些参数------------------------------------*/
private void init( )
{
resultNumber = new String( ) ;
basePlusM
您可能关注的文档
最近下载
- 大数据背景下制造业生产流程动态优化模型研究.pdf VIP
- T_GDJSKB 019-2024 城镇排水设施电子数据库建设技术规程.docx VIP
- 青海省西宁市大通回族土族自治县2024-2025学年高三上学期开学摸底考试语文试题.pdf VIP
- 2025年无人机驾驶员执照短距起飞与短距着陆技术专题试卷及解析.pdf VIP
- DB11_T 2430-2025 高标准农田建设规范.pdf VIP
- 2025年无人机驾驶员执照保险责任与免责条款专题试卷及解析.pdf VIP
- 2025年AWS认证基于CUR实现细粒度的项目制成本核算专题试卷及解析.pdf VIP
- DB11_T 2446-2025 滨水慢行系统规划设计导则.pdf VIP
- 医学统计学b-spss上机-秩和检验.pdf VIP
- DB11_T 2463-2025 城市道路隧道设计标准.pdf VIP
原创力文档

文档评论(0)