equal
deleted
inserted
replaced
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 |