Theory Setup_Result_Commands
subsection ‹Setup Result Commands›
theory Setup_Result_Commands
imports Pure
keywords "setup_result" :: thy_decl
and "local_setup_result" :: thy_decl
begin
paragraph ‹Summary›
text ‹Setup and local setup with result commands›
ML‹
let
fun setup_result (name, (source, pos)) =
ML_Context.expression pos
(ML_Lex.read "val" @ name @ ML_Lex.read "= Context.>>> (" @ source @ ML_Lex.read ")")
val parse = Parse.embedded_ml
-- ((\<^keyword>‹=› || \<^keyword>‹≡›)
|-- Parse.position Parse.embedded_ml)
in
Outer_Syntax.command \<^command_keyword>‹setup_result›
"ML setup with result for global theory"
(parse >> (setup_result #> Context.theory_map #> Toplevel.theory));
Outer_Syntax.local_theory \<^command_keyword>‹local_setup_result›
"ML setup with result for local theory"
(parse >> (setup_result #> K #>
Local_Theory.declaration {pos = ⌂, syntax = false, pervasive = false}))
end
›
end