mirror of
https://github.com/python/cpython.git
synced 2025-12-15 21:44:50 +00:00
Adding libshlex and libnetrc by Eric Raymond.
This commit is contained in:
parent
a7d9bdfab6
commit
5e97c9dff9
3 changed files with 126 additions and 0 deletions
77
Doc/lib/libshlex.tex
Normal file
77
Doc/lib/libshlex.tex
Normal file
|
|
@ -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}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue