"codeop" --- Compila código Python
**********************************

**Código fuente:** Lib/codeop.py

======================================================================

El módulo "codeop" proporciona herramientas para emular el bucle
principal del intérprete de Python (también conocido como read-eval-
print), tal como se hace en el módulo "code".  Por lo tanto, este
módulo no está diseñado para utilizarlo directamente; si desea incluir
un ciclo de este tipo en su programa, probablemente es mejor utilizar
el módulo "code" en su lugar.

Esta actividad consta de dos partes:

1. Being able to tell if a line of input completes a Python statement:
   in short, telling whether to print '">>>"' or '"..."' next.

2. Remembering which future statements the user has entered, so
   subsequent input can be compiled with these in effect.

El módulo "codeop" proporciona formas de realizar estas dos partes,
tanto de forma independiente, como en conjunto.

Para hacer lo anterior:

codeop.compile_command(source, filename='<input>', symbol='single')

   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.

   Si hay un problema con *source*, se lanzará una excepción.
   "SyntaxError" se lanza si hay una sintaxis de Python no válida, y
   "OverflowError" o "ValueError" si hay un literal no válido.

   The *symbol* argument determines whether *source* is compiled as a
   statement ("'single'", the default), as a sequence of *statement*
   ("'exec'") or as an *expression* ("'eval'").  Any other value will
   cause "ValueError" to be raised.

   Nota:

     Es posible (pero no probable) que el analizador deje de analizar
     con un resultado exitoso antes de llegar al final de la fuente;
     en este caso, los símbolos finales pueden ignorarse en lugar de
     provocar un error. Por ejemplo, una barra invertida seguida de
     dos nuevas líneas puede ir seguida de basura arbitraria. Esto se
     solucionará una vez que la API para el analizador sea mejor.

class codeop.Compile

   Las instancias de esta clase tienen "__call__()" métodos idénticos
   en firma a la función incorporada "compile()", pero con la
   diferencia de que si la instancia compila el texto del programa que
   contiene una instrucción "__future__", la instancia 'recuerda' y
   compila todos los textos de programa posteriores con la declaración
   en vigor.

class codeop.CommandCompiler

   Instances of this class have "__call__()" methods identical in
   signature to "compile_command()"; the difference is that if the
   instance compiles program text containing a "__future__" statement,
   the instance 'remembers' and compiles all subsequent program texts
   with the statement in force.
