\chapter{Top-level components}

The Python interpreter can get its input from a number of sources:
from a script passed to it as standard input or as program argument,
typed in interactively, from a module source file, etc.  This chapter
gives the syntax used in these cases.
\index{interpreter}

\section{Complete Python programs}
\index{program}

While a language specification need not prescribe how the language
interpreter is invoked, it is useful to have a notion of a complete
Python program.  A complete Python program is executed in a minimally
initialized environment: all built-in and standard modules are
available, but none have been initialized, except for \verb@sys@
(various system services), \verb@__builtin__@ (built-in functions,
exceptions and \verb@None@) and \verb@__main__@.  The latter is used
to provide the local and global name space for execution of the
complete program.
\bimodindex{sys}
\bimodindex{__main__}
\bimodindex{__builtin__}

The syntax for a complete Python program is that for file input,
described in the next section.

The interpreter may also be invoked in interactive mode; in this case,
it does not read and execute a complete program but reads and executes
one statement (possibly compound) at a time.  The initial environment
is identical to that of a complete program; each statement is executed
in the name space of \verb@__main__@.
\index{interactive mode}

Under {\UNIX}, a complete program can be passed to the interpreter in
three forms: with the {\bf -c} {\it string} command line option, as a
file passed as the first command line argument, or as standard input.
If the file or standard input is a tty device, the interpreter enters
interactive mode; otherwise, it executes the file as a complete
program.
\index{UNIX}
\index{command line}
\index{standard input}

\section{File input}

All input read from non-interactive files has the same form:

\begin{verbatim}
file_input:     (NEWLINE | statement)*
\end{verbatim}

This syntax is used in the following situations:

\begin{itemize}

\item when parsing a complete Python program (from a file or from a string);

\item when parsing a module;

\item when parsing a string passed to the \verb@exec@ statement;

\end{itemize}

\section{Interactive input}

Input in interactive mode is parsed using the following grammar:

\begin{verbatim}
interactive_input: [stmt_list] NEWLINE | compound_stmt NEWLINE
\end{verbatim}

Note that a (top-level) compound statement must be followed by a blank
line in interactive mode; this is needed to help the parser detect the
end of the input.

\section{Expression input}
\index{input}

There are two forms of expression input.  Both ignore leading
whitespace.
 
The string argument to \verb@eval()@ must have the following form:
\bifuncindex{eval}

\begin{verbatim}
eval_input:     condition_list NEWLINE*
\end{verbatim}

The input line read by \verb@input()@ must have the following form:
\bifuncindex{input}

\begin{verbatim}
input_input:    condition_list NEWLINE
\end{verbatim}

Note: to read `raw' input line without interpretation, you can use the
built-in function \verb@raw_input()@  or the \verb@readline()@ method
of file objects.
\obindex{file}
\index{input!raw}
\index{raw input}
\bifuncindex{raw_index}
\ttindex{readline}
