forked from Isabelle_DOF/Isabelle_DOF
built in syntactic checks for trimming macros
This commit is contained in:
parent
005922ffda
commit
4c5fc4bc53
|
@ -427,23 +427,21 @@ end
|
||||||
|
|
||||||
ML\<open>
|
ML\<open>
|
||||||
val parse_literal = Parse.alt_string || Parse.cartouche
|
val parse_literal = Parse.alt_string || Parse.cartouche
|
||||||
val parse_define_shortcut = (Parse.binding
|
val parse_define_shortcut = Parse.binding
|
||||||
-- ((\<^keyword>\<open>\<rightleftharpoons>\<close> || \<^keyword>\<open>==\<close>) |-- parse_literal))
|
-- ((\<^keyword>\<open>\<rightleftharpoons>\<close> || \<^keyword>\<open>==\<close>) |-- parse_literal)
|
||||||
--|Parse.underscore
|
--|Parse.underscore
|
||||||
-- parse_literal
|
-- parse_literal
|
||||||
-- (Scan.option (\<^keyword>\<open>(\<close> |-- Parse.ML_source --|\<^keyword>\<open>)\<close>))
|
-- (Scan.option (\<^keyword>\<open>(\<close> |-- Parse.ML_source --|\<^keyword>\<open>)\<close>))
|
||||||
|
|
||||||
fun define_macro (X,NONE) = (uncurry(uncurry(uncurry DOF_lib.define_macro)))(X,K(K()))
|
fun define_macro (X,NONE) = (uncurry(uncurry(uncurry DOF_lib.define_macro)))(X,K(K()))
|
||||||
|define_macro (X,SOME(src:Input.source)) =
|
|define_macro (X,SOME(src:Input.source)) =
|
||||||
let val _ = ()
|
let val check_code = K(K())
|
||||||
in
|
in (uncurry(uncurry(uncurry DOF_lib.define_macro)))(X,check_code)
|
||||||
(uncurry(uncurry(uncurry DOF_lib.define_macro)))(X,K(K()))
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
val _ = Outer_Syntax.command \<^command_keyword>\<open>define_macro*\<close> "define LaTeX shortcut"
|
val _ = Outer_Syntax.command \<^command_keyword>\<open>define_macro*\<close> "define LaTeX shortcut"
|
||||||
(Scan.repeat1 parse_define_shortcut >> (Toplevel.theory o (fold define_macro)));
|
(Scan.repeat1 parse_define_shortcut >> (Toplevel.theory o (fold define_macro)));
|
||||||
|
|
||||||
Parse.underscore;
|
|
||||||
\<close>
|
\<close>
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in New Issue