module Interface: sig
.. end
Raises WrongState
If solverstate
is
empty, which should never happen (we prevent this elsewhere).
Returns The current name-to-graph-node bindings
type
state =
exception WrongState
exception BadSelectIndex
exception CantAlias
exception BadIdent of string
val solverstate : state list Pervasives.ref
val copy_state : state -> state
val cur_graph : unit -> Depgraph.graph
Raises WrongState
If solverstate
is
empty, which should never happen (we prevent this elsewhere).
Returns The current name-to-graph-node bindings
val new_node : Depgraph.nodeid -> Depgraph.lang -> unit
val intersect : Depgraph.nodeid -> Depgraph.nodeid -> unit
val named_concat : Depgraph.nodeid -> Depgraph.nodeid -> Depgraph.nodeid -> unit
val anon_concat : Depgraph.nodeid -> Depgraph.nodeid -> Depgraph.nodeid -> unit
val reset_all : unit -> unit
Clear the entire state (including anything previously saved using
!push
. This is done for reset()
calls in the input, and when
processing multiple files (unless the -no-context-reset
commandline parameter is set).
val replace_context : Depgraph.graph -> unit
Replace the current environment with g
.
Raises Exception
Fails with "Lack of context" if solverstate
is
empty, which should never happen (we prevent this elsewhere).
g
: The new environment.
val push : unit -> unit
Save the current environment (i.e., push a copy of the current
dependency graph onto the context stack). This corresponds exactly
to push()
in the input language.
Raises Exception
Fails with "Lack of context" if solverstate
is
empty, which should never happen (we prevent this elsewhere).
exception Pop
val pop : unit -> unit
Discard the current environment (i.e., pop the current dependency
graph off the context stack). This corresponds exactly to
pop()
in the input language.
RaisesPop
if the context stack doesn't contain any previously
push
ed environments.
Exception
Fails with "Shouldn't happen." if there is no
current environment. This should never happen.
Output Functions
val unsat : unit -> unit
val single_sat : Depgraph.graph -> unit
val many_sat : Depgraph.graph list -> unit
val bool_yes : unit -> unit
val bool_no : unit -> unit
val inbound_warning : Depgraph.nodeid -> unit
val print_node : Depgraph.nodeid -> unit
val print_graph : unit -> unit
val print_strings : string -> string -> unit
val print_no_strings : string -> unit
Solving
val solve : 'a -> bool -> unit
val select : int -> unit
val issubset : Depgraph.nodeid -> Depgraph.nodeid -> unit
val areequal : Depgraph.nodeid -> Depgraph.nodeid -> unit
val all_nodes : Depgraph.graph -> Depgraph.nodeid list
val gen_strings : Depgraph.nodeid list -> unit
val show_machines : Depgraph.nodeid list -> unit