Ceres.CeresFormat
Helper for string_of_sexp.
Local Definition dstring_of_sexp {A} (dstring_A : A -> DString.t)
: sexp_ A -> DString.t
:= fix _to_dstring (x : sexp_ A) : DString.t :=
match x with
| Atom_ a => dstring_A a
| List nil => "()"%string
| List (x :: xs) => fun s0 =>
( "("
:: _to_dstring x
(fold_right (fun x => " "%char ++ _to_dstring x)%dstring
(")" :: s0)
xs))%string
end%dstring.
: sexp_ A -> DString.t
:= fix _to_dstring (x : sexp_ A) : DString.t :=
match x with
| Atom_ a => dstring_A a
| List nil => "()"%string
| List (x :: xs) => fun s0 =>
( "("
:: _to_dstring x
(fold_right (fun x => " "%char ++ _to_dstring x)%dstring
(")" :: s0)
xs))%string
end%dstring.
Definition string_of_sexp_ {A} (string_A : A -> string) (x : sexp_ A) : string :=
dstring_of_sexp string_A x ""%string.
dstring_of_sexp string_A x ""%string.
Definition string_of_atom (a : atom) : string :=
match a with
| Num n => string_of_Z n
| Str s => escape_string s
| Raw s => s
end.
match a with
| Num n => string_of_Z n
| Str s => escape_string s
| Raw s => s
end.