词法分析的主要任务
- 词法分析的主要任务
1.确定单词的类型:讲识别出的单词转换成统一的机内表示——词法单元形式(token)
token:<种别码,属性值>
例:
输入 while(value!=100){num++;}
输出 1.while <WHILE, - >
2. ( < SLP , - >
3.value < IDN ,value>
4. != < NE , - >
5. 100 <CONST, 100 >
6. ) < SRP , - >
7. { < LP , - >
8. num < IDN , num >
9. ++ < INC , - >
10. ; <SEMI , - >
11. } < RP , - >
语法分析
变量声明语句的分析书
语义分析
语义分析的主要任务
- 收集标识符的属性信息
- 种属(kind)
- 简单变量、符合变量(数组、记录、...)、过程、...
- 类型(type)
- 存储位置、长度
- 值
- 作用域
- 参数和返回值信息
- 参数个数、参数类型、参数传递方式、返回值类型、...
- 语义检查
- 变量或过程未经声明就使用
- 变量或过程名重复声明
- 运算分类类型不匹配
- 数组下标不是整数
- 对非数组变量使用数组访问操作符
- 对非过程名使用过程操作符
- 过程调用的参数类型或数目不匹配
- 函数返回类型有误