\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.
\refbimodindex{sys}
\refbimodindex{__main__}
\refbimodindex{__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}
\refbimodindex{__main__}

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}
