#P1256. 编译原理实验一:词法分析程序
编译原理实验一:词法分析程序
题目描述
- 编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据)。
- 编制一个扫描子程序,该扫描程序能删除无用的空白字符、回车字符以及其他与输入介质相关的非实质性字符,用“#”分隔单词流。
- 删除注释信息{}内的信息为注释信息。
从测试文件(test1source.txt)中读入所需的输入文本。
PROGRAM source;
{this little source program is used to
illustrate compiling procedure.}
VAR x,y,z: integer;
a: integer;
BEGIN
{this program has only four statements.}
x∶=23+5;
z∶=x DIV -3;
y∶=z+18*3;
a∶=x+(y-2) DIV 4;
END.
设计程序对此文本进行处理后,逐个识别每个单词,并用一个特定的标志符号“#”将相邻的两个单词加以分隔,程序中的非实质性符号已被全部删除。
# PROGRAM # source # ; # VAR # x # , # y # , # z # : # integer # ; # a # : # integer # ; # BEGIN # x # := # 23 # + # 5 # ; # z # := # x # DIV # - # 3 # ; # y # := # z # + # 18 # * # 3 # ; # a # := # x # + # ( # y # - # 2 # ) # DIV # 4 # ; # END # . #
输入格式
多行初始语句,语句不超过100条,每条语句不超过100个字符。且所有语句语法跟样例类似
输出格式
输出结果
样例
PROGRAM source;
{this little source program is used to
illustrate compiling procedure.}
VAR x,y,z: integer;
a: integer;
BEGIN
{this program has only four statements.}
x:=23+5;
z:=x DIV -3;
y:=z+18*3;
a:=x+(y-2) DIV 4;
END.
# PROGRAM # source # ; # VAR # x # , # y # , # z # : # integer # ; # a # : # integer # ; # BEGIN # x # := # 23 # + # 5 # ; # z # := # x # DIV # - # 3 # ; # y # := # z # + # 18 # * # 3 # ; # a # := # x # + # ( # y # - # 2 # ) # DIV # 4 # ; # END # . #
PROGRAM Hints;
{Please notice the following sentence.}
c: integer;
BEGIN
c:=-5+c
END.
# PROGRAM # Hints # ; # c # : # integer # ; # BEGIN # c # := # - # 5 # + # c # END # . #