mirror of
https://github.com/python/cpython.git
synced 2025-12-31 04:23:37 +00:00
Add ast.Constant
Issue #26146: Add a new kind of AST node: ast.Constant. It can be used by external AST optimizers, but the compiler does not emit directly such node. An optimizer can replace the following AST nodes with ast.Constant: * ast.NameConstant: None, False, True * ast.Num: int, float, complex * ast.Str: str * ast.Bytes: bytes * ast.Tuple if items are constants too: tuple * frozenset Update code to accept ast.Constant instead of ast.Num and/or ast.Str: * compiler * docstrings * ast.literal_eval() * Tools/parser/unparse.py
This commit is contained in:
parent
0dceb91866
commit
f2c1aa1661
14 changed files with 401 additions and 44 deletions
|
|
@ -1,4 +1,8 @@
|
|||
-- ASDL's six builtin types are identifier, int, string, bytes, object, singleton
|
||||
-- ASDL's 7 builtin types are:
|
||||
-- identifier, int, string, bytes, object, singleton, constant
|
||||
--
|
||||
-- singleton: None, True or False
|
||||
-- constant can be None, whereas None means "no value" for object.
|
||||
|
||||
module Python
|
||||
{
|
||||
|
|
@ -76,6 +80,7 @@ module Python
|
|||
| Bytes(bytes s)
|
||||
| NameConstant(singleton value)
|
||||
| Ellipsis
|
||||
| Constant(constant value)
|
||||
|
||||
-- the following expression can appear in assignment context
|
||||
| Attribute(expr value, identifier attr, expr_context ctx)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue