Compile Python code
===================
This manual section was written by Moshe Zadka
<moshez@zadka.site.co.il>.
Compile (possibly incomplete) Python code.
The `codeop' module provides a function to compile Python code with
hints on whether it is certainly complete, possibly complete or
definitely incomplete. This is used by the `code' module and should
not normally be used directly.
The `codeop' module defines the following function:
`compile_command(source[, filename[, symbol]])'
Tries to compile SOURCE, which should be a string of Python code
and return a code object if SOURCE is valid Python code. In that
case, the filename attribute of the code object will be FILENAME,
which defaults to `'<input>''. Returns `None' if SOURCE is _not_
valid Python code, but is a prefix of valid Python code.
If there is a problem with SOURCE, an exception will be raised.
`SyntaxError' is raised if there is invalid Python syntax, and
`OverflowError' if there is an invalid numeric constant.
The SYMBOL argument determines whether SOURCE is compiled as a
statement (`'single'', the default) or as an expression
(`'eval''). Any other value will cause `ValueError' to be raised.
*Caveat:* It is possible (but not likely) that the parser stops
parsing with a successful outcome before reaching the end of the
source; in this case, trailing symbols may be ignored instead of
causing an error. For example, a backslash followed by two
newlines may be followed by arbitrary garbage. This will be fixed
once the API for the parser is better.