src/Doc/Isar_Ref/Outer_Syntax.thy
changeset 73769 08db0a06e131
parent 73593 e60333aa18ca
child 74887 56247fdb8bbb
equal deleted inserted replaced
73768:c73c22c62d08 73769:08db0a06e131
   341   left-hand side. This models basic type constructor application at the outer
   341   left-hand side. This models basic type constructor application at the outer
   342   syntax level. Note that only plain postfix notation is available here, but
   342   syntax level. Note that only plain postfix notation is available here, but
   343   no infixes.
   343   no infixes.
   344 
   344 
   345   \<^rail>\<open>
   345   \<^rail>\<open>
   346     @{syntax_def typespec}:
   346     @{syntax_def typeargs}:
   347       (() | @{syntax type_ident} | '(' ( @{syntax type_ident} + ',' ) ')') @{syntax name}
   347       (() | @{syntax type_ident} | '(' ( @{syntax type_ident} + ',' ) ')')
   348     ;
   348     ;
   349     @{syntax_def typespec_sorts}:
   349     @{syntax_def typeargs_sorts}:
   350       (() | (@{syntax type_ident} ('::' @{syntax sort})?) |
   350       (() | (@{syntax type_ident} ('::' @{syntax sort})?) |
   351         '(' ( (@{syntax type_ident} ('::' @{syntax sort})?) + ',' ) ')') @{syntax name}
   351         '(' ( (@{syntax type_ident} ('::' @{syntax sort})?) + ',' ) ')')
       
   352     ;
       
   353     @{syntax_def typespec}: @{syntax typeargs} @{syntax name}
       
   354     ;
       
   355     @{syntax_def typespec_sorts}: @{syntax typeargs_sorts} @{syntax name}
   352   \<close>
   356   \<close>
   353 \<close>
   357 \<close>
   354 
   358 
   355 
   359 
   356 subsection \<open>Term patterns and declarations \label{sec:term-decls}\<close>
   360 subsection \<open>Term patterns and declarations \label{sec:term-decls}\<close>