optional description for 'attribute_setup' and 'method_setup';
authorwenzelm
Sun, 15 May 2011 17:06:35 +0200
changeset 42813 6c841fa92fa2
parent 42812 dda4aef7cba4
child 42814 5af15f1e2ef6
optional description for 'attribute_setup' and 'method_setup';
doc-src/IsarRef/Thy/Proof.thy
doc-src/IsarRef/Thy/Spec.thy
doc-src/IsarRef/Thy/document/Proof.tex
doc-src/IsarRef/Thy/document/Spec.tex
src/Pure/Isar/attrib.ML
src/Pure/Isar/isar_syn.ML
src/Pure/Isar/method.ML
--- a/doc-src/IsarRef/Thy/Proof.thy	Sun May 15 16:40:24 2011 +0200
+++ b/doc-src/IsarRef/Thy/Proof.thy	Sun May 15 17:06:35 2011 +0200
@@ -896,7 +896,7 @@
   \end{matharray}
 
   @{rail "
-    @@{command method_setup} @{syntax name} '=' @{syntax text} @{syntax text}
+    @@{command method_setup} @{syntax name} '=' @{syntax text} @{syntax text}?
     ;
   "}
 
--- a/doc-src/IsarRef/Thy/Spec.thy	Sun May 15 16:40:24 2011 +0200
+++ b/doc-src/IsarRef/Thy/Spec.thy	Sun May 15 17:06:35 2011 +0200
@@ -859,7 +859,7 @@
     (@@{command ML} | @@{command ML_prf} | @@{command ML_val} |
       @@{command ML_command} | @@{command setup} | @@{command local_setup}) @{syntax text}
     ;
-    @@{command attribute_setup} @{syntax name} '=' @{syntax text} @{syntax text}
+    @@{command attribute_setup} @{syntax name} '=' @{syntax text} @{syntax text}?
   "}
 
   \begin{description}
--- a/doc-src/IsarRef/Thy/document/Proof.tex	Sun May 15 16:40:24 2011 +0200
+++ b/doc-src/IsarRef/Thy/document/Proof.tex	Sun May 15 17:06:35 2011 +0200
@@ -1234,12 +1234,15 @@
   \end{matharray}
 
   \begin{railoutput}
-\rail@begin{1}{}
+\rail@begin{2}{}
 \rail@term{\hyperlink{command.method-setup}{\mbox{\isa{\isacommand{method{\isaliteral{5F}{\isacharunderscore}}setup}}}}}[]
 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 \rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[]
 \rail@nont{\hyperlink{syntax.text}{\mbox{\isa{text}}}}[]
+\rail@bar
+\rail@nextbar{1}
 \rail@nont{\hyperlink{syntax.text}{\mbox{\isa{text}}}}[]
+\rail@endbar
 \rail@end
 \end{railoutput}
 
--- a/doc-src/IsarRef/Thy/document/Spec.tex	Sun May 15 16:40:24 2011 +0200
+++ b/doc-src/IsarRef/Thy/document/Spec.tex	Sun May 15 17:06:35 2011 +0200
@@ -1280,12 +1280,15 @@
 \rail@endbar
 \rail@nont{\hyperlink{syntax.text}{\mbox{\isa{text}}}}[]
 \rail@end
-\rail@begin{1}{}
+\rail@begin{2}{}
 \rail@term{\hyperlink{command.attribute-setup}{\mbox{\isa{\isacommand{attribute{\isaliteral{5F}{\isacharunderscore}}setup}}}}}[]
 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 \rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[]
 \rail@nont{\hyperlink{syntax.text}{\mbox{\isa{text}}}}[]
+\rail@bar
+\rail@nextbar{1}
 \rail@nont{\hyperlink{syntax.text}{\mbox{\isa{text}}}}[]
+\rail@endbar
 \rail@end
 \end{railoutput}
 
--- a/src/Pure/Isar/attrib.ML	Sun May 15 16:40:24 2011 +0200
+++ b/src/Pure/Isar/attrib.ML	Sun May 15 17:06:35 2011 +0200
@@ -78,8 +78,9 @@
   let
     val ctxt = Proof_Context.init_global thy;
     val attribs = Attributes.get thy;
-    fun prt_attr (name, (_, comment)) = Pretty.block
-      [Pretty.str (name ^ ":"), Pretty.brk 2, Pretty.str comment];
+    fun prt_attr (name, (_, "")) = Pretty.str name
+      | prt_attr (name, (_, comment)) =
+          Pretty.block [Pretty.str (name ^ ":"), Pretty.brk 2, Pretty.str comment];
   in
     [Pretty.big_list "attributes:" (map prt_attr (Name_Space.extern_table ctxt attribs))]
     |> Pretty.chunks |> Pretty.writeln
--- a/src/Pure/Isar/isar_syn.ML	Sun May 15 16:40:24 2011 +0200
+++ b/src/Pure/Isar/isar_syn.ML	Sun May 15 17:06:35 2011 +0200
@@ -327,12 +327,14 @@
 
 val _ =
   Outer_Syntax.command "attribute_setup" "define attribute in ML" (Keyword.tag_ml Keyword.thy_decl)
-    (Parse.position Parse.name -- Parse.!!! (Parse.$$$ "=" |-- Parse.ML_source -- Parse.text)
+    (Parse.position Parse.name --
+        Parse.!!! (Parse.$$$ "=" |-- Parse.ML_source -- Scan.optional Parse.text "")
       >> (fn (name, (txt, cmt)) => Toplevel.theory (Attrib.attribute_setup name txt cmt)));
 
 val _ =
   Outer_Syntax.command "method_setup" "define proof method in ML" (Keyword.tag_ml Keyword.thy_decl)
-    (Parse.position Parse.name -- Parse.!!! (Parse.$$$ "=" |-- Parse.ML_source -- Parse.text)
+    (Parse.position Parse.name --
+        Parse.!!! (Parse.$$$ "=" |-- Parse.ML_source -- Scan.optional Parse.text "")
       >> (fn (name, (txt, cmt)) => Toplevel.theory (Method.method_setup name txt cmt)));
 
 val _ =
--- a/src/Pure/Isar/method.ML	Sun May 15 16:40:24 2011 +0200
+++ b/src/Pure/Isar/method.ML	Sun May 15 17:06:35 2011 +0200
@@ -336,8 +336,9 @@
   let
     val ctxt = Proof_Context.init_global thy;
     val meths = Methods.get thy;
-    fun prt_meth (name, (_, comment)) = Pretty.block
-      [Pretty.str (name ^ ":"), Pretty.brk 2, Pretty.str comment];
+    fun prt_meth (name, (_, "")) = Pretty.str name
+      | prt_meth (name, (_, comment)) =
+          Pretty.block [Pretty.str (name ^ ":"), Pretty.brk 2, Pretty.str comment];
   in
     [Pretty.big_list "methods:" (map prt_meth (Name_Space.extern_table ctxt meths))]
     |> Pretty.chunks |> Pretty.writeln