Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Registering and checking builtin symbols.
val get : Sig_state.sig_state -> Common.Pos.popt -> string -> Term.sym
get ss pos name
returns the symbol mapped to the builtin name
. If the symbol cannot be found then Fatal
is raised.
val get_opt : Sig_state.sig_state -> string -> Term.sym option
get_opt ss name
returns Some s
where s
is the symbol mapped to the builtin name
, and None
otherwise.
val htbl :
(string, Sig_state.sig_state -> Common.Pos.popt -> Term.sym -> unit)
Stdlib.Hashtbl.t
Hash-table used to record checking functions for builtins.
val check :
Sig_state.sig_state ->
Common.Pos.popt ->
string ->
Term.sym ->
unit
check ss pos name sym
runs the registered check for builtin symbol name
on the symbol sym
(if such a check has been registered). Note that the bmap
argument is expected to contain the builtin symbols in scope, and the pos
argument is used for error reporting.
val register :
string ->
(Sig_state.sig_state -> Common.Pos.popt -> Term.sym -> unit) ->
unit
register name check
registers the checking function check
, for the builtin symbols named name
. When the check is run, check
receives as argument a position for error reporting as well as the map of every builtin symbol in scope. It is expected to raise the Fatal
exception to signal an error. Note that this function should not be called using a name
for which a check has already been registered.
val register_expected_type :
Term.term Lplib.Base.eq ->
Term.term Lplib.Base.pp ->
string ->
(Sig_state.sig_state -> Common.Pos.popt -> Term.term) ->
unit
register_expected_type name build pp
registers a checking function that checks the type of a symbol defining the builtin name
against a type constructed using the given build
function.