grew_rule.mli 2.11 KB
Newer Older
bguillaum's avatar
bguillaum committed
1 2 3
open Grew_utils
open Grew_graph
open Grew_command
pj2m's avatar
pj2m committed
4 5
open Grew_edge
open Grew_fs
bguillaum's avatar
bguillaum committed
6
open Grew_ast
pj2m's avatar
pj2m committed
7 8 9

module Instance : sig
  type t = {
10 11 12 13 14 15 16 17 18 19
    graph: G_graph.t;
    history: Command.h list;
    rules: string list;
    big_step: Grew_types.big_step option;
    free_index: int;
    activated_node: Gid.t list;
  }

  (** [from_graph graph] return a fresh instance based on the input [graph]. *)
  val from_graph: G_graph.t -> t
bguillaum's avatar
bguillaum committed
20

21 22
  (** [rev_steps t] reverses the small step list: during rewriting, the last rule
      is in the head of the list and the reverse is needed for display. *)
pj2m's avatar
pj2m committed
23 24
  val rev_steps: t -> t

25 26 27
  (** [flatten inst] returns a fresh representation of the graph where gid created by node
      activation are map to basic gid. Graphs are flattened after each moduke. *)
  val flatten: t -> t
pj2m's avatar
pj2m committed
28

29
  (** [to_gr t] returns a string which contains the "gr" code of the current graph *)
30 31
  val to_gr: t -> string

bguillaum's avatar
bguillaum committed
32 33 34
  (** [to_conll t] returns a string which contains the "conll" code of the current graph *)
  val to_conll: t -> string

35
  (** [save_dep_png base t] writes a file "base.png" with the dep representation of [t].
bguillaum's avatar
bguillaum committed
36
      NB: if the Dep2pict is not available, nothing is done *)
37
  val save_dep_png: ?filter: string list -> ?main_feat: string -> string -> t -> unit
38

39
  (** [save_dot_png base t] writes a file "base.png" with the dot representation of [t] *)
40
  val save_dot_png: ?filter: string list -> ?main_feat: string -> string -> t -> unit
pj2m's avatar
pj2m committed
41 42 43 44 45 46 47
end

module Instance_set : Set.S with type elt = Instance.t

module Rule : sig
  type t

bguillaum's avatar
bguillaum committed
48 49
  val get_name: t -> string

bguillaum's avatar
bguillaum committed
50
  (** [get_loc t] returns the file location of the rule [t]. *)
51 52
  val get_loc: t -> Loc.t

53 54
  val is_filter: t -> bool

bguillaum's avatar
bguillaum committed
55 56
  val to_dep: t -> string

57 58 59
  (** [build ?local dir ast_rule] returns the Rule.t value corresponding to [ast_rule].
      [dir] is used for localisation of lp files *)
  val build: ?locals:Label.decl array -> string -> Ast.rule -> t
pj2m's avatar
pj2m committed
60 61

  (* raise Stop if some command fails to apply *)
62 63
  val normalize:
    string -> (* module name *)
bguillaum's avatar
bguillaum committed
64
    ?confluent:bool ->
65 66
    t list -> (* rule list *)
    t list -> (* filter list *)
pj2m's avatar
pj2m committed
67 68
    Instance.t ->
      Instance_set.t * Instance_set.t
69

pj2m's avatar
pj2m committed
70
end