From 0701ee2228a1cc9d59e3f6927cf8cfb05cf2bf8b Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Sat, 15 Jun 2019 15:38:25 +0200 Subject: [PATCH 1/4] Working on library/parser --- library/parser.po | 53 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/library/parser.po b/library/parser.po index 2dee20838..0637f2689 100644 --- a/library/parser.po +++ b/library/parser.po @@ -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 \n" +"PO-Revision-Date: 2019-06-15 15:37+0200\n" +"Last-Translator: Julien Palard \n" "Language-Team: FRENCH \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 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 certaines 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 le parseur interne dont la syntaxe est documentée " +"exhaustivement dans :ref:`reference-index`. L'analyseur lui-même est crée à " +"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ées par les fonctions :func:`expr` ou :func:`suite` de ce " +"module sont directement le résultat du parseur interne, alors que les objets " +"ST crées 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 évoluant. " +"Cependant, déplacer du code 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 à 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` ont 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. Ces nombres entiers sont nommés dans le fichier :file:`Include/" +"graminit.h` et dans le module Python :mod:`symbol`. Les éléments suivants " +"représentent les composants, reconnus dans la chaîne donnée, de cet élément " +"gramatical : 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 inclu 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 jetons :const:`NAME`, jetons incluants 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 meme jeton peut être " +"représenté : ``(1, 'if', 12)``, où ``12`` est le numéro de la ligne sur " +"laquel le dernier symbole se trouve." #: ../Doc/library/parser.rst:73 msgid "" From ffb2b60ee9c4c3cd88bb0004106cf22b95a35391 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Sun, 16 Jun 2019 15:47:56 +0200 Subject: [PATCH 2/4] Apply suggestions from code review Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- library/parser.po | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/library/parser.po b/library/parser.po index 0637f2689..941e5c0dd 100644 --- a/library/parser.po +++ b/library/parser.po @@ -33,7 +33,7 @@ msgstr "" "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 utilisé pour le code de l'application. C'est aussi plus " +"même analyseur que celui utilisé pour le code de l'application. C'est aussi plus " "rapide." #: ../Doc/library/parser.rst:30 @@ -55,7 +55,7 @@ msgid "" 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 certaines exemples d'utilisation du module :mod:" +"syntaxiques Python, mais certains exemples d'utilisation du module :mod:" "`parser` sont présentés." #: ../Doc/library/parser.rst:39 @@ -79,16 +79,16 @@ msgid "" "compatible." msgstr "" "Le prérequis le plus important est une bonne compréhension de la grammaire " -"Python utilisée par le parseur interne dont la syntaxe est documentée " +"Python utilisée par l'analyseur interne dont la syntaxe est documentée " "exhaustivement dans :ref:`reference-index`. L'analyseur lui-même est crée à " "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ées par les fonctions :func:`expr` ou :func:`suite` de ce " -"module sont directement le résultat du parseur interne, alors que les objets " -"ST crées par :func:`sequence2st` simulent ces structures. N'oubliez pas " +"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 évoluant. " -"Cependant, déplacer du code d'une version de Python à une autre sous forme " +"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 " @@ -116,7 +116,7 @@ msgid "" "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` ont une forme simple. Les séquences représentant des " +"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. Ces nombres entiers sont nommés dans le fichier :file:`Include/" @@ -124,14 +124,14 @@ msgstr "" "représentent les composants, reconnus dans la chaîne donnée, de cet élément " "gramatical : 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 inclu dans l'arbre du nœud sans " +"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 jetons :const:`NAME`, jetons incluants 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 meme jeton peut être " "représenté : ``(1, 'if', 12)``, où ``12`` est le numéro de la ligne sur " -"laquel le dernier symbole se trouve." +"laquelle le dernier symbole se trouve." #: ../Doc/library/parser.rst:73 msgid "" From 479a15d4c23d3eddb3d7544ed94c9a9462b75168 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Thu, 20 Jun 2019 13:45:52 +0200 Subject: [PATCH 3/4] Apply suggestions from code review Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- library/parser.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/library/parser.po b/library/parser.po index 941e5c0dd..f8a3ddbf7 100644 --- a/library/parser.po +++ b/library/parser.po @@ -80,20 +80,20 @@ msgid "" 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 cré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 évoluant. " +"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 à toujours conservé la compatibilité ascendante." +"source a toujours conservé la compatibilité ascendante." #: ../Doc/library/parser.rst:56 msgid "" @@ -121,15 +121,15 @@ msgstr "" "un. Le premier élément est un nombre entier représentant un élément de la " "grammaire. Ces nombres entiers sont nommés dans le fichier :file:`Include/" "graminit.h` et dans le module Python :mod:`symbol`. Les éléments suivants " -"représentent les composants, reconnus dans la chaîne donnée, de cet élément " -"gramatical : ces séquences ont toujours la même forme que leur parent. Notez " +"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 jetons :const:`NAME`, jetons incluants les noms de variables et de " +"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 meme jeton peut être " +"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." From b5401328f77b8e548cf560e5834f137776259a44 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Thu, 20 Jun 2019 14:08:11 +0200 Subject: [PATCH 4/4] Rewording --- library/parser.po | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/library/parser.po b/library/parser.po index f8a3ddbf7..eecbd1e10 100644 --- a/library/parser.po +++ b/library/parser.po @@ -6,7 +6,7 @@ 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: 2019-06-15 15:37+0200\n" +"PO-Revision-Date: 2019-06-20 14:07+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -33,8 +33,8 @@ msgstr "" "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." +"même analyseur que celui utilisé pour le code de l'application. C'est aussi " +"plus rapide." #: ../Doc/library/parser.rst:30 msgid "" @@ -80,20 +80,20 @@ msgid "" 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` " +"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." +"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 "" @@ -119,19 +119,19 @@ msgstr "" "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. Ces nombres entiers sont nommés dans le fichier :file:`Include/" -"graminit.h` et dans le module Python :mod:`symbol`. 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." +"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 ""