feat: 检查全局变量重复声明
- 在 FunctionChecker 类中增加了对全局变量重复声明的检查 - 如果全局变量已经存在,则添加语义错误信息
This commit is contained in:
parent
f1069d6e5d
commit
7fab3cc662
@ -59,7 +59,13 @@ public record FunctionChecker(Context ctx) {
|
||||
SymbolTable globalScope = new SymbolTable(null);
|
||||
for (DeclarationNode g : mod.globals()) {
|
||||
var t = ctx.parseType(g.getType());
|
||||
globalScope.define(new Symbol(g.getName(), t, SymbolKind.VARIABLE));
|
||||
// 检查全局变量是否重复声明
|
||||
if (!globalScope.define(new Symbol(g.getName(), t, SymbolKind.VARIABLE))) {
|
||||
ctx.errors().add(new SemanticError(
|
||||
g,
|
||||
"全局变量重复声明: " + g.getName()
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
// 遍历模块中所有函数定义
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user