Aether.Parser (Ichor v0.2.0)

Copy Markdown View Source

Parses .aether source into a fully resolved Aether.Grammar, in two stages: Aether.Reader (pure syntax -- a token/rule reference split, pragmas, the expression grammar -- into a concrete syntax tree with no desugaring) followed by Aether.Eval (that CST into Grammar.IR, handling everything that needs whole-grammar context: predefined-token override/use tracking, case-insensitivity, character-class/regex desugaring, inline-literal promotion, @skip splicing, and final @root/@skip validation).

This module is the combined convenience entry point -- same relationship run/1,2 has to parse/1 on a generated grammar module, or Grammar.VM's own run/4 has to parse/2.

Summary

Functions

Parses source into a fully compiled Aether.Grammar.

Functions

parse(source, file \\ nil)

@spec parse(String.t(), String.t() | nil) ::
  {:ok, Aether.Grammar.t()} | {:error, Ichor.Error.t()}

Parses source into a fully compiled Aether.Grammar.