# HG changeset patch # User wenzelm # Date 1209386533 -7200 # Node ID 6634a641b961d3aecbb140a20b35005d40ef3970 # Parent 84408d6ff180c40b8bce3a233f7b7a0ba176f064 proper command/keyword markup; diff -r 84408d6ff180 -r 6634a641b961 doc-src/IsarRef/Thy/document/syntax.tex --- a/doc-src/IsarRef/Thy/document/syntax.tex Mon Apr 28 14:41:32 2008 +0200 +++ b/doc-src/IsarRef/Thy/document/syntax.tex Mon Apr 28 14:42:13 2008 +0200 @@ -294,8 +294,8 @@ % \begin{isamarkuptext}% Mixfix annotations specify concrete \emph{inner} syntax of Isabelle - types and terms. Some commands such as \isa{types} (see - \S\ref{sec:types-pure}) admit infixes only, while \isa{consts} (see \S\ref{sec:consts}) and \isa{syntax} (see + types and terms. Some commands such as \isa{\isacommand{types}} (see + \S\ref{sec:types-pure}) admit infixes only, while \isa{\isacommand{consts}} (see \S\ref{sec:consts}) and \isa{\isacommand{syntax}} (see \S\ref{sec:syn-trans}) support the full range of general mixfixes and binders. @@ -426,7 +426,7 @@ involving an internal dummy fact, which will be ignored later on. So only the effect of the attribute on the background context will persist. This form of in-place declarations is particularly useful - with commands like \isa{declare} and \isa{using}. + with commands like \isa{\isacommand{declare}} and \isa{\isacommand{using}}. \indexouternonterm{axmdecl}\indexouternonterm{thmdecl} \indexouternonterm{thmdef}\indexouternonterm{thmref} @@ -490,8 +490,8 @@ the typing refers to all variables, while in \isa{a{\isacharcolon}\ {\isasymphi}\isactrlsub {\isadigit{1}}\ {\isasymdots}\ {\isasymphi}\isactrlsub n} the naming refers to all propositions collectively. Isar language elements that refer to \railnonterm{vars} or \railnonterm{props} typically admit separate typings or namings via - another level of iteration, with explicit \indexref{}{keyword}{and}\isa{and} - separators; e.g.\ see \isa{fix} and \isa{assume} in + another level of iteration, with explicit \indexref{}{keyword}{and}\isa{\isakeyword{and}} + separators; e.g.\ see \isa{\isacommand{fix}} and \isa{\isacommand{assume}} in \S\ref{sec:proof-context}.% \end{isamarkuptext}% \isamarkuptrue% @@ -751,14 +751,14 @@ specifically, e.g.\ to fold proof texts, or drop parts of the text completely. - For example ``\isa{by}~\isa{{\isacharpercent}invisible\ auto}'' would + For example ``\isa{\isacommand{by}}~\isa{{\isacharpercent}invisible\ auto}'' would cause that piece of proof to be treated as \isa{invisible} instead of \isa{proof} (the default), which may be either show or hidden - depending on the document setup. In contrast, ``\isa{by}~\isa{{\isacharpercent}visible\ auto}'' would force this text to be shown + depending on the document setup. In contrast, ``\isa{\isacommand{by}}~\isa{{\isacharpercent}visible\ auto}'' would force this text to be shown invariably. Explicit tag specifications within a proof apply to all subsequent - commands of the same level of nesting. For example, ``\isa{proof}~\isa{{\isacharpercent}visible\ {\isasymdots}}~\isa{qed}'' would force the + commands of the same level of nesting. For example, ``\isa{\isacommand{proof}}~\isa{{\isacharpercent}visible\ {\isasymdots}}~\isa{\isacommand{qed}}'' would force the whole sub-proof to be typeset as \isa{visible} (unless some of its parts are tagged differently).% \end{isamarkuptext}% diff -r 84408d6ff180 -r 6634a641b961 doc-src/antiquote_setup.ML --- a/doc-src/antiquote_setup.ML Mon Apr 28 14:41:32 2008 +0200 +++ b/doc-src/antiquote_setup.ML Mon Apr 28 14:42:13 2008 +0200 @@ -135,39 +135,40 @@ val arg = enclose "{" "}" o clean_string; -fun output_entity index kind src ctxt (logic, name) = +fun output_entity markup index kind src ctxt (logic, name) = (case index of NONE => "" | SOME is_def => "\\index" ^ (if is_def then "def" else "ref") ^ arg logic ^ arg kind ^ arg name) ^ (Output.output (if ! O.source then str_of_source src else name) + |> (if markup = "" then I else enclose ("\\" ^ markup ^ "{") "}") |> (if ! O.quotes then quote else I) |> (if ! O.display then enclose "\\begin{isabelle}%\n" "%\n\\end{isabelle}" else enclose "\\isa{" "}")); -fun entity index kind = +fun entity markup index kind = O.args (Scan.lift (Scan.optional (Args.parens Args.name) "" -- Args.name)) - (output_entity index kind); + (output_entity markup index kind); -fun entity_antiqs kind = - [(kind, entity NONE kind), - (kind ^ "_def", entity (SOME true) kind), - (kind ^ "_ref", entity (SOME false) kind)]; +fun entity_antiqs markup kind = + [(kind, entity markup NONE kind), + (kind ^ "_def", entity markup (SOME true) kind), + (kind ^ "_ref", entity markup (SOME false) kind)]; in val _ = O.add_commands - (entity_antiqs "syntax" @ - entity_antiqs "command" @ - entity_antiqs "keyword" @ - entity_antiqs "element" @ - entity_antiqs "method" @ - entity_antiqs "attribute" @ - entity_antiqs "fact" @ - entity_antiqs "term" @ - entity_antiqs "case" @ - entity_antiqs "antiquotation"); + (entity_antiqs "" "syntax" @ + entity_antiqs "isacommand" "command" @ + entity_antiqs "isakeyword" "keyword" @ + entity_antiqs "" "element" @ + entity_antiqs "" "method" @ + entity_antiqs "" "attribute" @ + entity_antiqs "" "fact" @ + entity_antiqs "" "variable" @ + entity_antiqs "" "case" @ + entity_antiqs "" "antiquotation"); end;