Files
Geneweb/bin/gwc/gwcomp.mli
2024-03-05 22:01:20 +01:00

100 lines
3.2 KiB
OCaml

(* Copyright (c) 2007-2008 INRIA *)
open Def
open Gwdb
type key = { pk_first_name : string; pk_surname : string; pk_occ : int }
(** Key to refer a person's definition *)
(** Represents a person in .gw file. It could be either reference to a person
(only key elements provided) or definition (all information provided). *)
type somebody =
| Undefined of key (** Reference to person *)
| Defined of (iper, iper, string) gen_person (** Person's definition *)
(** Blocks that could appear in .gw file. *)
type gw_syntax =
| Family of
somebody gen_couple
* sex
* sex
* (somebody * sex) list
* (string gen_fam_event_name
* cdate
* string
* string
* string
* string
* (somebody * sex * witness_kind) list)
list
* ((iper, iper, string) gen_person, ifam, string) gen_family
* (iper, iper, string) gen_person gen_descend
(** Family definition block. Contains:
- Family couple (father's and mother's definition/reference)
- Father's sex
- Mother's sex
- List of witnesses definition/reference with their sex.
- List of information about every family event (name, date,
place, reason, source, notes and witnesses)
- Family definition
- Children (descendants) *)
| Notes of key * string
(** Block that defines personal notes. First element represents
reference to person. Second is note's content. *)
| Relations of somebody * sex * (somebody, string) gen_relation list
(** Block that defines relations of a person with someone outisde of
family block. Contains:
- Concerned person definition/reference
- Sex of person
- List of his relations. *)
| Pevent of
somebody
* sex
* (string gen_pers_event_name
* cdate
* string
* string
* string
* string
* (somebody * sex * witness_kind) list)
list
(** Block that defines events of a person. Specific to gwplus format. Contains:
- Concerned person definition/reference
- Sex of person
- List of information about every personal event (name, date,
place, reason, source, notes and witnesses)*)
| Bnotes of string * string
(** Block that defines database notes and extended pages.
First string represents name of extended page ("" for
database notes, only one for file).
Second is note's or page's content. *)
| Wnotes of string * string
(** Block that defines wizard notes.
First string represents wizard's id.
Second is note's content. *)
val magic_gwo : string
(** .gwo file header *)
val line_cnt : int ref
(** Line counter while reading .gw file *)
val no_fail : bool ref
(** Do not raise exception if syntax error occured.
Instead print error information on stdout *)
val no_picture : bool ref
(** Save path to the images *)
val create_all_keys : bool ref
(** Forces to create all the keys for every persons (even for ? ?).
Enabled for gwplus format. *)
val comp_families : string -> unit
(** Compile .gw file and save result to corresponding .gwo *)
(* Ajout pour l'API *)
val date_of_string : string -> int -> date option
(** Parses [Def.date] from string that starts at pos [i] inside [s] *)