【编译技术】实验一:词法分析程序编制

一、实验目的

基本掌握计算机语言的词法分析程序的开发方法。

二、实验内容

编制一个能够分析三种整数、标识符、主要运算符和主要关键字的词法分析程序。

三、实验要求

1.根据以下的正规式,编制正规文法,画出状态图;

基本要求:

单词类别

词法格式

标识符

<字母>(<字母>|<数字符号>)*

十进制整数

(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9) *|0

八进制整数

0o(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7) *

十六进制整数

0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f) *

运算符和分隔符

+  -   *   /   >  <   =   (   )  ;

关键字

if   then   else   while  do

附加要求:

单词类别

词法格式

标识符

<字母>(<字母>|<数字符号>)*(ε|_|.)(<字母>|<数字字符>)*

十进制数

(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9) *|0(ε|.(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*)

八进制数

0o(0|1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)*(ε|.(0|1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)*)

十六进制数

0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f) *

(ε|.(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)*)

2. 根据状态图,设计词法分析函数int scan( ),完成以下功能:

1)从键盘读入数据,分析出一个单词。

2)返回单词种别(用整数表示),

3)返回单词属性(不同的属性可以放在不同的全局变量中)。

3.编写测试程序,反复调用函数scan( ),输出单词种别和属性。

四. 实验环境

       1、Windows操作系统

       2、GCC(C99)编译器

五.实验步骤

1、根据状态图,设计词法分析算法。

(1)正规表达式

   直接选择实现附加要求,对应的正规表达式即为实验要求所给出的内容:

单词类别

词法格式

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值