equal
deleted
inserted
replaced
293 local structure P = OuterParse and K = OuterKeyword in |
293 local structure P = OuterParse and K = OuterKeyword in |
294 |
294 |
295 val _ = List.app OuterKeyword.keyword ["permissive", "congs", "hints"]; |
295 val _ = List.app OuterKeyword.keyword ["permissive", "congs", "hints"]; |
296 |
296 |
297 val hints = |
297 val hints = |
298 P.$$$ "(" |-- P.!!! (P.position (P.$$$ "hints" -- P.arguments) --| P.$$$ ")") >> Args.src; |
298 P.$$$ "(" |-- P.!!! (P.position (P.$$$ "hints" -- Args.parse) --| P.$$$ ")") >> Args.src; |
299 |
299 |
300 val recdef_decl = |
300 val recdef_decl = |
301 Scan.optional (P.$$$ "(" -- P.!!! (P.$$$ "permissive" -- P.$$$ ")") >> K false) true -- |
301 Scan.optional (P.$$$ "(" -- P.!!! (P.$$$ "permissive" -- P.$$$ ")") >> K false) true -- |
302 P.name -- P.term -- Scan.repeat1 (SpecParse.opt_thm_name ":" -- P.prop) -- Scan.option hints |
302 P.name -- P.term -- Scan.repeat1 (SpecParse.opt_thm_name ":" -- P.prop) -- Scan.option hints |
303 >> (fn ((((p, f), R), eqs), src) => #1 o add_recdef p f R (map P.triple_swap eqs) src); |
303 >> (fn ((((p, f), R), eqs), src) => #1 o add_recdef p f R (map P.triple_swap eqs) src); |