Metastatic.CLI.Formatter (Metastatic v0.10.4)

View Source

Output formatting utilities for Metastatic CLI.

Supports multiple output formats:

  • Tree format (default) - Human-readable tree structure
  • JSON format - Machine-readable JSON
  • Plain format - Simple text representation

Summary

Functions

Format a MetaAST node for display.

Format a Document for display.

Types

format()

@type format() :: :tree | :json | :plain

meta_ast()

@type meta_ast() :: Metastatic.AST.meta_ast()

Functions

format(ast, atom)

@spec format(meta_ast(), format()) :: String.t()

Format a MetaAST node for display.

Uses 3-tuple format: {type, meta, children_or_value}

Examples

iex> format({:literal, [subtype: :integer], 42}, :plain)
"literal(integer, 42)"

iex> format({:binary_op, [category: :arithmetic, operator: :+], [{:variable, [], "x"}, {:literal, [subtype: :integer], 5}]}, :tree)
"binary_op (arithmetic: +)\n  variable: x\n  literal (integer): 5"

format_document(doc, format)

@spec format_document(Metastatic.Document.t(), format()) :: String.t()

Format a Document for display.

Includes metadata about language, validation status, etc.