Skip to main content

analyze

Function analyze 

Source
pub fn analyze(
    source: Arc<SourceFile>,
    kind: ModuleKind,
    path: &Path,
    forms: Vec<Form>,
    warnings_as_errors: bool,
    source_manager: Arc<dyn SourceManager>,
) -> Result<Box<Module>, SyntaxError>
Expand description

Constructs and validates a Module, given the forms constituting the module body.

As part of this process, the following is also done:

  • Documentation comments are attached to items they decorate
  • Import table is constructed
  • Symbol resolution is performed:
    • Constants referenced by name are replaced with the value of that constant.
    • Calls to imported procedures are resolved concretely
  • Semantic analysis is performed on the module to validate it