From 5e97c9dff91ad885d36a9d26f97549f198b90ee8 Mon Sep 17 00:00:00 2001
From: Guido van Rossum <guido@python.org>
Date: Tue, 22 Dec 1998 05:18:24 +0000
Subject: Adding libshlex and libnetrc by Eric Raymond.

---
 Doc/lib/lib.tex      |  2 ++
 Doc/lib/libnetrc.tex | 47 ++++++++++++++++++++++++++++++++
 Doc/lib/libshlex.tex | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 126 insertions(+)
 create mode 100644 Doc/lib/libnetrc.tex
 create mode 100644 Doc/lib/libshlex.tex

diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex
index 178503b..6b031e9 100644
--- a/Doc/lib/lib.tex
+++ b/Doc/lib/lib.tex
@@ -116,6 +116,7 @@ add new extensions to Python and how to embed it in other applications.
 \input{libfileinput}
 \input{libcalendar}
 \input{libcmd}
+\input{libshlex}
 
 \input{liballos}		% Generic Operating System Services
 \input{libos}
@@ -192,6 +193,7 @@ add new extensions to Python and how to embed it in other applications.
 \input{libquopri}
 \input{libmailbox}
 \input{libmimify}
+\input{libnetrc}
 
 \input{librestricted}
 \input{librexec}
diff --git a/Doc/lib/libnetrc.tex b/Doc/lib/libnetrc.tex
new file mode 100644
index 0000000..4d23769
--- /dev/null
+++ b/Doc/lib/libnetrc.tex
@@ -0,0 +1,47 @@
+% Module and documentation by Eric S. Raymond, 21 Dec 1998 
+\section{Standard Module \module{netrc}}
+\stmodindex{netrc}
+\label{module-netrc}
+
+The \code{netrc} class parses and encapsulates the netrc file format
+used by Unix's ftp(1) and other FTP clientd
+
+\begin{classdesc}{netrc}{\optional{file}}
+A \class{netrc} instance or subclass instance enapsulates data from 
+a netrc file.  The initialization argument, if present, specifies the file
+to parse.  If no argument is given, the file .netrc in the user's home
+directory will be read.  Parse errors will throw a SyntaxError
+exception with associated diagnostic information including the file
+name, line number, and terminating token.
+\end{classdesc}
+
+\subsection{netrc Objects}
+\label{netrc-objects}
+
+A \class{netrc} instance has the following methods:
+
+\begin{methoddesc}{authenticators}{}
+Return a 3-tuple (login, account, password) of authenticators for the
+given host.  If the netrc file did not contain an entry for the given
+host, return the tuple associated with the `default' entry.  If
+neither matching host nor default entry is available, return None.
+\end{methoddesc}
+
+\begin{methoddesc}{__repr__}{host}
+Dump the class data as a string in the format of a netrc file.
+(This discards comments and may reorder the entries.)
+\end{methoddesc}
+
+Instances of \class{netrc} have public instance variables:
+
+\begin{memberdesc}{hosts}
+Dictionmary mapping host names to login/account/password tuples.  The
+`default' entry, if any, is represented as a pseudo-host by that name.
+\end{memberdesc}
+
+\begin{memberdesc}{macros}
+Dictionary mapping macro names to string lists.
+\end{memberdesc}
+
+
+
diff --git a/Doc/lib/libshlex.tex b/Doc/lib/libshlex.tex
new file mode 100644
index 0000000..8dded14
--- /dev/null
+++ b/Doc/lib/libshlex.tex
@@ -0,0 +1,77 @@
+% Module and documentation by Eric S. Raymond, 21 Dec 1998 
+\section{Standard Module \module{shlex}}
+\stmodindex{shlex}
+\label{module-shlex}
+
+The \code{shlex} class makes it easy to write lexical analyzers for
+simple syntaxes resembling that of the Unix shell.  This will often
+be useful for writing minilanguages, e.g. in run control files for
+Python applications.
+
+\begin{classdesc}{shlex}{\optional{stream}}
+A \class{shlex} instance or subclass instance is a lexical analyzer
+object.  The initialization argument, if present, specifies where to
+read characters from. It must be a file- or stream-like object with
+\method{read} and \method{readline} methods.  If no argument is given,
+input will be taken from sys.stdin.
+
+\end{classdesc}
+
+\subsection{shlex Objects}
+\label{shlex-objects}
+
+A \class{shlex} instance has the following methods:
+
+\begin{methoddesc}{get_token}{}
+Return a token.  If tokens have been stacked using \method{push_token},
+pop a token off the stack.  Otherwise, read one from the input stream.
+If reading encounters an immediate end-of-file, '' is returned.
+\end{methoddesc}
+
+\begin{methoddesc}{push_token}{str}
+Push the argument onto the token stack.
+\end{methoddesc}
+
+Instances of \class{shlex} subclasses have some public instance
+variables which either control lexical analysis or can be used
+for debugging:
+
+\begin{memberdesc}{commenters}
+The string of characters that are recognized as comment beginners.
+All characters from the comment beginner to end of line are ignored.
+Includes just '#' by default.   
+\end{memberdesc}
+
+\begin{memberdesc}{wordchars}
+The string of characters that will accumulate into multi-character
+tokens. By default, includes all ASCII alphanumerics and underscore.
+\end{memberdesc}
+
+\begin{memberdesc}{whitespace}
+Characters that will be considered whitespace and skipped.  Whitespace
+bounds tokens.  By default, includes space and tab and linefeed and
+carriage-return.
+\end{memberdesc}
+
+\begin{memberdesc}{quotes}
+Characters that will be considered string quotes.  The token
+accumulates until the same quote is encountered again (thus, different
+quote types protect each other as in the shall.)  By default, includes
+ASCII single and double quotes.
+\end{memberdesc}
+
+Note that any character not declared to be a word character,
+whitespace, or a quote will be returned as a single-character token.
+
+Quote and comment characters are not recognized within words.  Thus,
+the bare words ``ain't'' and ``ain#t'' would be returned as single
+tokens by the default parser.
+
+\begin{memberdesc}{lineno}
+Source line number (count of newlines seen so far plus one).
+\end{memberdesc}
+
+\begin{memberdesc}{token}
+The token buffer.  It may be useful to examine this when catching exceptions.
+\end{memberdesc}
+
-- 
cgit v0.12

