Move validation to a `print` function
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
This commit is contained in:
parent
a1d714f9d4
commit
8a87b5b5bf
|
@ -296,13 +296,13 @@ module Of_sexp = struct
|
||||||
let string = plain_string (fun ~loc:_ x -> x)
|
let string = plain_string (fun ~loc:_ x -> x)
|
||||||
let int =
|
let int =
|
||||||
basic "Integer" (fun s ->
|
basic "Integer" (fun s ->
|
||||||
match int_of_string (s Atom.Dune) with
|
match int_of_string s with
|
||||||
| x -> Ok x
|
| x -> Ok x
|
||||||
| exception _ -> Result.Error ())
|
| exception _ -> Result.Error ())
|
||||||
|
|
||||||
let float =
|
let float =
|
||||||
basic "Float" (fun s ->
|
basic "Float" (fun s ->
|
||||||
match float_of_string (s Atom.Dune) with
|
match float_of_string s with
|
||||||
| x -> Ok x
|
| x -> Ok x
|
||||||
| exception _ -> Result.Error ())
|
| exception _ -> Result.Error ())
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,9 @@ let is_valid_jbuild str =
|
||||||
not (loop (len - 1))
|
not (loop (len - 1))
|
||||||
|
|
||||||
let of_string s = A s
|
let of_string s = A s
|
||||||
|
let to_string (A s) = s
|
||||||
|
|
||||||
let to_string (A t) syntax =
|
let print (A t) syntax =
|
||||||
match syntax with
|
match syntax with
|
||||||
| Jbuild ->
|
| Jbuild ->
|
||||||
if is_valid_jbuild t then
|
if is_valid_jbuild t then
|
||||||
|
|
|
@ -5,8 +5,9 @@ type syntax = Jbuild | Dune
|
||||||
val is_valid_dune : string -> bool
|
val is_valid_dune : string -> bool
|
||||||
|
|
||||||
val of_string : string -> t
|
val of_string : string -> t
|
||||||
|
val to_string : t -> string
|
||||||
|
|
||||||
val to_string : t -> syntax -> string
|
val print : t -> syntax -> string
|
||||||
|
|
||||||
val of_int : int -> t
|
val of_int : int -> t
|
||||||
val of_float : float -> t
|
val of_float : float -> t
|
||||||
|
|
|
@ -90,13 +90,13 @@ let quoted s =
|
||||||
Bytes.unsafe_to_string s'
|
Bytes.unsafe_to_string s'
|
||||||
|
|
||||||
let rec to_string = function
|
let rec to_string = function
|
||||||
| Atom a -> Atom.to_string a Atom.Dune
|
| Atom a -> Atom.print a Atom.Dune
|
||||||
| Quoted_string s -> quoted s
|
| Quoted_string s -> quoted s
|
||||||
| List l -> Printf.sprintf "(%s)" (List.map l ~f:to_string |> String.concat ~sep:" ")
|
| List l -> Printf.sprintf "(%s)" (List.map l ~f:to_string |> String.concat ~sep:" ")
|
||||||
|
|
||||||
let rec pp ppf = function
|
let rec pp ppf = function
|
||||||
| Atom s ->
|
| Atom s ->
|
||||||
Format.pp_print_string ppf (Atom.to_string s Atom.Dune)
|
Format.pp_print_string ppf (Atom.print s Atom.Dune)
|
||||||
| Quoted_string s ->
|
| Quoted_string s ->
|
||||||
Format.pp_print_string ppf (quoted s)
|
Format.pp_print_string ppf (quoted s)
|
||||||
| List [] ->
|
| List [] ->
|
||||||
|
@ -137,7 +137,7 @@ let pp_print_quoted_string ppf s =
|
||||||
Format.pp_print_string ppf (quoted s)
|
Format.pp_print_string ppf (quoted s)
|
||||||
|
|
||||||
let rec pp_split_strings ppf = function
|
let rec pp_split_strings ppf = function
|
||||||
| Atom s -> Format.pp_print_string ppf (Atom.to_string s Atom.Dune)
|
| Atom s -> Format.pp_print_string ppf (Atom.print s Atom.Dune)
|
||||||
| Quoted_string s -> pp_print_quoted_string ppf s
|
| Quoted_string s -> pp_print_quoted_string ppf s
|
||||||
| List [] ->
|
| List [] ->
|
||||||
Format.pp_print_string ppf "()"
|
Format.pp_print_string ppf "()"
|
||||||
|
|
|
@ -12,8 +12,7 @@ module Atom : sig
|
||||||
val is_valid_dune : string -> bool
|
val is_valid_dune : string -> bool
|
||||||
|
|
||||||
val of_string : string -> t
|
val of_string : string -> t
|
||||||
|
val to_string : t -> string
|
||||||
val to_string : t -> syntax -> string
|
|
||||||
|
|
||||||
val of_int : int -> t
|
val of_int : int -> t
|
||||||
val of_float : float -> t
|
val of_float : float -> t
|
||||||
|
|
Loading…
Reference in New Issue