Normalized boundary for already-expanded Elixir modules.
This module deliberately does not implement macro expansion or compile-time semantics: it records a normalized module snapshot so later phases can consume function clauses without owning them (the frontend boundary).
Summary
Functions
Normalizes an already-parsed defmodule AST.
Parses source text and normalizes the resulting module AST.
Functions
@spec from_ast(Macro.t()) :: Batata.Frontend.Module.t()
Normalizes an already-parsed defmodule AST.
@spec from_source(String.t()) :: Batata.Frontend.Module.t()
Parses source text and normalizes the resulting module AST.
This parses only. It does not call Macro.expand/2 or the Elixir compiler.