src/Pure/PIDE/markup.ML
changeset 51951 fab4ab92e812
parent 51665 cba83c9f72b9
child 51988 a9725750c53a
equal deleted inserted replaced
51950:13fb5e4f2893 51951:fab4ab92e812
     4 Isabelle-specific implementation of quasi-abstract markup elements.
     4 Isabelle-specific implementation of quasi-abstract markup elements.
     5 *)
     5 *)
     6 
     6 
     7 signature MARKUP =
     7 signature MARKUP =
     8 sig
     8 sig
       
     9   val parse_bool: string -> bool
       
    10   val print_bool: bool -> string
     9   val parse_int: string -> int
    11   val parse_int: string -> int
    10   val print_int: int -> string
    12   val print_int: int -> string
    11   type T = string * Properties.T
    13   type T = string * Properties.T
    12   val empty: T
    14   val empty: T
    13   val is_empty: T -> bool
    15   val is_empty: T -> bool
   157 structure Markup: MARKUP =
   159 structure Markup: MARKUP =
   158 struct
   160 struct
   159 
   161 
   160 (** markup elements **)
   162 (** markup elements **)
   161 
   163 
       
   164 (* booleans *)
       
   165 
       
   166 fun parse_bool "true" = true
       
   167   | parse_bool "false" = false
       
   168   | parse_bool s = raise Fail ("Bad boolean: " ^ quote s);
       
   169 
       
   170 val print_bool = Bool.toString;
       
   171 
       
   172 
   162 (* integers *)
   173 (* integers *)
   163 
   174 
   164 fun parse_int s =
   175 fun parse_int s =
   165   let val i = Int.fromString s in
   176   let val i = Int.fromString s in
   166     if is_none i orelse String.isPrefix "~" s
   177     if is_none i orelse String.isPrefix "~" s