(**************************************************************************) (* *) (* Ocamlgraph: a generic graph library for OCaml *) (* Copyright (C) 2004-2007 *) (* Sylvain Conchon, Jean-Christophe Filliatre and Julien Signoles *) (* *) (* This software is free software; you can redistribute it and/or *) (* modify it under the terms of the GNU Library General Public *) (* License version 2, with the special exception on linking *) (* described in file LICENSE. *) (* *) (* This software is distributed in the hope that it will be useful, *) (* but WITHOUT ANY WARRANTY; without even the implied warranty of *) (* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *) (* *) (**************************************************************************) (* $Id: gml.mli,v 1.3 2005-07-06 13:20:31 conchon Exp $ *) (** Parser for GML file format *) type value = | Int of int | Float of float | String of string | List of value_list and value_list = (string * value) list module Parse (B : Builder.S) (L : sig val node : value_list -> B.G.V.label (** how to build the node label out of the set of GML attributes; for example {v node [ id 12 label "foo" ] v} will call this function with [["id", Int 12; "label", String "foo"]] *) val edge : value_list -> B.G.E.label (** how to build the edge label out of the set of GML attributes *) end) : sig val parse : string -> B.G.t end module Print (G : sig module V : sig type t val hash : t -> int val equal : t -> t -> bool type label val label : t -> label end module E : sig type t type label val src : t -> V.t val dst : t -> V.t val label : t -> label end type t val iter_vertex : (V.t -> unit) -> t -> unit val iter_edges_e : (E.t -> unit) -> t -> unit end) (L : sig val node : G.V.label -> value_list val edge : G.E.label -> value_list end) : sig val print : Format.formatter -> G.t -> unit end