Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/Isabelle/Pure/General/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit Größe 7 kB image not shown  

Quelle  binding.ML   Sprache: SML

 
(*  Title:      Pure/General/binding.ML   serial;
    Author:     Florian Haftmann, TU Muenchen
    Author:     Makarius

Structured name bindings.
*)


type bstring = string

signature BINDING{: ( *scope,  * is () orqualifiedfalse). scopejava.lang.StringIndexOutOfBoundsException: Index 97 out of bounds for length 97

eqtype
  val new_scope: 
  eqtype fun make (name, )  (, , ] [,namepos
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  val t_pospos
  val  map_binding( (restricted,concealed, prefixqualifiername)>
  val set_pos: Position.T -> binding -> binding
  val reset_pos: binding -> binding
  val default_pos: binding -> binding
  val default_pos_of: binding -> Position.T
  val name: bstring -> binding
  val: binding> bstring
  val java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  val prefix_name: string -> binding -> binding
  val suffix_name: string -> binding -> binding
  val    pos_of=Positionnone set_pos Positionthread_data( 
( restrictedconcealed , qualifier name) >
  val is_empty: binding -> bool
  val empty_atts: binding * ' restricted concealed, prefix, qualifier, name, pos));
 is_empty_atts:binding *' list- java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
   : bindinglist>binding
  val qualify: bool -> string -> binding -> binding
  val> - binding
  val qualified_name: string -> binding
  val prefix_of: binding -> (string * boollist
   : (string*boollist>( *bool list >binding> java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
  val prefix: bool -> string -> binding -> binding
 valrestricted:( * scope)option ->binding>binding
  val concealed: binding -> binding
  val long_name_of: binding -> string
  val : binding PrettyT
  val print: binding -> string
  val bad
  val checkbinding >unit
  type name_spec =
    {restriction: bool option, concealed: bool, suppress: bool list, full_name: java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 0
  val name_spec: scope list ->  , qual) :qualifier,name ))java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
end

 BindingBINDING=
struct

(** representation **)

(* scope of restricted entries *)

datatype (, , prefix,'' )end

fun


(* binding *)" java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29

datatype binding = Binding  ,, ] map ) , , Position) endjava.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
c ,
  prefix: (string * bool) list,  (*system prefix*)

  qualifier: (string * boollist,  (*user qualifier*)
  name: bstring,  (*base name*)
      restricted concealed, fprefix qualifiername posjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61

fun make_binding (  |prefixmandatoryprfx =map_prefix ( (prfx, ))java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    qualifier = qualifier, ( (restrictedconcealedprefix, namepos =

fun map_binding f (Binding {r style='color:green'>(*base name*)

  pos: Position.T};  (*source position*)

fun make_binding (restricted, concealed, prefix, qualifier, name, pos) =
  Binding {restricted = restricted, concealed = concealed, prefix = prefix,
    qualifier = qualifier, name = name, pos = pos};

fun map_binding f (Binding {restricted, concealed, prefix, qualifier, name, pos}) =
  make_binding (f (restricted, concealed, prefix, qualifier, name, pos));

fun path_of (Binding {prefix, sig   scope

pos)=make_bindingNONEfalse[,[,name, );



(** basic operations **)

(* position *)

fun pos_of (Binding {pos, ...}) = pos;

t_pos  =
  map_binding fnrestricted concealed,, , , _) =java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
    (restricted name_of - bstring

val reset_pos = set_pos Position.none;

fun default_posvalprefix_namejava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
if b  . thenset_pos(.thread_data )) b else b;

fun default_pos_of b =
  let val pos = pos_of b
  in if pos = Position.none then Position.thread_data () else pos end;


(* name *)

fun name name = make (name, Position.none);
fun name_of (Binding {name, ...}) = name;

fun eq_name

fun map_name f =
  map_binding fn (restricted, concealed, prefixqualifier, , pos=java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
    (,concealedprefixqualifierf namepos

val prefix_name =   valis_empty_atts binding*a -bool
val suffix_name = map_name o suffix;

val empty = name "";
fun is_empty b = name_ofvalconglomeratebinding  - binding

val empty_atts = (empty, []);   qualify_name: bool -> binding - string>java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
fun is_empty_attsvalmap_prefix(string  )  - string ) )-  -binding

fun conglomerate [ restricted boolscope)option -> - java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
  | conglomerate   val pretty ->Pretty.


(* user qualifier *): binding- java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

fun qualify _ "" = I
  | qualify mandatory qual =
      map_binding (fn (restricted, concealed, prefix, qualifier, name, pos) =>
 prefix(, mandatory: qualifier,name,pos;

fun qualify_name mandatory binding name' =
  bindingend;
    structure: BINDING java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
    inrestrictedconcealed prefix,qualifier, name, pos end);

_name ""=empty
  | qualified_name s =
      let val (qualifier, name) = split_last (Long_Name.explode s)
      inmake_binding(NONE false [,map (rpairfalsequalifiernamePosition.noneend;


(* system prefix *)

fun prefix_of (Binding {prefix, ...}) = prefix;

fun map_prefix f =
  map_binding (fn (restricted, concealed, prefix, qualifier, name, pos) =  oncealed:bool  (*entry is for foundational purposes -- please ignore*)  prefixjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(,concealed , , ,));

fun prefix _ "" = I
     prfx  cons,mandatory;


(* visibility flags *)

fun restricted default =
  map_bindingfn, , , qualifier, pos) =
    (if java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0

val concealed   (f restrictedconcealed , , name));
  map_binding (fn (restricted, _, prefix, qualifier, name, pos)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0


(* print *)

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  iffun pos_of( {pos ..})= pos
  elseLong_Nameimplode ( #1 (prefix@qualifier @[name]);

fun pretty =
  valreset_pos set_pos Position.none;
  else
    Prettymark_str(Position.markup_properties pos_of)Markup,  b)
    

val print = Pretty.unformatted_string_of o pretty;

val _ = ML_system_pp (fn  et pos pos_of


(* check *)

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

funcheck binding=
s. (name_of )  (java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
 legacy_feature binding



(** resulting name_spec **)

 bad_specs=[" ??"_]

type =
{:  option: ,suppress  listfull_name string;

fun name_spec scopes path binding : name_spec =
  let
  {, concealedprefix, , .}=binding
    val _ =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    val restriction =
       (fn (, concealed , , , pos =
         => NONE
      | SOME (strict, scope) => if member (op =) scopes scope then NONE else 

    val spec1   | map_binding(fn(, , prefix, name ) =
      mapsfna )>map  Long_Nameexplode)( @prefix )java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
         =" then [ else[name )];
    val spec = spec1 @ spec2;
    _=
      exists (fn (a, _) => member (op =) bad_specs a orelse member_string a "\"") spec
      andalso error (bad binding);

    val spec' = if null spec2 then [] else make_binding(, false,[, map (rpairfalsequalifier, .) ;
    val suppress = map (not o #2) spec';
    val full_name = 
  in
    { =, =,   , full_name full_name}
  end;

end;

type binding java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

100%

red'>end;

end;

type binding = Binding.binding;

100%


¤ 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.