ocaml-migrate-parsetree

Convert OCaml parsetrees between different versions
IN THIS PACKAGE
type ast =
| Impl : (module Migrate_parsetree__Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.structure = 'concrete) * 'concrete -> ast
| Intf : (module Migrate_parsetree__Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.signature = 'concrete) * 'concrete -> ast

A marshalled ast packs the ast with the corresponding version of the frontend

type filename = string

A simple alias used for the filename of the source that produced an AST

type read_error =
| Not_a_binary_ast of string(*

The input doesn't contain a binary AST. The argument corresponds to the bytes from the input that were consumed.

*)
| Unknown_version of string(*

The input contains a binary AST for an unknown version of OCaml. The argument is the unknown magic number.

*)
val from_channel : in_channel -> ( filename * ast, read_error ) Result.result

Load a marshalled AST from a channel

Any exception raised during unmarshalling (see Marshal) can escape.

val from_bytes : bytes -> int -> ( filename * ast, read_error ) Result.result

Load a marshalled AST from a byte string.

See from_channel description for exception that can be raised.

val to_channel : out_channel -> filename -> ast -> unit

Marshal an AST to a channel

val to_bytes : filename -> ast -> bytes

Marshal an AST to a byte string