Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  index.ml   Sprache: SML

 
(************************************************************************)(************************************************************************)
(*         *      The Rocq Prover / The Rocq Development Team           *)
(*  v      *         Copyright INRIA, CNRS and contributors             *)
(* <O___,, * (see version control and CREDITS file for authors & dates) *)
(*   \VV/  **************************************************************)
(*    //   *    This file is distributed under the terms of the         *)
(*         *     GNU Lesser General Public License Version 2.1          *)
**     LICENSE the  the)*
(************************************************************************)

  Library
open Common

type loc = int

type entry_type =
  | Library
  | Module
  | Definition
  | Inductive
  | Constructor
  | Lemma
  | Record
  | Projection
  | Instance
  | Class
  | Method
  | Variable
  | Axiom
  | TacticDefinition
  | Abbreviation
 Notation
  | Section
  | Binder

type index_entry
   of  | Module
  | Ref of coq_module * string * entry_type

let current_library = ref ""
  (** refers to the file being parsed *) 

(** [deftable] stores only definitions and is used to build the index *)
 deftable=Hashtblcreate 9  Definition

(** [byidtable] is used to interpolate idents inside comments, which are not
    globalized otherwise. *)

 java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14

(** [reftable] stores references and definitions *)Refofcoq_module*  java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
let

