9. 최상위 요소들
****************

파이썬 인터프리터는 여러 가지 출처로부터 입력을 얻을 수 있다: 표준 입
력이나 프로그램 인자로 전달된 스크립트, 대화형으로 입력된 것, 모듈 소
스 파일 등등. 이 장은 이 경우들에 사용되는 문법을 제공한다.


9.1. 완전한 파이썬 프로그램
===========================

언어 규격이 어떤 식으로 언어 인터프리터가 실행되는지를 미리 규정할 필
요는 없지만, 완전한 파이썬 프로그램이라는 개념을 갖는 것은 쓸모가 있다
. 완전한 파이썬 프로그램은 최소한으로 초기화된 환경에서 실행된다: 모든
내장과 표준 모듈이 제공되지만, "sys" (각종 시스템 서비스들)와
"builtins" (내장 함수들, 예외들, "None")과 "__main__" 이외의 어느 것도
초기화되지 않았다. 마지막 것은 완전한 프로그램의 실행을 위한 지역과 전
역 이름 공간을 제공하는 데 사용된다.

완전한 파이썬 프로그램의 문법은 다음 섹션에서 설명되는 파일 입력의 경
우다.

인터프리터는 대화형으로 실행될 수도 있다; 이 경우, 완전한 프로그램을
읽어서 실행하지 않고, 한 번에 한 문장 (복합문도 가능하다) 씩 읽어서 실
행한다. 초기 환경은 완전한 프로그램과 같다; 각 문장은 "__main__" 의 이
름 공간에서 실행된다.

A complete program can be passed to the interpreter in three forms:
with the "-c" *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.


9.2. 파일 입력
==============

비대화형 파일로부터 읽힌 모든 입력은 같은 형태를 취한다:

   file_input ::= (NEWLINE | statement)*

이 문법은 다음과 같은 상황에서 사용된다:

* (파일이나 문자열로부터 온) 완전한 파이썬 프로그램을 파싱할 때;

* 모듈을 파싱할 때;

* "exec()" 함수로 전달된 문자열을 파싱할 때;


9.3. 대화형 입력
================

대화형 모드에서의 입력은 다음과 같은 문법 규칙을 사용한다:

   interactive_input ::= [stmt_list] NEWLINE | compound_stmt NEWLINE

(최상위) 복합문은 대화형 모드에서 빈 줄을 붙여줘야 함에 유념해야 한다;
파서가 입력의 끝을 감지하는 데 필요하다.


9.4. 표현식 입력
================

표현식 입력을 위해 "eval()" 이 사용된다. 앞에 오는 공백을 무시한다.
"eval()" 의 문자열 인자는 다음과 같은 형식을 취해야 한다:

   eval_input ::= expression_list NEWLINE*
