diff --git a/Doc/lib.tex b/Doc/lib.tex
index 510a543..4aee15b 100644
--- a/Doc/lib.tex
+++ b/Doc/lib.tex
@@ -78,6 +78,8 @@
 \input{libimp}
 \input{libni}
 \input{libparser}
+\input{libsymbol}
+\input{libtoken}
 \input{libkeyword}
 \input{libcode}
 \input{libpprint}
diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex
index 510a543..4aee15b 100644
--- a/Doc/lib/lib.tex
+++ b/Doc/lib/lib.tex
@@ -78,6 +78,8 @@
 \input{libimp}
 \input{libni}
 \input{libparser}
+\input{libsymbol}
+\input{libtoken}
 \input{libkeyword}
 \input{libcode}
 \input{libpprint}
diff --git a/Doc/lib/libparser.tex b/Doc/lib/libparser.tex
index 47b5bd4..87428e4 100644
--- a/Doc/lib/libparser.tex
+++ b/Doc/lib/libparser.tex
@@ -534,8 +534,8 @@
 probably be somewhat more flexible.  Each ``major'' block of the
 module is described by an object providing several methods for inquiry
 and a constructor which accepts at least the subtree of the complete
-parse tree which it represents.  The \code{ModuleInfo} constructor
-accepts an optional \code{\var{name}} parameter since it cannot
+parse tree which it represents.  The \class{ModuleInfo} constructor
+accepts an optional \var{name} parameter since it cannot
 otherwise determine the name of the module.
 
 The public classes include \class{ClassInfo}, \class{FunctionInfo},
@@ -688,70 +688,3 @@
 functions for testing node values}
 
 \end{seealso}