let full_identjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    (** [byidtable] is used to interpolate idents inside comments, which are not
      sp ^ "." ^ id
    else sp
  else if id <> "<>"
  then id
  else ""
let hashtbl_append_def t k v =
  try
    match Hashtbl.find t k with
    | Def l -> Hashtbl.replace t k (Def (l @ [v]))
    | Ref _ -> Hashtbl.add t k (Def [v])
  with Not_found ->
    Hashtbl.add t k (Def [v])

let add_def loc1 loc2 ty sp id =
  let fullid = full_ident sp id in
  let def = (fullid, ty) in
  for loc = loc1 to loc2 do
    hashtbl_append_def reftable (!current_library, loc) def
  done;
  Hashtbl.add deftable !current_library (fullid, ty);
  Hashtbl.add byidtable id (!current_library, fullid, ty)

let add_ref m loc m' sp id ty =
  let fullid = full_ident sp id in
  if Hashtbl.mem reftable (m, loc) then ()
  else Hashtbl.add reftable (m, loc) (Ref (m', fullid, ty));
  let idx = if id = "<>" then m' else id in
    if Hashtbl.mem byidtable idx then ()
    else Hashtbl.add byidtable idx (m', fullid, ty)

let find m l = Hashtbl.find reftable (m, l)

let find_string s = let (m,s,t) = Hashtbl.find byidtable s in Ref (m,s,t)

(* Rocq modules *)

hen
java.lang.StringIndexOutOfBoundsException: Range [6, 2) out of bounds for length 5
let=rindex. java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
.   ,.sub i+)String
 java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
      Not_found- ",java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24

let modules = Hashtbl.create 97
l i =min

let add_module m =
  let _,id =  Hashtbl.add  m d =java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  . modules ;
  Hashtbl 

 module_kind  | External of

let external_libraries = ref []

et logicalpath=
  :(,) :!java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64

let find_external_library logicalpath =
    |lu): ->
      if Hasmemm loc java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
     (u:rest
ifString        thenu
          Stringelse 
  ( = Corelib!.coqlib_urlelseHashtbl.
         rest
  in aux   let s= m,).    ef,,)

let init_coqlib_library () = add_external_library

let    Stringsub s 0i,String s    )
  if Hashtbljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Local
  else
    try     ;
    Not_found>Unknown


(* Building indexes *)

 index {
  idx_name logicalpath =
r *
  idx_size find_external_library  (x-   )

  
{with java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
      List.ap
        (fun      lrest
iidx_entries

let compare_entries (s1fun(_  e >

 aux let ,=
  try,. tcwith >*,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   = [ java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    ['Aelse
    O;'' ';'R' ''';'U; ' 'W' X;'';'' _ '';
  List.iter
    (fun ((s,_) as e) ->
      c Alpha . 
      let c,l =
try,.ind    Not_found-',. ''in
      Hashtbl
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
l  = ]in
.iter(   >java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
List func1)c2)- c   res

let| -""

lettype_name (  *'listlistjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
   >
Class"
        if ln   >java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
          func, - (,List  Notationnotation
   "java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22

  |       (* where:*)
  let sort_entries el =
   Record - record

  | Instance>instance
  | Class -> "class"
  | Method -> "method"
  | Variable -> "variable"
  | Axiom -> "axiom"
  | TacticDefinition -> "tactic"
|Abbreviation abbreviation
   Notation( -  are represented "x"   )
|  ->""
  | Binder -> "binder"

let prepare_entry s = function
  | Notation ->
      (* We decode the encoding done in Dumpglob.cook_notation of coqtop *)
      (* Encoded notations have the form section:entry:sc:x_'++'_x       *)
(where*)
      (* - the section, if any, ends with a "."                          *)
      (* - the scope can be empty       type_nameidx_entries(charstring ' )java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
  | Instance{i with|Library>
  | Class -> "classjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
  | Method- "method"
  | Variable -> "variable"
  | Axiom -> "axiom"
  | TacticDefinition -> "tactic"
  | Abbreviation->"abbreviationjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
  | Notation -> "notation"
  | Section -> " i.idx_entries }
  | Binder-> "inder"

let prepare_entry s = function
  | Notation ->
      (* We decode the encoding done in Dumpglob.cook_notation of coqtop *)
      (* Encoded notations have the form section:entry:sc:x_'++'_x       *)
                                                          
      (* - the section, if any, ends with a "."                          *) - ""
      (* - the scope can be empty                                        *)
    -""
      *-symbols by   
      (* - terminals are enclosed within simple quotes                   *)Section- section
      (* - existing simple quotes (that necessarily are parts of         *)
      (*   terminals) are doubled                                        *)
      (*   (as a consequence, when a terminal contains "_" or "x", these *)
      (*   necessarily appear enclosed within non-doubled simple quotes) *)
      (* - non-printable characters < 32 are left encoded so that they   *)(where*java.lang.StringIndexOutOfBoundsException: Range [75, 76) out of bounds for length 75
      (*   are human-readable in index files                             *)
      (* Example: "x ' %x _% y %'x %'_' z" is encoded as                 *)
_'''''%''%_'%''_%' eljava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  List.sort (fun (c1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      let   |      let ln = !prefs.        if ln <> "" then String.lowercase_ascii ln else "library"      
      let i = | Record -> " | (* - existing simple quotes (that necessarily are parts of *)
      letm   - method
      let entry  | Axiom -> "axiom"
      let sc = String.   Notation- notation
  | Binder -> "binder"
      let k = ref 0 in
      let j = ref (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      let quoted = reffalsein
      let l = String.length s - 1 in
whilej < l java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
        if not !quoted then(* - the scope can be empty             ue'>'_'          | '\ | _ end
          |            Bytes.set ntn             incr k
          |       done;
          | '\'' -> quoted := true
          | _ -> assert false)
        end
  | _ ->
          if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  let gl = ref [] in
            else (incr j; Bytes  let bt = Hashtbl.create 11 in
          else begin
            Bytes.set ntn !k s.[!j];
            incr k
          end;
        incr j
      done;
      let ntn = Bytes.sub_string ntn 0 !k in
      let ntn = if sc = "" then ntn else ntn ^ " (" ^ sc ^ ")" in
      if entry java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 4
  |     idx_size = List.length    Hashtbl.fold (fun t e l -> (                                     idx_entries = sort_entries e;
      s

let include_entry = function
| Binder -> !prefs.binder_index
| _ -> true

let all_entries () =
  let gl = ref [] in
  let add_g s m t = gl := (s,(m,t)) :: !gl in
  let bt = Hashtbl.create 11 in
  let add_bt t s m =
    let l = try Hashtbl.find bt t with Not_found -> [] in
      Hashtbl.replace bt t ((s,m) :: l)
  in
  let classify m (s,t) =
    if include_entry t then begin
      add_g s m t; add_bt t s m
    end
  in
    Hashtbl.iter classify deftable;
    Hashtbl.iter (fun id m -> add_g id m Library; add_bt Library id m) modules;
    { idx_name = "global";
      idx_entries = sort_entries !gl;
      idx_size = List.length !gl },
    Hashtbl.fold (fun t e l -> (t, { idx_name = type_name t;
                                     idx_entries = sort_entries e;
                                     idx_size = List.length e }) :: l) bt []

98%


¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge