diff options
author | Guido van Rossum <guido@python.org> | 1998-12-22 05:18:24 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1998-12-22 05:18:24 (GMT) |
commit | 5e97c9dff91ad885d36a9d26f97549f198b90ee8 (patch) | |
tree | 4985eec3925141c56a7e7d647097191aa429a18f /Doc/lib/libshlex.tex | |
parent | a7d9bdfab61551ed16efc55c1b6c37268c2d9832 (diff) | |
download | cpython-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.tex | 77 |
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} + |