2018-07-04 09:06:45 +00:00
|
|
|
|
# Copyright (C) 2001-2018, Python Software Foundation
|
2018-07-04 09:08:42 +00:00
|
|
|
|
# For licence information, see README file.
|
2016-10-30 09:46:26 +00:00
|
|
|
|
#
|
|
|
|
|
msgid ""
|
|
|
|
|
msgstr ""
|
2019-12-05 22:15:54 +00:00
|
|
|
|
"Project-Id-Version: Python 3\n"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
"Report-Msgid-Bugs-To: \n"
|
2019-11-15 22:57:16 +00:00
|
|
|
|
"POT-Creation-Date: 2019-11-15 18:54+0100\n"
|
2019-06-20 12:18:04 +00:00
|
|
|
|
"PO-Revision-Date: 2019-06-20 14:07+0200\n"
|
|
|
|
|
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
2018-07-04 09:14:25 +00:00
|
|
|
|
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
2017-05-23 22:40:56 +00:00
|
|
|
|
"Language: fr\n"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
"MIME-Version: 1.0\n"
|
|
|
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
|
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/parser.rst:2
|
|
|
|
|
msgid ":mod:`parser` --- Access Python parse trees"
|
2019-06-20 12:18:04 +00:00
|
|
|
|
msgstr ":mod:`parser` — Accès aux arbres syntaxiques"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
|
|
|
|
#: ../Doc/library/parser.rst:21
|
|
|
|
|
msgid ""
|
|
|
|
|
"The :mod:`parser` module provides an interface to Python's internal parser "
|
|
|
|
|
"and byte-code compiler. The primary purpose for this interface is to allow "
|
|
|
|
|
"Python code to edit the parse tree of a Python expression and create "
|
|
|
|
|
"executable code from this. This is better than trying to parse and modify "
|
|
|
|
|
"an arbitrary Python code fragment as a string because parsing is performed "
|
|
|
|
|
"in a manner identical to the code forming the application. It is also "
|
|
|
|
|
"faster."
|
|
|
|
|
msgstr ""
|
2019-06-20 12:18:04 +00:00
|
|
|
|
"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."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
|
|
|
|
#: ../Doc/library/parser.rst:30
|
|
|
|
|
msgid ""
|
|
|
|
|
"From Python 2.5 onward, it's much more convenient to cut in at the Abstract "
|
|
|
|
|
"Syntax Tree (AST) generation and compilation stage, using the :mod:`ast` "
|
|
|
|
|
"module."
|
|
|
|
|
msgstr ""
|
2019-06-20 12:18:04 +00:00
|
|
|
|
"À 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`."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
|
|
|
|
#: ../Doc/library/parser.rst:34
|
|
|
|
|
msgid ""
|
|
|
|
|
"There are a few things to note about this module which are important to "
|
|
|
|
|
"making use of the data structures created. This is not a tutorial on "
|
|
|
|
|
"editing the parse trees for Python code, but some examples of using the :mod:"
|
|
|
|
|
"`parser` module are presented."
|
|
|
|
|
msgstr ""
|
2019-06-20 12:18:04 +00:00
|
|
|
|
"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."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
|
|
|
|
#: ../Doc/library/parser.rst:39
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#, fuzzy
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Most importantly, a good understanding of the Python grammar processed by "
|
|
|
|
|
"the internal parser is required. For full information on the language "
|
|
|
|
|
"syntax, refer to :ref:`reference-index`. The parser itself is created from "
|
|
|
|
|
"a grammar specification defined in the file :file:`Grammar/Grammar` in the "
|
|
|
|
|
"standard Python distribution. The parse trees stored in the ST objects "
|
|
|
|
|
"created by this module are the actual output from the internal parser when "
|
|
|
|
|
"created by the :func:`expr` or :func:`suite` functions, described below. "
|
|
|
|
|
"The ST objects created by :func:`sequence2st` faithfully simulate those "
|
|
|
|
|
"structures. Be aware that the values of the sequences which are considered "
|
|
|
|
|
"\"correct\" will vary from one version of Python to another as the formal "
|
|
|
|
|
"grammar for the language is revised. However, transporting code from one "
|
|
|
|
|
"Python version to another as source text will always allow correct parse "
|
|
|
|
|
"trees to be created in the target version, with the only restriction being "
|
|
|
|
|
"that migrating to an older version of the interpreter will not support more "
|
|
|
|
|
"recent language constructs. The parse trees are not typically compatible "
|
2019-10-09 16:10:12 +00:00
|
|
|
|
"from one version to another, though source code has usually been forward-"
|
|
|
|
|
"compatible within a major release series."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
2019-06-20 12:18:04 +00:00
|
|
|
|
"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."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:57
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Each element of the sequences returned by :func:`st2list` or :func:"
|
|
|
|
|
"`st2tuple` has a simple form. Sequences representing non-terminal elements "
|
|
|
|
|
"in the grammar always have a length greater than one. The first element is "
|
|
|
|
|
"an integer which identifies a production in the grammar. These integers are "
|
|
|
|
|
"given symbolic names in the C header file :file:`Include/graminit.h` and the "
|
|
|
|
|
"Python module :mod:`symbol`. Each additional element of the sequence "
|
|
|
|
|
"represents a component of the production as recognized in the input string: "
|
|
|
|
|
"these are always sequences which have the same form as the parent. An "
|
|
|
|
|
"important aspect of this structure which should be noted is that keywords "
|
|
|
|
|
"used to identify the parent node type, such as the keyword :keyword:`if` in "
|
|
|
|
|
"an :const:`if_stmt`, are included in the node tree without any special "
|
2018-12-24 13:20:55 +00:00
|
|
|
|
"treatment. For example, the :keyword:`!if` keyword is represented by the "
|
2016-10-30 09:46:26 +00:00
|
|
|
|
"tuple ``(1, 'if')``, where ``1`` is the numeric value associated with all :"
|
|
|
|
|
"const:`NAME` tokens, including variable and function names defined by the "
|
|
|
|
|
"user. In an alternate form returned when line number information is "
|
|
|
|
|
"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 ""
|
2019-06-20 12:18:04 +00:00
|
|
|
|
"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."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:74
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Terminal elements are represented in much the same way, but without any "
|
|
|
|
|
"child elements and the addition of the source text which was identified. "
|
|
|
|
|
"The example of the :keyword:`if` keyword above is representative. The "
|
|
|
|
|
"various types of terminal symbols are defined in the C header file :file:"
|
|
|
|
|
"`Include/token.h` and the Python module :mod:`token`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:80
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The ST objects are not required to support the functionality of this module, "
|
|
|
|
|
"but are provided for three purposes: to allow an application to amortize the "
|
|
|
|
|
"cost of processing complex parse trees, to provide a parse tree "
|
|
|
|
|
"representation which conserves memory space when compared to the Python list "
|
|
|
|
|
"or tuple representation, and to ease the creation of additional modules in C "
|
|
|
|
|
"which manipulate parse trees. A simple \"wrapper\" class may be created in "
|
|
|
|
|
"Python to hide the use of ST objects."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:88
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The :mod:`parser` module defines functions for a few distinct purposes. The "
|
|
|
|
|
"most important purposes are to create ST objects and to convert ST objects "
|
|
|
|
|
"to other representations such as parse trees and compiled code objects, but "
|
|
|
|
|
"there are also functions which serve to query the type of parse tree "
|
|
|
|
|
"represented by an ST object."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:98
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Module :mod:`symbol`"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:98
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Useful constants representing internal nodes of the parse tree."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:101
|
2020-02-14 10:18:53 +00:00
|
|
|
|
#, fuzzy
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Module :mod:`token`"
|
2020-02-14 10:18:53 +00:00
|
|
|
|
msgstr "Module :mod:`tokenize`"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:101
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Useful constants representing leaf nodes of the parse tree and functions for "
|
|
|
|
|
"testing node values."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:108
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Creating ST Objects"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:110
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"ST objects may be created from source code or from a parse tree. When "
|
|
|
|
|
"creating an ST object from source, different functions are used to create "
|
|
|
|
|
"the ``'eval'`` and ``'exec'`` forms."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:117
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The :func:`expr` function parses the parameter *source* as if it were an "
|
|
|
|
|
"input to ``compile(source, 'file.py', 'eval')``. If the parse succeeds, an "
|
|
|
|
|
"ST object is created to hold the internal parse tree representation, "
|
|
|
|
|
"otherwise an appropriate exception is raised."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:125
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The :func:`suite` function parses the parameter *source* as if it were an "
|
|
|
|
|
"input to ``compile(source, 'file.py', 'exec')``. If the parse succeeds, an "
|
|
|
|
|
"ST object is created to hold the internal parse tree representation, "
|
|
|
|
|
"otherwise an appropriate exception is raised."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:133
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"This function accepts a parse tree represented as a sequence and builds an "
|
|
|
|
|
"internal representation if possible. If it can validate that the tree "
|
|
|
|
|
"conforms to the Python grammar and all nodes are valid node types in the "
|
|
|
|
|
"host version of Python, an ST object is created from the internal "
|
|
|
|
|
"representation and returned to the called. If there is a problem creating "
|
|
|
|
|
"the internal representation, or if the tree cannot be validated, a :exc:"
|
|
|
|
|
"`ParserError` exception is raised. An ST object created this way should not "
|
|
|
|
|
"be assumed to compile correctly; normal exceptions raised by compilation may "
|
|
|
|
|
"still be initiated when the ST object is passed to :func:`compilest`. This "
|
|
|
|
|
"may indicate problems not related to syntax (such as a :exc:`MemoryError` "
|
|
|
|
|
"exception), but may also be due to constructs such as the result of parsing "
|
|
|
|
|
"``del f(0)``, which escapes the Python parser but is checked by the bytecode "
|
|
|
|
|
"compiler."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:146
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Sequences representing terminal tokens may be represented as either two-"
|
|
|
|
|
"element lists of the form ``(1, 'name')`` or as three-element lists of the "
|
|
|
|
|
"form ``(1, 'name', 56)``. If the third element is present, it is assumed to "
|
|
|
|
|
"be a valid line number. The line number may be specified for any subset of "
|
|
|
|
|
"the terminal symbols in the input tree."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:155
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"This is the same function as :func:`sequence2st`. This entry point is "
|
|
|
|
|
"maintained for backward compatibility."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:162
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Converting ST Objects"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:164
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"ST objects, regardless of the input used to create them, may be converted to "
|
|
|
|
|
"parse trees represented as list- or tuple- trees, or may be compiled into "
|
|
|
|
|
"executable code objects. Parse trees may be extracted with or without line "
|
|
|
|
|
"numbering information."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:172
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"This function accepts an ST object from the caller in *st* and returns a "
|
|
|
|
|
"Python list representing the equivalent parse tree. The resulting list "
|
|
|
|
|
"representation can be used for inspection or the creation of a new parse "
|
|
|
|
|
"tree in list form. This function does not fail so long as memory is "
|
|
|
|
|
"available to build the list representation. If the parse tree will only be "
|
|
|
|
|
"used for inspection, :func:`st2tuple` should be used instead to reduce "
|
|
|
|
|
"memory consumption and fragmentation. When the list representation is "
|
|
|
|
|
"required, this function is significantly faster than retrieving a tuple "
|
|
|
|
|
"representation and converting that to nested lists."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:182
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"If *line_info* is true, line number information will be included for all "
|
|
|
|
|
"terminal tokens as a third element of the list representing the token. Note "
|
|
|
|
|
"that the line number provided specifies the line on which the token *ends*. "
|
|
|
|
|
"This information is omitted if the flag is false or omitted."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:190
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"This function accepts an ST object from the caller in *st* and returns a "
|
|
|
|
|
"Python tuple representing the equivalent parse tree. Other than returning a "
|
|
|
|
|
"tuple instead of a list, this function is identical to :func:`st2list`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:194
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"If *line_info* is true, line number information will be included for all "
|
|
|
|
|
"terminal tokens as a third element of the list representing the token. This "
|
|
|
|
|
"information is omitted if the flag is false or omitted."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:205
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The Python byte compiler can be invoked on an ST object to produce code "
|
|
|
|
|
"objects which can be used as part of a call to the built-in :func:`exec` or :"
|
|
|
|
|
"func:`eval` functions. This function provides the interface to the compiler, "
|
|
|
|
|
"passing the internal parse tree from *st* to the parser, using the source "
|
|
|
|
|
"file name specified by the *filename* parameter. The default value supplied "
|
|
|
|
|
"for *filename* indicates that the source was an ST object."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:212
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Compiling an ST object may result in exceptions related to compilation; an "
|
|
|
|
|
"example would be a :exc:`SyntaxError` caused by the parse tree for ``del "
|
|
|
|
|
"f(0)``: this statement is considered legal within the formal grammar for "
|
|
|
|
|
"Python but is not a legal language construct. The :exc:`SyntaxError` raised "
|
|
|
|
|
"for this condition is actually generated by the Python byte-compiler "
|
|
|
|
|
"normally, which is why it can be raised at this point by the :mod:`parser` "
|
|
|
|
|
"module. Most causes of compilation failure can be diagnosed "
|
|
|
|
|
"programmatically by inspection of the parse tree."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:225
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Queries on ST Objects"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:227
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Two functions are provided which allow an application to determine if an ST "
|
|
|
|
|
"was created as an expression or a suite. Neither of these functions can be "
|
|
|
|
|
"used to determine if an ST was created from source code via :func:`expr` or :"
|
|
|
|
|
"func:`suite` or from a parse tree via :func:`sequence2st`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:237
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
2019-11-15 22:57:16 +00:00
|
|
|
|
"When *st* represents an ``'eval'`` form, this function returns ``True``, "
|
|
|
|
|
"otherwise it returns ``False``. This is useful, since code objects normally "
|
2016-10-30 09:46:26 +00:00
|
|
|
|
"cannot be queried for this information using existing built-in functions. "
|
|
|
|
|
"Note that the code objects created by :func:`compilest` cannot be queried "
|
|
|
|
|
"like this either, and are identical to those created by the built-in :func:"
|
|
|
|
|
"`compile` function."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:246
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"This function mirrors :func:`isexpr` in that it reports whether an ST object "
|
|
|
|
|
"represents an ``'exec'`` form, commonly known as a \"suite.\" It is not "
|
|
|
|
|
"safe to assume that this function is equivalent to ``not isexpr(st)``, as "
|
|
|
|
|
"additional syntactic fragments may be supported in the future."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:255
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Exceptions and Error Handling"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:257
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The parser module defines a single exception, but may also pass other built-"
|
|
|
|
|
"in exceptions from other portions of the Python runtime environment. See "
|
|
|
|
|
"each function for information about the exceptions it can raise."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:264
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Exception raised when a failure occurs within the parser module. This is "
|
|
|
|
|
"generally produced for validation failures rather than the built-in :exc:"
|
|
|
|
|
"`SyntaxError` raised during normal parsing. The exception argument is either "
|
|
|
|
|
"a string describing the reason of the failure or a tuple containing a "
|
|
|
|
|
"sequence causing the failure from a parse tree passed to :func:`sequence2st` "
|
|
|
|
|
"and an explanatory string. Calls to :func:`sequence2st` need to be able to "
|
|
|
|
|
"handle either type of exception, while calls to other functions in the "
|
|
|
|
|
"module will only need to be aware of the simple string values."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:273
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Note that the functions :func:`compilest`, :func:`expr`, and :func:`suite` "
|
|
|
|
|
"may raise exceptions which are normally raised by the parsing and "
|
|
|
|
|
"compilation process. These include the built in exceptions :exc:"
|
|
|
|
|
"`MemoryError`, :exc:`OverflowError`, :exc:`SyntaxError`, and :exc:"
|
|
|
|
|
"`SystemError`. In these cases, these exceptions carry all the meaning "
|
|
|
|
|
"normally associated with them. Refer to the descriptions of each function "
|
|
|
|
|
"for detailed information."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:284
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "ST Objects"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:286
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Ordered and equality comparisons are supported between ST objects. Pickling "
|
|
|
|
|
"of ST objects (using the :mod:`pickle` module) is also supported."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:292
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The type of the objects returned by :func:`expr`, :func:`suite` and :func:"
|
|
|
|
|
"`sequence2st`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:295
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "ST objects have the following methods:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:300
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Same as ``compilest(st, filename)``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:305
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Same as ``isexpr(st)``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:310
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Same as ``issuite(st)``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:315
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Same as ``st2list(st, line_info, col_info)``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:320
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Same as ``st2tuple(st, line_info, col_info)``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:324
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Example: Emulation of :func:`compile`"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:326
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"While many useful operations may take place between parsing and bytecode "
|
|
|
|
|
"generation, the simplest operation is to do nothing. For this purpose, "
|
|
|
|
|
"using the :mod:`parser` module to produce an intermediate data structure is "
|
|
|
|
|
"equivalent to the code ::"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:336
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The equivalent operation using the :mod:`parser` module is somewhat longer, "
|
|
|
|
|
"and allows the intermediate internal parse tree to be retained as an ST "
|
|
|
|
|
"object::"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-10-09 16:10:12 +00:00
|
|
|
|
#: ../Doc/library/parser.rst:346
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"An application which needs both ST and code objects can package this code "
|
|
|
|
|
"into readily available functions::"
|
|
|
|
|
msgstr ""
|