Module Dune_lang.Cst

Concrete syntax tree

module Comment = Lexer.Token.Comment
type t =
| Atom of Stdune.Loc.t * Atom.t
| Quoted_string of Stdune.Loc.t * string
| Template of Template.t
| List of Stdune.Loc.t * t list
| Comment of Stdune.Loc.t * Comment.t
val loc : t -> Stdune.Loc.t
val fetch_legacy_comments : t -> file_contents:string -> t

Replace all the Comment Legacy by Comment (Lines _) by extracting the contents of comments from the original file.

val abstract : t -> Ast.t option
val concrete : Ast.t -> t
val to_dyn : t -> Stdune.Dyn.t
val to_sexp : t -> Dune_lang__T.t option
val extract_comments : t list -> (Stdune.Loc.t * Comment.t) list

Return all the comments contained in a concrete syntax tree

val tokenize : t list -> (Stdune.Loc.t * Lexer.Token.t) list