能分析以下几类语句,并建立符号表及生成中间代码(三地址指令和 四元式形式):
能够识别出测试用例中的语义错误,包括
能准确给出错误所在位置。输出的错误提示信息格式如下: Semantic error at Line [行号]:[说明文字]
要求:给出如下语言成分所对应的语义动作
要求:分为系统概要设计和系统详细设计。
核心数据结构的设计
该结构为语法分析树的节点,用于存放单词的内容、属性、深度和子节点信息。
支持返回所有类中的所有实例。在返回属性信息时,如果该节点不具备该属性,会进行报错。
子节点信息和属性信息可以进行增加。
该结构为四元组,用于存放四元组内容。
同时对四元组的分析操作也包含在内
要求:对如下内容展开描述。
该系统没有办法处理未经声明就使用的变量。因为在存储变量的属性时,使用了字典,在调用变量时,如果该变量未经声明,那么符号表中就没有它,也就没有关于它的字典的 key,那么程序会进行 keyerror 报错。
测试样例如下:
struct student {
int age;
}
int sum(int x, int y) {
int ret;
ret = x + y;
return ret;
}
int main() {
float a;
a = 1.567;
int b;
int[5][5] c;
c[1][1] = 10;
b = c[1][1];
int d;
int *e;
d = sum(b, c[1][1]);
if(d > 10) {
a = 1.0;
} else {
a = 2.0;
}
while(b < 10) {
d = d + 1;
b = b + 1;
}
return 0;
}