src/HOL/BNF/Tools/bnf_wrap.ML
changeset 50214 67fb9a168d10
parent 49692 a8a3b82b37f8
child 51380 cac8c9a636b6
equal deleted inserted replaced
50213:7b73c0509835 50214:67fb9a168d10
   673   Scan.optional (@{keyword "("} |-- Parse.list1 ((@{keyword "no_dests"} >> K (true, false)) ||
   673   Scan.optional (@{keyword "("} |-- Parse.list1 ((@{keyword "no_dests"} >> K (true, false)) ||
   674       (@{keyword "rep_compat"} >> K (false, true))) --| @{keyword ")"}
   674       (@{keyword "rep_compat"} >> K (false, true))) --| @{keyword ")"}
   675     >> (pairself (exists I) o split_list)) (false, false);
   675     >> (pairself (exists I) o split_list)) (false, false);
   676 
   676 
   677 val _ =
   677 val _ =
   678   Outer_Syntax.local_theory_to_proof @{command_spec "wrap_data"} "wraps an existing datatype"
   678   Outer_Syntax.local_theory_to_proof @{command_spec "wrap_data"} "wrap an existing datatype"
   679     ((parse_wrap_options -- (@{keyword "["} |-- Parse.list Parse.term --| @{keyword "]"}) --
   679     ((parse_wrap_options -- (@{keyword "["} |-- Parse.list Parse.term --| @{keyword "]"}) --
   680       Parse.term -- Scan.optional (parse_bindings -- Scan.optional (parse_bindingss --
   680       Parse.term -- Scan.optional (parse_bindings -- Scan.optional (parse_bindingss --
   681         Scan.optional parse_bound_termss []) ([], [])) ([], ([], [])))
   681         Scan.optional parse_bound_termss []) ([], [])) ([], ([], [])))
   682      >> wrap_datatype_cmd);
   682      >> wrap_datatype_cmd);
   683 
   683