# HG changeset patch # User wenzelm # Date 1464098583 -7200 # Node ID 70f4d67235a0471b93d0bbf50c80f33b4df86429 # Parent 9553f11d67c46e3eedb7f98dac93a8f766cbf6d6 clarified syntax category names according to Isabelle/ML/Scala; diff -r 9553f11d67c4 -r 70f4d67235a0 src/Doc/Isar_Ref/Document_Preparation.thy --- a/src/Doc/Isar_Ref/Document_Preparation.thy Tue May 24 15:53:16 2016 +0200 +++ b/src/Doc/Isar_Ref/Document_Preparation.thy Tue May 24 16:03:03 2016 +0200 @@ -462,7 +462,7 @@ @{rail \ @{syntax_def tags}: ( tag * ) ; - tag: '%' (@{syntax ident} | @{syntax string}) + tag: '%' (@{syntax short_ident} | @{syntax string}) \} Some tags are pre-declared for certain classes of commands, serving as @@ -538,9 +538,9 @@ \} \endgroup - The lexical syntax of \identifier\ coincides with that of @{syntax ident} in - regular Isabelle syntax, but \string\ uses single quotes instead of double - quotes of the standard @{syntax string} category. + The lexical syntax of \identifier\ coincides with that of @{syntax + short_ident} in regular Isabelle syntax, but \string\ uses single quotes + instead of double quotes of the standard @{syntax string} category. Each \rule\ defines a formal language (with optional name), using a notation that is similar to EBNF or regular expressions with recursion. The meaning diff -r 9553f11d67c4 -r 70f4d67235a0 src/Doc/Isar_Ref/Inner_Syntax.thy --- a/src/Doc/Isar_Ref/Inner_Syntax.thy Tue May 24 15:53:16 2016 +0200 +++ b/src/Doc/Isar_Ref/Inner_Syntax.thy Tue May 24 16:03:03 2016 +0200 @@ -387,7 +387,7 @@ ; entry: atom ('=' atom)? ; - atom: @{syntax ident} | @{syntax int} | @{syntax float} | @{syntax cartouche} + atom: @{syntax short_ident} | @{syntax int} | @{syntax float} | @{syntax cartouche} \} Each @{syntax entry} is a name-value pair: if the value is omitted, if @@ -556,11 +556,11 @@ \begin{center} \begin{supertabular}{rcl} - @{syntax_def (inner) id} & = & @{syntax_ref ident} \\ - @{syntax_def (inner) longid} & = & @{syntax_ref longident} \\ + @{syntax_def (inner) id} & = & @{syntax_ref short_ident} \\ + @{syntax_def (inner) longid} & = & @{syntax_ref long_ident} \\ @{syntax_def (inner) var} & = & @{syntax_ref var} \\ - @{syntax_def (inner) tid} & = & @{syntax_ref typefree} \\ - @{syntax_def (inner) tvar} & = & @{syntax_ref typevar} \\ + @{syntax_def (inner) tid} & = & @{syntax_ref type_ident} \\ + @{syntax_def (inner) tvar} & = & @{syntax_ref type_var} \\ @{syntax_def (inner) num_token} & = & @{syntax_ref nat} \\ @{syntax_def (inner) float_token} & = & @{syntax_ref nat}\<^verbatim>\.\@{syntax_ref nat} \\ @{syntax_def (inner) str_token} & = & \<^verbatim>\''\ \\\ \<^verbatim>\''\ \\ diff -r 9553f11d67c4 -r 70f4d67235a0 src/Doc/Isar_Ref/Outer_Syntax.thy --- a/src/Doc/Isar_Ref/Outer_Syntax.thy Tue May 24 15:53:16 2016 +0200 +++ b/src/Doc/Isar_Ref/Outer_Syntax.thy Tue May 24 16:03:03 2016 +0200 @@ -97,14 +97,14 @@ \begin{center} \begin{supertabular}{rcl} - @{syntax_def ident} & = & \letter (subscript\<^sup>? quasiletter)\<^sup>*\ \\ - @{syntax_def longident} & = & \ident(\\<^verbatim>\.\\ident)\<^sup>+\ \\ - @{syntax_def symident} & = & \sym\<^sup>+ |\~~\<^verbatim>\\\\<^verbatim>\<\\ident\\<^verbatim>\>\ \\ + @{syntax_def short_ident} & = & \letter (subscript\<^sup>? quasiletter)\<^sup>*\ \\ + @{syntax_def long_ident} & = & \short_ident(\\<^verbatim>\.\\short_ident)\<^sup>+\ \\ + @{syntax_def sym_ident} & = & \sym\<^sup>+ |\~~\<^verbatim>\\\\<^verbatim>\<\\short_ident\\<^verbatim>\>\ \\ @{syntax_def nat} & = & \digit\<^sup>+\ \\ @{syntax_def float} & = & @{syntax_ref nat}\<^verbatim>\.\@{syntax_ref nat}~~\|\~~\<^verbatim>\-\@{syntax_ref nat}\<^verbatim>\.\@{syntax_ref nat} \\ - @{syntax_def var} & = & \<^verbatim>\?\\ident |\~~\<^verbatim>\?\\ident\\<^verbatim>\.\\nat\ \\ - @{syntax_def typefree} & = & \<^verbatim>\'\\ident\ \\ - @{syntax_def typevar} & = & \<^verbatim>\?\\typefree |\~~\<^verbatim>\?\\typefree\\<^verbatim>\.\\nat\ \\ + @{syntax_def term_var} & = & \<^verbatim>\?\\short_ident |\~~\<^verbatim>\?\\short_ident\\<^verbatim>\.\\nat\ \\ + @{syntax_def type_ident} & = & \<^verbatim>\'\\short_ident\ \\ + @{syntax_def type_var} & = & \<^verbatim>\?\\type_ident |\~~\<^verbatim>\?\\type_ident\\<^verbatim>\.\\nat\ \\ @{syntax_def string} & = & \<^verbatim>\"\ \\\ \<^verbatim>\"\ \\ @{syntax_def altstring} & = & \<^verbatim>\`\ \\\ \<^verbatim>\`\ \\ @{syntax_def cartouche} & = & @{verbatim "\"} \\\ @{verbatim "\"} \\ @@ -128,13 +128,13 @@ \end{supertabular} \end{center} - A @{syntax_ref var} or @{syntax_ref typevar} describes an unknown, which is - internally a pair of base name and index (ML type @{ML_type indexname}). - These components are either separated by a dot as in \?x.1\ or \?x7.3\ or - run together as in \?x1\. The latter form is possible if the base name does - not end with digits. If the index is 0, it may be dropped altogether: \?x\ - and \?x0\ and \?x.0\ all refer to the same unknown, with basename \x\ and - index 0. + A @{syntax_ref term_var} or @{syntax_ref type_var} describes an unknown, + which is internally a pair of base name and index (ML type @{ML_type + indexname}). These components are either separated by a dot as in \?x.1\ or + \?x7.3\ or run together as in \?x1\. The latter form is possible if the base + name does not end with digits. If the index is 0, it may be dropped + altogether: \?x\ and \?x0\ and \?x.0\ all refer to the same unknown, with + basename \x\ and index 0. The syntax of @{syntax_ref string} admits any characters, including newlines; ``\<^verbatim>\"\'' (double-quote) and ``\<^verbatim>\\\'' (backslash) need to be @@ -183,8 +183,8 @@ those ruled out by outer syntax keywords (e.g.\ quoted \<^verbatim>\"let"\). @{rail \ - @{syntax_def name}: @{syntax ident} | @{syntax longident} | - @{syntax symident} | @{syntax nat} | @{syntax string} + @{syntax_def name}: @{syntax short_ident} | @{syntax long_ident} | + @{syntax sym_ident} | @{syntax nat} | @{syntax string} ; @{syntax_def par_name}: '(' @{syntax name} ')' \} @@ -221,8 +221,8 @@ @{rail \ @{syntax_def embedded}: @{syntax cartouche} | @{syntax string} | - @{syntax ident} | @{syntax longident} | @{syntax symident} | - @{syntax var} | @{syntax typefree} | @{syntax typevar} | @{syntax nat} + @{syntax short_ident} | @{syntax long_ident} | @{syntax sym_ident} | + @{syntax term_var} | @{syntax type_ident} | @{syntax type_var} | @{syntax nat} \} \ @@ -304,7 +304,7 @@ ; @{syntax_def named_insts}: (named_inst @'and' +) ; - variable: @{syntax name} | @{syntax var} | @{syntax typefree} | @{syntax typevar} + variable: @{syntax name} | @{syntax term_var} | @{syntax type_ident} | @{syntax type_var} \} Type declarations and definitions usually refer to @{syntax typespec} on the @@ -314,11 +314,11 @@ @{rail \ @{syntax_def typespec}: - (() | @{syntax typefree} | '(' ( @{syntax typefree} + ',' ) ')') @{syntax name} + (() | @{syntax type_ident} | '(' ( @{syntax type_ident} + ',' ) ')') @{syntax name} ; @{syntax_def typespec_sorts}: - (() | (@{syntax typefree} ('::' @{syntax sort})?) | - '(' ( (@{syntax typefree} ('::' @{syntax sort})?) + ',' ) ')') @{syntax name} + (() | (@{syntax type_ident} ('::' @{syntax sort})?) | + '(' ( (@{syntax type_ident} ('::' @{syntax sort})?) + ',' ) ')') @{syntax name} \} \ @@ -386,11 +386,11 @@ The attribute argument specifications may be any sequence of atomic entities (identifiers, strings etc.), or properly bracketed argument lists. Below @{syntax atom} refers to any atomic entity, including any @{syntax keyword} - conforming to @{syntax symident}. + conforming to @{syntax sym_ident}. @{rail \ - @{syntax_def atom}: @{syntax name} | @{syntax typefree} | - @{syntax typevar} | @{syntax var} | @{syntax nat} | @{syntax float} | + @{syntax_def atom}: @{syntax name} | @{syntax type_ident} | + @{syntax type_var} | @{syntax term_var} | @{syntax nat} | @{syntax float} | @{syntax keyword} | @{syntax cartouche} ; arg: @{syntax atom} | '(' @{syntax args} ')' | '[' @{syntax args} ']'