下载此文档

词法分析器.doc


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
1
词法分析程序构造原理与实现技术
任红 08281071 计科0803班
实验目的
设计完成正则文法所描述的Pascal 语言子集单词符号的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即关键字、其他标识符、整型常数、运算符、界符五大类。并在文本文件中依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)。
实验要求
1) 给出各单词符号的类别编码;
2) 词法分析程序应能发现输入串中的错误;
3) 词法分析作为单独一遍编写,词法分析结果为二元式序列组成的中间文件;
4) 设计两个测试用例(尽可能完备),并给出测试结果。
实验设计
待分析的简单语言的词法
关键字:
"begin","end","if","then","else","for","do","while","and","or","not"
所有的关键字都是小写。
运算符和界符:
<, <=, <>, =, >, >=, :, :=, /, /*, +, -, *, ;, (, ), /* */
其他单词是标识符(ID)和整型常数(NUM),通过以下正规式定义:
ID=letter(letter|digit)*
NUM=digit digit*
(4) 空格由空白、制表符和换行符组成。空格一般用来分隔ID、
2
NUM、运算符、界符和关键字,词法分析阶段通常被忽略。
2) 各种单词符号对应的种别码
表1 各种单词符号对应的种别码
单词符号
种别码
单词符号
种别码
begin
1
<>
16
end
2
=
17
if
3
>
18
then
4
>=
19
else
5
:
20
for
6
:=
21
do
7
/
22
while
8
/*
23
and
9
+
24
or
10
-
25
not
11
*
26
letter (letter | digit)*
12
;
27
digit digit*
13
(
28
<
14
)
29
<=
15
词法分析程序的功能
输入:所给文法的源程序字符串。
输出:二元组(syn,token或sum)构成的序列组成的中间文件。
其中:syn为单词种别码;
token为存放的单词自身字符串;
3. 词法分析程序的算法思想
算法的基本任务是从字符串表示的源程序中识别出具体独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。
1)主程序示意图
主程序示意图如图1所示。其中初值包括如下两个方面:
3
置初值
调用扫描子程序
输出单词二元组
输入串结束?
结束


图1
(1)关键字表的初值。
关键

词法分析器 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aena45
  • 文件大小67 KB
  • 时间2021-09-13