Working on library/parser (#822)

This commit is contained in:
Julien Palard 2019-06-20 14:18:04 +02:00 committed by GitHub
parent 229ae21cfd
commit fb57ef14b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,8 +6,8 @@ msgstr ""
"Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-12-21 09:48+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2019-06-20 14:07+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/parser.rst:2
msgid ":mod:`parser` --- Access Python parse trees"
msgstr ""
msgstr ":mod:`parser` — Accès aux arbres syntaxiques"
#: ../Doc/library/parser.rst:21
msgid ""
@ -28,6 +28,13 @@ msgid ""
"in a manner identical to the code forming the application. It is also "
"faster."
msgstr ""
"Le module :mod:`parser` expose une interface à l'analyseur et au compilateur "
"de byte-code internes de Python. Son objectif principal est de permettre à "
"du code Python de modifier l'arbre syntaxique d'une expression Python puis "
"de la rendre exécutable. Cette approche est plus fiable que celle consistant "
"à manipuler des chaines de caractères, puisque l'analyse est faite avec le "
"même analyseur que celui utilisé pour le code de l'application. C'est aussi "
"plus rapide."
#: ../Doc/library/parser.rst:30
msgid ""
@ -35,6 +42,9 @@ msgid ""
"Syntax Tree (AST) generation and compilation stage, using the :mod:`ast` "
"module."
msgstr ""
"À partir de Python 2.5, il est plus pratique de faire ces manipulations "
"entre la génération de l'AST (*Abstract Syntax Tree*) et la compilation, en "
"utilisant le module :mod:`ast`."
#: ../Doc/library/parser.rst:34
msgid ""
@ -43,6 +53,10 @@ msgid ""
"editing the parse trees for Python code, but some examples of using the :mod:"
"`parser` module are presented."
msgstr ""
"Certaines particularités de ce module sont importantes à retenir pour en "
"faire un bon usage. Ce n'est pas un tutoriel sur la modification d'arbres "
"syntaxiques Python, mais certains exemples d'utilisation du module :mod:"
"`parser` sont présentés."
#: ../Doc/library/parser.rst:39
msgid ""
@ -64,6 +78,22 @@ msgid ""
"from one version to another, whereas source code has always been forward-"
"compatible."
msgstr ""
"Le prérequis le plus important est une bonne compréhension de la grammaire "
"Python utilisée par l'analyseur interne dont la syntaxe est documentée "
"exhaustivement dans :ref:`reference-index`. L'analyseur lui-même est généré "
"à partir d'une grammaire spécifiée dans le fichier :file:`Grammar/Grammar` "
"dans la distribution standard de Python. Les arbres syntaxiques stockés dans "
"les objets ST créés par les fonctions :func:`expr` ou :func:`suite` de ce "
"module sont directement le résultat de l'analyseur interne, alors que les "
"objets ST créés par :func:`sequence2st` simulent ces structures. N'oubliez "
"pas qu'une séquence considérée « correcte » dans une version de Python peut "
"ne pas l'être dans une autre, la grammaire de Python pouvant évoluer. "
"Cependant, déplacer du code source d'une version de Python à une autre sous "
"forme textuelle donnera toujours des arbres syntaxique corrects, à "
"l'exception qu'une version plus ancienne de l'interpréteur ne pourra pas "
"analyser les constructions récentes du langage. Les arbres syntaxiques quant "
"à eux ne sont généralement pas compatibles d'une version à l'autre, alors "
"que le code source a toujours conservé la compatibilité ascendante."
#: ../Doc/library/parser.rst:56
msgid ""
@ -85,6 +115,23 @@ msgid ""
"requested, the same token might be represented as ``(1, 'if', 12)``, where "
"the ``12`` represents the line number at which the terminal symbol was found."
msgstr ""
"Chaque élément des séquences renvoyé par les fonctions :func:`st2list` ou :"
"func:`st2tuple` possède une forme simple. Les séquences représentant des "
"éléments non terminaux de la grammaire ont toujours une taille supérieure à "
"un. Le premier élément est un nombre entier représentant un élément de la "
"grammaire. Le fichier d'en-têtes C :file:`Include/graminit.h` et le module "
"Python :mod:`symbol` attribuent des noms symboliques à ces nombres. Les "
"éléments suivants représentent les composants, tels que reconnus dans la "
"chaîne analysée, de cet élément grammatical : ces séquences ont toujours la "
"même forme que leur parent. Notez que les mots clés utilisés pour identifier "
"le type du nœud parent, tel que :keyword:`if` dans un :const:`if_stmt` sont "
"inclus dans l'arbre du nœud sans traitement particulier. Par exemple, le mot "
"clé :keyword:`!if` est représenté par la paire ``(1, 'if')``, où ``1`` est "
"la valeur numérique pour les lexèmes :const:`NAME`, ce qui inclut les noms "
"de variables et de fonctions définis par l'utilisateur. Dans sa forme "
"alternative, renvoyée lorsque le numéro de la ligne est requis, le même "
"lexème peut être représenté : ``(1, 'if', 12)``, où ``12`` est le numéro de "
"la ligne sur laquelle le dernier symbole se trouve."
#: ../Doc/library/parser.rst:73
msgid ""