-
-
-\section{Standard Module \sectcode{symbol}}
-\label{module-symbol}
-\stmodindex{symbol}
-
-This module provides constants which represent the numeric values of
-internal nodes of the parse tree.  Unlike most Python constants, these
-use lower-case names.  Refer to the file \file{Grammar/Grammar} in the
-Python distribution for the defintions of the names in the context of
-the language grammar.  The specific numeric values which the names map
-to may change between Python versions.
-
-This module also provides one additional data object:
-
-\setindexsubitem{(in module symbol)}
-
-
-\begin{datadesc}{sym_name}
-Dictionary mapping the numeric values of the constants defined in this
-module back to name strings, allowing more human-readable
-representation of parse trees to be generated.
-\end{datadesc}
-
-\begin{seealso}
-\seemodule{parser}{second example uses this module}
-\end{seealso}
-
-
-\section{Standard Module \sectcode{token}}
-\label{module-token}
-\stmodindex{token}
-
-This module provides constants which represent the numeric values of
-leaf nodes of the parse tree (terminal tokens).  Refer to the file
-\file{Grammar/Grammar} in the Python distribution for the defintions
-of the names in the context of the language grammar.  The specific
-numeric values which the names map to may change between Python
-versions.
-
-This module also provides one data object and some functions.  The
-functions mirror definitions in the Python C header files.
-
-\setindexsubitem{(in module token)}
-
-
-\begin{datadesc}{tok_name}
-Dictionary mapping the numeric values of the constants defined in this
-module back to name strings, allowing more human-readable
-representation of parse trees to be generated.
-\end{datadesc}
-
-\begin{funcdesc}{ISTERMINAL}{x}
-Return true for terminal token values.
-\end{funcdesc}
-
-\begin{funcdesc}{ISNONTERMINAL}{x}
-Return true for non-terminal token values.
-\end{funcdesc}
-
-\begin{funcdesc}{ISEOF}{x}
-Return true if \var{x} is the marker indicating the end of input.
-\end{funcdesc}
-
-\begin{seealso}
-\seemodule{parser}{second example uses this module}
-\end{seealso}
diff --git a/Doc/lib/libsymbol.tex b/Doc/lib/libsymbol.tex
new file mode 100644
index 0000000..2b8ecbb
--- /dev/null
+++ b/Doc/lib/libsymbol.tex
@@ -0,0 +1,25 @@
+\section{Standard Module \sectcode{symbol}}
+\label{module-symbol}
+\stmodindex{symbol}
+
+This module provides constants which represent the numeric values of
+internal nodes of the parse tree.  Unlike most Python constants, these
+use lower-case names.  Refer to the file \file{Grammar/Grammar} in the
+Python distribution for the defintions of the names in the context of
+the language grammar.  The specific numeric values which the names map
+to may change between Python versions.
+
+This module also provides one additional data object:
+
+\setindexsubitem{(in module symbol)}
+
+
+\begin{datadesc}{sym_name}
+Dictionary mapping the numeric values of the constants defined in this
+module back to name strings, allowing more human-readable
+representation of parse trees to be generated.
+\end{datadesc}
+
+\begin{seealso}
+\seemodule{parser}{second example uses this module}
+\end{seealso}
diff --git a/Doc/lib/libtoken.tex b/Doc/lib/libtoken.tex
new file mode 100644
index 0000000..816abc7
--- /dev/null
+++ b/Doc/lib/libtoken.tex
@@ -0,0 +1,38 @@
+\section{Standard Module \sectcode{token}}
+\label{module-token}
+\stmodindex{token}
+
+This module provides constants which represent the numeric values of
+leaf nodes of the parse tree (terminal tokens).  Refer to the file
+\file{Grammar/Grammar} in the Python distribution for the defintions
+of the names in the context of the language grammar.  The specific
+numeric values which the names map to may change between Python
+versions.
+
+This module also provides one data object and some functions.  The
+functions mirror definitions in the Python C header files.
+
+\setindexsubitem{(in module token)}
+
+
+\begin{datadesc}{tok_name}
+Dictionary mapping the numeric values of the constants defined in this
+module back to name strings, allowing more human-readable
+representation of parse trees to be generated.
+\end{datadesc}
+
+\begin{funcdesc}{ISTERMINAL}{x}
+Return true for terminal token values.
+\end{funcdesc}
+
+\begin{funcdesc}{ISNONTERMINAL}{x}
+Return true for non-terminal token values.
+\end{funcdesc}
+
+\begin{funcdesc}{ISEOF}{x}
+Return true if \var{x} is the marker indicating the end of input.
+\end{funcdesc}
+
+\begin{seealso}
+\seemodule{parser}{second example uses this module}
+\end{seealso}
diff --git a/Doc/libparser.tex b/Doc/libparser.tex
index 47b5bd4..87428e4 100644
--- a/Doc/libparser.tex
+++ b/Doc/libparser.tex
@@ -534,8 +534,8 @@
 probably be somewhat more flexible.  Each ``major'' block of the
 module is described by an object providing several methods for inquiry
 and a constructor which accepts at least the subtree of the complete
-parse tree which it represents.  The \code{ModuleInfo} constructor
-accepts an optional \code{\var{name}} parameter since it cannot
+parse tree which it represents.  The \class{ModuleInfo} constructor
+accepts an optional \var{name} parameter since it cannot
 otherwise determine the name of the module.
 
 The public classes include \class{ClassInfo}, \class{FunctionInfo},
@@ -688,70 +688,3 @@
 functions for testing node values}
 
 \end{seealso}
