Pure: command 'no_syntax' removes grammar declarations;
authorwenzelm
Sat, 16 Apr 2005 18:55:28 +0200
changeset 15744 daa84ebbdf94
parent 15743 814eed210b82
child 15745 33bb955b2e73
Pure: command 'no_syntax' removes grammar declarations;
NEWS
doc-src/IsarRef/pure.tex
--- a/NEWS	Sat Apr 16 18:54:44 2005 +0200
+++ b/NEWS	Sat Apr 16 18:55:28 2005 +0200
@@ -17,10 +17,9 @@
   means that function like Library.hd and Library.tl are gone, as the
   standard hd and tl functions suffice.
 
-  A number of functions, specifically those in the LIBRARY_CLOSED
-  signature, are now no longer exported to the top ML level, as they
-  are variants of standard functions.  The following suggests how
-  one can translate existing code:
+  A number of basic functions are now no longer exported to the top ML
+  level, as they are variants of standard functions.  The following
+  suggests how one can translate existing code:
 
     the x = valOf x
     if_none x y = getOpt(x,y)
@@ -108,6 +107,10 @@
   'nonterminals' rather than 'types'.  INCOMPATIBILITY for new
   object-logic specifications.
 
+* Pure: command 'no_syntax' removes grammar declarations (and
+  translations) resulting from the given syntax specification, which
+  is interpreted in the same manner as for the 'syntax' command.
+
 * Pure: print_tac now outputs the goal through the trace channel.
 
 * Pure: reference Namespace.unique_names included.  If true the
--- a/doc-src/IsarRef/pure.tex	Sat Apr 16 18:54:44 2005 +0200
+++ b/doc-src/IsarRef/pure.tex	Sat Apr 16 18:55:28 2005 +0200
@@ -295,9 +295,10 @@
 
 \subsection{Syntax and translations}\label{sec:syn-trans}
 
-\indexisarcmd{syntax}\indexisarcmd{translations}
+\indexisarcmd{syntax}\indexisarcmd{no-syntax}\indexisarcmd{translations}
 \begin{matharray}{rcl}
   \isarcmd{syntax} & : & \isartrans{theory}{theory} \\
+  \isarcmd{no_syntax} & : & \isartrans{theory}{theory} \\
   \isarcmd{translations} & : & \isartrans{theory}{theory} \\
 \end{matharray}
 
@@ -310,11 +311,17 @@
 \railalias{leftharpoondown}{\isasymleftharpoondown}
 \railterm{leftharpoondown}
 
+\railalias{nosyntax}{no\_syntax}
+\railterm{nosyntax}
+
 \begin{rail}
-  'syntax' ('(' ( name | 'output' | name 'output' ) ')')? (constdecl +)
+  ('syntax' | nosyntax) mode? (constdecl +)
   ;
   'translations' (transpat ('==' | '=>' | '<=' | rightleftharpoons | rightharpoonup | leftharpoondown) transpat +)
   ;
+
+  mode: ('(' ( name | 'output' | name 'output' ) ')')
+  ;
   transpat: ('(' nameref ')')? string
   ;
 \end{rail}
@@ -329,6 +336,10 @@
   $\isarkeyword{output}$ indicator is given, all productions are added both to
   the input and output grammar.
   
+\item [$\isarkeyword{no_syntax}~(mode)~decls$] removes grammar declarations
+  (and translations) resulting from $decls$, which are interpreted in the same
+  manner as for $\isarkeyword{syntax}$ above.
+  
 \item [$\isarkeyword{translations}~rules$] specifies syntactic translation
   rules (i.e.\ macros): parse~/ print rules (\isasymrightleftharpoons), parse
   rules (\isasymrightharpoonup), or print rules (\isasymleftharpoondown).