src/Pure/General/properties.ML
changeset 46829 9770573e2172
parent 43780 2cb2310d68b6
child 46830 224d01fec36d
equal deleted inserted replaced
46828:b1d15637381a 46829:9770573e2172
     8 sig
     8 sig
     9   type entry = string * string
     9   type entry = string * string
    10   type T = entry list
    10   type T = entry list
    11   val defined: T -> string -> bool
    11   val defined: T -> string -> bool
    12   val get: T -> string -> string option
    12   val get: T -> string -> string option
    13   val get_int: T -> string -> int option
       
    14   val put: entry -> T -> T
    13   val put: entry -> T -> T
    15   val put_int: string * int -> T -> T
       
    16   val remove: string -> T -> T
    14   val remove: string -> T -> T
    17 end;
    15 end;
    18 
    16 
    19 structure Properties: PROPERTIES =
    17 structure Properties: PROPERTIES =
    20 struct
    18 struct
    21 
    19 
    22 type entry = string * string;
    20 type entry = string * string;
    23 type T = entry list;
    21 type T = entry list;
    24 
    22 
    25 fun defined (props: T) name = AList.defined (op =) props name;
    23 fun defined (props: T) name = AList.defined (op =) props name;
    26 
       
    27 fun get (props: T) name = AList.lookup (op =) props name;
    24 fun get (props: T) name = AList.lookup (op =) props name;
    28 fun get_int props name = (case get props name of NONE => NONE | SOME s => Int.fromString s);
       
    29 
       
    30 fun put entry (props: T) = AList.update (op =) entry props;
    25 fun put entry (props: T) = AList.update (op =) entry props;
    31 fun put_int (name, i) = put (name, signed_string_of_int i);
       
    32 
       
    33 fun remove name (props: T) = AList.delete (op =) name props;
    26 fun remove name (props: T) = AList.delete (op =) name props;
    34 
    27 
    35 end;
    28 end;