Expand description
语义分析器模块。
负责语义检查、变量作用域分析、类型推导等高级语言特性的处理。 AST 语义分析模块:提供变量定义检查、类型推断、作用域管理等功能。
本模块实现了 Onion 语言 AST 的语义分析,包括变量定义检查、类型推断、 作用域管理、以及自动捕获变量分析。主要用于编译期的静态检查和优化。
§主要类型
AssumedType
:推断的变量类型枚举Variable
:变量信息,包含类型推断VariableFrame
和VariableContext
:作用域和变量上下文管理ASTAnalysisDiagnostic
:分析过程中的诊断信息
§核心功能
- 变量定义和使用检查
- 作用域管理(Frame 和 Context)
- 类型推断(基于 AST 节点类型)
- 自动捕获变量分析和重构
- 断点词法上下文分析
§用法示例
ⓘ
let mut diagnostics = DiagnosticCollector::new();
let context = analyze_ast(&ast, &mut diagnostics, &None)?;
let (captured_vars, rebuilt_ast) = auto_capture_and_rebuild(&ast);
Structs§
- Analysis
Output - 分析输出结果。
- Variable
- 变量信息结构。
- Variable
Context - 变量上下文管理器。
- Variable
Frame - 变量作用域帧。
Enums§
- ASTAnalysis
Diagnostic - AST 分析诊断信息类型。
- Assumed
Type - 推断的变量类型枚举。
Functions§
- analyze_
ast - 分析 AST 的主入口函数。
- auto_
capture - 自动捕获变量分析的递归实现。
- auto_
capture_ and_ rebuild - 自动捕获变量并重构 AST。