package dune

  1. Overview
  2. Docs

Parsing of s-expressions.

This library is internal to dune and guarantees no API stability.

module File_syntax : sig ... end
module Atom : sig ... end
module Template : sig ... end
type t =
  1. | Atom of Atom.t
  2. | Quoted_string of string
  3. | List of t list
  4. | Template of Template.t

The S-expression type

val atom : string -> t

atom s convert the string s to an Atom.

  • raises Exn.Code_error

    if s does not satisfy Atom.is_valid s.

val atom_or_quoted_string : string -> t
val unsafe_atom_of_string : string -> t
val to_string : t -> syntax:File_syntax.t -> string

Serialize a S-expression

val pp : File_syntax.t -> t -> _ Stdune.Pp.t

Serialize a S-expression using indentation to improve readability

module Deprecated : sig ... end
module Ast : sig ... end

Abstract syntax tree

val add_loc : t -> loc:Stdune.Loc.t -> Ast.t
module Cst : sig ... end

Concrete syntax tree

val insert_comments : Cst.t list -> (Stdune.Loc.t * Cst.Comment.t) list -> Cst.t list

Insert comments in a concrete syntax tree. Comments are inserted based on their location.

module Lexer : sig ... end
module Parser : sig ... end
val parse_string : fname:string -> mode:'a Parser.Mode.t -> ?lexer:Lexer.t -> string -> 'a
val parse_cst_string : fname:string -> ?lexer:Lexer.t -> string -> Cst.t list
module Encoder : sig ... end
module Decoder : sig ... end
module type Conv = sig ... end
val to_dyn : t Stdune.Dyn.Encoder.t
module Io : sig ... end
OCaml

Innovation. Community. Security.