equal
deleted
inserted
replaced
46 val internal: (morphism -> attribute) -> Token.src |
46 val internal: (morphism -> attribute) -> Token.src |
47 val add_del: attribute -> attribute -> attribute context_parser |
47 val add_del: attribute -> attribute -> attribute context_parser |
48 val thm: thm context_parser |
48 val thm: thm context_parser |
49 val thms: thm list context_parser |
49 val thms: thm list context_parser |
50 val multi_thm: thm list context_parser |
50 val multi_thm: thm list context_parser |
|
51 val check_attribs: Proof.context -> Token.src list -> Token.src list |
|
52 val read_attribs: Proof.context -> Symbol_Pos.text * Position.T -> Token.src list |
51 val transform_facts: morphism -> |
53 val transform_facts: morphism -> |
52 (Attrib.binding * (thm list * Token.src list) list) list -> |
54 (Attrib.binding * (thm list * Token.src list) list) list -> |
53 (Attrib.binding * (thm list * Token.src list) list) list |
55 (Attrib.binding * (thm list * Token.src list) list) list |
54 val partial_evaluation: Proof.context -> |
56 val partial_evaluation: Proof.context -> |
55 (binding * (thm list * Token.src list) list) list -> |
57 (binding * (thm list * Token.src list) list) list -> |
272 val thm = gen_thm Facts.the_single; |
274 val thm = gen_thm Facts.the_single; |
273 val multi_thm = gen_thm (K I); |
275 val multi_thm = gen_thm (K I); |
274 val thms = Scan.repeat multi_thm >> flat; |
276 val thms = Scan.repeat multi_thm >> flat; |
275 |
277 |
276 end; |
278 end; |
|
279 |
|
280 |
|
281 (* read attribute source *) |
|
282 |
|
283 fun check_attribs ctxt raw_srcs = |
|
284 let |
|
285 val srcs = map (check_src ctxt) raw_srcs; |
|
286 val _ = map (attribute ctxt) srcs; |
|
287 in srcs end; |
|
288 |
|
289 fun read_attribs ctxt (text, pos) = |
|
290 let |
|
291 val lex = #1 (Keyword.get_lexicons ()); |
|
292 val syms = Symbol_Pos.explode (text, pos); |
|
293 in |
|
294 (case Token.read lex Parse.attribs (syms, pos) of |
|
295 [raw_srcs] => check_attribs ctxt raw_srcs |
|
296 | _ => error ("Malformed attributes" ^ Position.here pos)) |
|
297 end; |
277 |
298 |
278 |
299 |
279 (* transform fact expressions *) |
300 (* transform fact expressions *) |
280 |
301 |
281 fun transform_facts phi = map (fn ((a, atts), bs) => |
302 fun transform_facts phi = map (fn ((a, atts), bs) => |