Source file pyast_utils.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
module Version = struct
type t = {
major : int;
minor : int;
subminor : int;
} [@@deriving refl]
let parse (s : string) : t =
try
Scanf.sscanf s "%d.%d.%d"
(fun major minor subminor -> { major; minor; subminor })
with End_of_file ->
Scanf.sscanf s "%d.%d"
(fun major minor -> { major; minor; subminor = 0 })
let to_string { major; minor; subminor } : string =
Printf.sprintf "%d.%d.%d" major minor subminor
end