Module analyzer

Source
Expand description

语义分析器模块。

负责语义检查、变量作用域分析、类型推导等高级语言特性的处理。 AST 语义分析模块:提供变量定义检查、类型推断、作用域管理等功能。

本模块实现了 Onion 语言 AST 的语义分析,包括变量定义检查、类型推断、 作用域管理、以及自动捕获变量分析。主要用于编译期的静态检查和优化。

§主要类型

  • AssumedType:推断的变量类型枚举
  • Variable:变量信息,包含类型推断
  • VariableFrameVariableContext:作用域和变量上下文管理
  • 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§

AnalysisOutput
分析输出结果。
Variable
变量信息结构。
VariableContext
变量上下文管理器。
VariableFrame
变量作用域帧。

Enums§

ASTAnalysisDiagnostic
AST 分析诊断信息类型。
AssumedType
推断的变量类型枚举。

Functions§

analyze_ast
分析 AST 的主入口函数。
auto_capture
自动捕获变量分析的递归实现。
auto_capture_and_rebuild
自动捕获变量并重构 AST。