-
-
-\section{Standard Module \sectcode{symbol}}
-\label{module-symbol}
-\stmodindex{symbol}
-
-This module provides constants which represent the numeric values of
-internal nodes of the parse tree.  Unlike most Python constants, these
-use lower-case names.  Refer to the file \file{Grammar/Grammar} in the
-Python distribution for the defintions of the names in the context of
-the language grammar.  The specific numeric values which the names map
-to may change between Python versions.
-
-This module also provides one additional data object:
-
-\setindexsubitem{(in module symbol)}
-
-
-\begin{datadesc}{sym_name}
-Dictionary mapping the numeric values of the constants defined in this
-module back to name strings, allowing more human-readable
-representation of parse trees to be generated.
-\end{datadesc}
-
-\begin{seealso}
-\seemodule{parser}{second example uses this module}
-\end{seealso}
-
-
-\section{Standard Module \sectcode{token}}
-\label{module-token}
-\stmodindex{token}
-
-This module provides constants which represent the numeric values of
-leaf nodes of the parse tree (terminal tokens).  Refer to the file
-\file{Grammar/Grammar} in the Python distribution for the defintions
-of the names in the context of the language grammar.  The specific
-numeric values which the names map to may change between Python
-versions.
-
-This module also provides one data object and some functions.  The
-functions mirror definitions in the Python C header files.
-
-\setindexsubitem{(in module token)}
-
-
-\begin{datadesc}{tok_name}
-Dictionary mapping the numeric values of the constants defined in this
-module back to name strings, allowing more human-readable
-representation of parse trees to be generated.
-\end{datadesc}
-
-\begin{funcdesc}{ISTERMINAL}{x}
-Return true for terminal token values.
-\end{funcdesc}
-
-\begin{funcdesc}{ISNONTERMINAL}{x}
-Return true for non-terminal token values.
-\end{funcdesc}
-
-\begin{funcdesc}{ISEOF}{x}
-Return true if \var{x} is the marker indicating the end of input.
-\end{funcdesc}
-
-\begin{seealso}
-\seemodule{parser}{second example uses this module}
-\end{seealso}
diff --git a/Doc/libsymbol.tex b/Doc/libsymbol.tex
new file mode 100644
index 0000000..2b8ecbb
--- /dev/null
+++ b/Doc/libsymbol.tex
@@ -0,0 +1,25 @@
+\section{Standard Module \sectcode{symbol}}
+\label{module-symbol}
+\stmodindex{symbol}
+
+This module provides constants which represent the numeric values of
+internal nodes of the parse tree.  Unlike most Python constants, these
+use lower-case names.  Refer to the file \file{Grammar/Grammar} in the
+Python distribution for the defintions of the names in the context of
+the language grammar.  The specific numeric values which the names map
+to may change between Python versions.
+
+This module also provides one additional data object:
+
+\setindexsubitem{(in module symbol)}
+
+
+\begin{datadesc}{sym_name}
+Dictionary mapping the numeric values of the constants defined in this
+module back to name strings, allowing more human-readable
+representation of parse trees to be generated.
+\end{datadesc}
+
+\begin{seealso}
+\seemodule{parser}{second example uses this module}
+\end{seealso}
diff --git a/Doc/libtoken.tex b/Doc/libtoken.tex
new file mode 100644
index 0000000..816abc7
--- /dev/null
+++ b/Doc/libtoken.tex
@@ -0,0 +1,38 @@
+\section{Standard Module \sectcode{token}}
+\label{module-token}
+\stmodindex{token}
+
+This module provides constants which represent the numeric values of
+leaf nodes of the parse tree (terminal tokens).  Refer to the file
+\file{Grammar/Grammar} in the Python distribution for the defintions
+of the names in the context of the language grammar.  The specific
+numeric values which the names map to may change between Python
+versions.
+
+This module also provides one data object and some functions.  The
+functions mirror definitions in the Python C header files.
+
+\setindexsubitem{(in module token)}
+
+
+\begin{datadesc}{tok_name}
+Dictionary mapping the numeric values of the constants defined in this
+module back to name strings, allowing more human-readable
+representation of parse trees to be generated.
+\end{datadesc}
+
+\begin{funcdesc}{ISTERMINAL}{x}
+Return true for terminal token values.
+\end{funcdesc}
+
+\begin{funcdesc}{ISNONTERMINAL}{x}
+Return true for non-terminal token values.
+\end{funcdesc}
+
+\begin{funcdesc}{ISEOF}{x}
+Return true if \var{x} is the marker indicating the end of input.
+\end{funcdesc}
+
+\begin{seealso}
+\seemodule{parser}{second example uses this module}
+\end{seealso}
