词法&语法分析 语义分析 作用域扫描 引用消解 变量消解 变量未定义检查 变量重复定义检查 函数消解 函数未定义检查 函数重复定义检查 函数嵌套检查 类型检查 变量/常量类型推导 变量/常量赋值类型检查 函数传参/返回类型检查 语义合法性检查 break/continue语句只能出现在循环里 return语句只能出现在函数里 有返回类型的函数必须有return语句 检查常量是否被二次赋值 检查右值是否被赋值 if和else必须匹配 LLVM IR生成