Metastatic.Adapters.Haskell (Metastatic v0.10.4)

View Source

Haskell language adapter for Metastatic.

This adapter provides bidirectional transformation between Haskell source code and MetaAST (M2) representation.

Architecture

  • parse/1 - Haskell source → Haskell AST (via haskell-src-exts)
  • to_meta/1 - Haskell AST → MetaAST (M2 abstraction)
  • from_meta/2 - MetaAST → Haskell AST (M2 reification)
  • unparse/1 - Haskell AST → Haskell source (via haskell-src-exts)

Example

iex> {:ok, ast} = Metastatic.Adapters.Haskell.parse("1 + 2")
iex> {:ok, meta_ast, _metadata} = Metastatic.Adapters.Haskell.ToMeta.transform(ast)
iex> meta_ast
{:binary_op, :arithmetic, :+, {:literal, :integer, 1}, {:literal, :integer, 2}}