more liberal 'case' syntax: allow parentheses without arguments;
authorwenzelm
Tue, 03 Sep 2013 11:58:34 +0200
changeset 5451421693b7c8fbf
parent 54513 1d4a46f1fced
child 54515 07990ba8c0ea
more liberal 'case' syntax: allow parentheses without arguments;
src/Doc/IsarRef/Proof.thy
src/Pure/Isar/isar_syn.ML
     1.1 --- a/src/Doc/IsarRef/Proof.thy	Tue Sep 03 11:55:59 2013 +0200
     1.2 +++ b/src/Doc/IsarRef/Proof.thy	Tue Sep 03 11:58:34 2013 +0200
     1.3 @@ -1195,7 +1195,7 @@
     1.4    later.
     1.5  
     1.6    @{rail "
     1.7 -    @@{command case} (caseref | '(' caseref (('_' | @{syntax name}) +) ')')
     1.8 +    @@{command case} (caseref | '(' caseref (('_' | @{syntax name}) *) ')')
     1.9      ;
    1.10      caseref: nameref attributes?
    1.11      ;
     2.1 --- a/src/Pure/Isar/isar_syn.ML	Tue Sep 03 11:55:59 2013 +0200
     2.2 +++ b/src/Pure/Isar/isar_syn.ML	Tue Sep 03 11:58:34 2013 +0200
     2.3 @@ -608,14 +608,12 @@
     2.4      (opt_mode -- Parse.and_list1 (Parse.const -- Parse.mixfix)
     2.5      >> (fn (mode, args) => Toplevel.print o Toplevel.proof (Proof.write_cmd mode args)));
     2.6  
     2.7 -val case_spec =
     2.8 -  (@{keyword "("} |--
     2.9 -    Parse.!!! (Parse.xname -- Scan.repeat1 (Parse.maybe Parse.binding) --| @{keyword ")"}) ||
    2.10 -    Parse.xname >> rpair []) -- Parse_Spec.opt_attribs >> Parse.triple1;
    2.11 -
    2.12  val _ =
    2.13    Outer_Syntax.command @{command_spec "case"} "invoke local context"
    2.14 -    (case_spec >> (Toplevel.print oo (Toplevel.proof o Proof.invoke_case_cmd)));
    2.15 +    ((@{keyword "("} |--
    2.16 +      Parse.!!! (Parse.xname -- Scan.repeat (Parse.maybe Parse.binding) --| @{keyword ")"}) ||
    2.17 +      Parse.xname >> rpair []) -- Parse_Spec.opt_attribs >> (fn ((c, xs), atts) =>
    2.18 +        Toplevel.print o Toplevel.proof (Proof.invoke_case_cmd (c, xs, atts))));
    2.19  
    2.20  
    2.21  (* proof structure *)