"codeop" — Compilation de code Python
*************************************

**Code source :** Lib/codeop.py

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

Le module "codeop" fournit des outils permettant d'émuler une boucle
de lecture-évaluation-affichage (en anglais *read-eval-print-loop* ou
REPL), comme dans le module "code".  Par conséquent, ce module n'est
pas destiné à être utilisé directement ; pour inclure un REPL dans un
programme, il est préférable d'utiliser le module "code".

Cette tâche se divise en deux parties :

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.

Le module "codeop" fournit un moyen d'effectuer ces deux parties,
individuellement ou simultanément.

Pour ne faire que la première partie :

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.

   En cas de problème avec *source*, une exception est levée ;
   "SyntaxError" si la syntaxe Python est incorrecte, et
   "OverflowError" ou "ValueError" si un littéral invalide est
   rencontré.

   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.

   Note:

     Il est possible (quoique improbable) que l'analyseur s'arrête
     avant d'atteindre la fin du code source ; dans ce cas, les
     symboles venant après peuvent être ignorés au lieu de provoquer
     une erreur. Par exemple, une barre oblique inverse suivie de deux
     retours à la ligne peut être suivie par de la mémoire non-
     initialisée. Ceci sera corrigé quand l'interface de l'analyseur
     aura été améliorée.

class codeop.Compile

   Les instances de cette classe ont des méthodes "__call__()" de
   signature identique à la fonction native "compile()", à la
   différence près que si l'instance compile du code source contenant
   une instruction "__future__", l'instance s'en « souviendra » et
   compilera tous les codes sources suivants avec cette instruction
   activée.

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.
