Module Parsexp.Cst

Concrete syntax tree of s-expressions

This module exposes a type that describe the full contents of a source file containing s-expressions.

One can use this type to do low-level rewriting of s-expression files.

type t =
| Atom of {
loc : Positions.range;
atom : string;

(** Original unescaped atom, in case it is a double-quoted atom. The string includes the enclosing double quotes. *)

unescaped : string option;
}
| List of {
loc : Positions.range;
elements : t_or_comment list;
}
type t_or_comment =
| Sexp of t
| Comment of comment
type comment =
| Plain_comment of {
loc : Positions.range;
comment : string;
}

(** Line or block comment *)

| Sexp_comment of {
hash_semi_pos : Positions.pos;
comments : comment list;
sexp : t;
}
include sig ... end
val compare : t ‑> t ‑> int
val compare_t_or_comment : t_or_comment ‑> t_or_comment ‑> int
val compare_comment : comment ‑> comment ‑> int
module Forget : sig ... end