123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475(* This file is free software, part of dolmen. See file "LICENSE" for more information *)(** Interfaces for Identifiers.
This module defines Interfaces that implementation of identifiers must
respect in order to be used to instantiated the corresponding
language classes. *)(** {2 Signature for Logic languages} *)moduletypeLogic=sigtypet(** The type of identifiers. *)typenamespace(** The type of namespaces. Namespaces are used to distinguish
identifiers with the same name, but that occur in different
contexts. For instance, in smtlib, sorts and terms live in
different namespaces; so a term constant can have the same name
as a sort, and still be syntactically different. *)valsort:namespace(** The namespace for sorts (also called types). Currently only used
for smtlib. *)valvar:namespace(** Namespace for variables (when they can be syntatically distinguished from
constants). *)valterm:namespace(** The usual namespace for terms. *)valattr:namespace(** Namespace used for attributes (also called annotations) in smtlib. *)valdecl:namespace(** Namespace used for declaration identifiers (for instance used
to filter declarations during includes) *)valtrack:namespace(** Namespace used to tag and identify sub-terms occuring in files. *)valmk:namespace->string->t(** Make an identifier from its namespace and name. *)valindexed:namespace->string->stringlist->t(** Make an indexed identifier from a namespace, basename and list of indexes. *)valqualified:namespace->stringlist->string->t(** Make a qualified identifier from a namespace, a list of modules (a path),
and a base name. *)valtracked:track:t->namespace->string->t(** An identifier with an additional name for tracking purposes. *)endmoduletypeResponse=LogicmoduletypeEscape=sigtypet(** The type of identifiers. *)valhash:t->int(** Hash function *)valequal:t->t->bool(** Equality function *)valname:t->string(** The name / string to print for the identifier *)end