编译原理实验:词法分析器设计报告
设计思想
1. 程序主体结构部分:
- 说明部分:定义了使用的LETTER, DIGIT, IDENT(标识符,通常为字母开头的字母数字串)和STR(字符串常量,通常为双引号括起来的字符串)。这部分可能包含一些初始化代码,例如#include用于引用标准头文件和前向声明。这些代码应在%{和%}之间。
- 规则部分:可以包括用于分析的代码,这里包括了忽略所有注释字符、传递ID名称和字符串常量内容到主调函数和main函数的功能。
2. 实现原理:
程序首先判断每个单元是否为关键字、常数、运算符或界符,并对不同的单词符号进行编码以便区分。
3. PL/0语言的EBNF表示:
::=;
::={|}
::=+|-
::=*|/
::=|#|=
::=a|b|...|X|Y|Z
::=0|1|2|...|8|9
设计过程
1. 关键字:void, main, if, then, break, int, char, float, include, for, while, printf, scanf(全部为小写)。
2. 运算符:+,-,*,/,:=,;,>=,|
1. 程序主体结构部分:
- 说明部分:定义了使用的LETTER, DIGIT, IDENT(标识符,通常为字母开头的字母数字串)和STR(字符串常量,通常为双引号括起来的字符串)。这部分可能包含一些初始化代码,例如#include用于引用标准头文件和前向声明。这些代码应在%{和%}之间。
- 规则部分:可以包括用于分析的代码,这里包括了忽略所有注释字符、传递ID名称和字符串常量内容到主调函数和main函数的功能。
2. 实现原理:
程序首先判断每个单元是否为关键字、常数、运算符或界符,并对不同的单词符号进行编码以便区分。
3. PL/0语言的EBNF表示:
::=;
::={|}
::=+|-
::=*|/
::=|#|=
::=a|b|...|X|Y|Z
::=0|1|2|...|8|9
设计过程
1. 关键字:void, main, if, then, break, int, char, float, include, for, while, printf, scanf(全部为小写)。
2. 运算符:+,-,*,/,:=,;,>=,|
105KB
文件大小:
评论区