📄 词法分析.txt
字号:
实验一 词法分析
一、目的和要求
1. 目的
通过设计、编制、调试一个具体的词法分析程序,加深对词法分析原理的理解,并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
2. 要求
通过分析PL/0词法分析程序,在此基础上按照给出的语法图,写出一个词法分析程序。
二、示例
1.词法分析的功能: 把字符流的源程序分割成一个个单词形式的符号,为语法分析提供单词形式的第一中间语言程序,给语法分
析使用。
2.单词种类:常数,界符,标识符,关键字,运算符。
3.数据结构:
10个数组链表,都是全局变量,它们分别为:
ArrayList keyword_list; //储存自定义语言的关键字的数组连表
ArrayList operator_list; //储存自定义语言的运算符的数组连表
ArrayList boundsymbol_list; //储存自定义语言的分界符的数组连表
ArrayList constant_list_save; //存储词法分析后产生的常数表
ArrayList bound_list_save; //存储词法分析后产生的界符表
ArrayList identifier_list_save; //存储词法分析后产生的标识符表
ArrayList keyword_list_save; //存储词法分析后产生的关键字表
ArrayList operator_list_save; //存储词法分析后产生的运算符表
ArrayList nonlicet_list_save; //存储词法分析后产生的错误表
ArrayList Main_list_save; //存储词法分析后产生的总单词表
4.词法分析程序完成的主要任务:
(1)去掉空格:空格在词法分析时是一种不可缺少的界符,而在语法分析时则是无用的,所以须去掉。
(2)识别保留字:设有一张保留字表。对每个以字母打头的字母,数字字符串要查此表。若查看则为保留字,将对应的类别放在SYM中。 例如:IF的类别是IFSYM,THEN的类别是THENSYM。
(3)识别标识符:对用户定义的标识符将类别IDENT放在SYM中,标识符本身的值放在ID中。
(4)拼数:当所取单词是数字时,将数的类别NUMBER放在SYM中,数值本身经过10 > 2后,存放在NUM中。
(5)拼复合数:对两个字符组成的算符,如,>=,:=,<>等单词,识别后将类别送SYM中。
(6)打印源程序:边读入字符边打印。
5.变量说明:
CH:存放当前读取的字符。初值为空。
LINE:为一维数组,其数组元素是字符。界对为1:80。它是用于读入一行字符的缓冲区。
LL;CC为行计数器,初值为零。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -