设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1393|回复: 0
打印 上一主题 下一主题

有关类的问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 01:24:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
词法分析器能把运行,但是改过了就有个问题,谁帮我看下(源程序在附件里面)

题目如下:
1、根据以下的正规式,编制正规文法,画出状态图;
标识符 <字母>(<字母>|<数字字符>)*
十进制整数 (0 | (1|2|3|4|5|6|7|8|9))(0|1|2|3|4|5|6|7|8|9)*
八进制整数 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)*
运算符和界符 + - * / > < = ( ) ;
关键字 if then else while do
2、根据状态图,设计词法分析函数int scan( ),完成以下功能:
1) 从文本文件中读入测试源代码,根据状态转换图,分析出一个单词,
2) 以二元式形式输出单词<单词种类,单词属性>
其中单词种类用整数表示:
0:标识符
1:十进制整数
2:八进制整数
3:十六进制整数
运算符和界符,关键字采用一字一符,不编码
其中单词属性表示如下:
标识符,整数由于采用一类一符,属性用单词表示
运算符和界符,关键字采用一字一符,属性为空
3、编写测试程序,反复调用函数scan( ),输出单词种别和属性。

输入数据:
编辑一个文本文件program.txt,在文件中输入如下内容:
if data+92>0x3f then
data=data+01;
else
data=data-01;

正确结果:
<if , ->
<0 , data>
<+ , ->
<1 , 92>
<> , ->
<3 , 3f>
<then , ->
<0 , data>
<= , ->
<0 , data>
<+ , ->
<2 , 1>
<; ,->
<else , ->
<0 , data>
<= , ->
<0 , data>
<- , ->
<2 , ->
<; , ->




附件: 只有本站会员才能下载或查看附件,请您 登录 或 注册
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 21:26 , Processed in 0.099923 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表