123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117(**************************************************************************)(* *)(* ACG development toolkit *)(* *)(* Copyright 2008-2021 INRIA *)(* *)(* More information on "http://acg.gforge.inria.fr/" *)(* License: CeCILL, see the LICENSE file or "http://www.cecill.info" *)(* Authors: see the AUTHORS file *)(* *)(* *)(* *)(* *)(* $Rev:: $: Revision of last commit *)(* $Author:: $: Author of last commit *)(* $Date:: $: Date of last commit *)(* *)(**************************************************************************)openLogic.Abstract_syntaxopenLogic.LambdamoduletypeSignature_sig=sigexceptionDuplicate_type_definitionexceptionDuplicate_term_definitionexceptionNot_foundtypettypeentrytypetermtypestypetypedata=|Typeofstype|Termof(term*stype)valempty:(string*Abstract_syntax.location)->tvalname:t->(string*Abstract_syntax.location)valadd_entry:Abstract_syntax.sig_entry->t->t(* REVIEW: Commented out because of still missing impl. *)(* val find_type : string -> t -> stype *)valfind_term:string->t->term*stypevalis_type:string->t->boolvalis_constant:string->t->bool*Abstract_syntax.syntactic_behavioroption(*val precedence : string -> t -> (float*Abstract_syntax.associativity) option *)valnew_precedence:?before:string->string->t->(float*t)valtype_to_string:stype->t->stringvalterm_to_string:term->t->stringvalid_to_string:t->int->Abstract_syntax.syntactic_behavior*stringvaltype_to_formatted_string:Format.formatter->stype->t->unitvalterm_to_formatted_string:Format.formatter->term->t->unit(* val type_to_string : stype -> t -> string*)valunfold_type_definition:int->t->Lambda.stypevalunfold_term_definition:int->t->Lambda.termvalexpand_type:Lambda.stype->t->Lambda.stypevalexpand_term:Lambda.term->t->Lambda.termvaladd_warnings:Error.warninglist->t->t(* val get_warnings : t -> Error.warning list *)valto_string:t->string(* val term_to_string : term -> t -> string *)(* val raw_to_string : term -> string*)valconvert_term:Abstract_syntax.term->Abstract_syntax.type_def->t->term*stypevalconvert_type:Abstract_syntax.type_def->t->stypevaltype_of_constant:string->t->stypevaltypecheck:Abstract_syntax.term->stype->t->termvalfold:(entry->'a->'a)->'a->t->'avalentry_to_data:entry->datavalget_binder_argument_functional_type:string->t->Abstract_syntax.abstractionoptionvalis_declared:entry->t->stringoptionvaleta_long_form:term->stype->t->termvalunfold:term->t->termvalis_2nd_order:t->boolendmoduletypeLexicon_sig=sigexceptionDuplicate_type_interpretationexceptionDuplicate_constant_interpretationtypetmoduleSignature:Signature_sigwithtypeterm=Lambda.termtypesignature=Signature.ttyperesumetypedependency=|Signaturesof(signature*signature)|Lexiconsof(t*t)typedata=|Signatureofsignature|Lexiconoftvalget_dependencies:t->dependencyvalempty:?non_linear:bool->abs:signature->obj:signature->(string*Abstract_syntax.location)->tvalis_linear:t->boolvalname:t->(string*Abstract_syntax.location)valinsert:Abstract_syntax.lex_entry->t->tvalto_string:t->stringvalinterpret_type:Signature.stype->t->Signature.stype(* val interpret_type : Lambda.stype -> t -> Lambda.stype *)valinterpret_term:Lambda.term->t->Lambda.termvalinterpret:Signature.term->Signature.stype->t->(Signature.term*Signature.stype)valget_sig:t->(signature*signature)valcheck:t->unitvalparse:Signature.term->Signature.stype->t->resumevalget_analysis:resume->t->Lambda.termoption*resumevalis_empty:resume->boolvalcompose:t->t->(string*Abstract_syntax.location)->tvalprogram_to_buffer:t->Buffer.tvalprogram_to_log:Logs.src->Logs.level->t->unitvalquery_to_buffer:Signature.term->Signature.stype->t->Buffer.tvalquery_to_log:Logs.src->Logs.level->Signature.term->Signature.stype->t->unitvalupdate:t->(string->data)->tend