summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libshlex.tex
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1998-12-22 05:18:24 (GMT)
committerGuido van Rossum <guido@python.org>1998-12-22 05:18:24 (GMT)
commit5e97c9dff91ad885d36a9d26f97549f198b90ee8 (patch)
tree4985eec3925141c56a7e7d647097191aa429a18f /Doc/lib/libshlex.tex
parenta7d9bdfab61551ed16efc55c1b6c37268c2d9832 (diff)
downloadcpython-5e97c9dff91ad885d36a9d26f97549f198b90ee8.zip
cpython-5e97c9dff91ad885d36a9d26f97549f198b90ee8.tar.gz
cpython-5e97c9dff91ad885d36a9d26f97549f198b90ee8.tar.bz2
Adding libshlex and libnetrc by Eric Raymond.
Diffstat (limited to 'Doc/lib/libshlex.tex')
-rw-r--r--Doc/lib/libshlex.tex77
1 files changed, 77 insertions, 0 deletions
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}
+