annotate Parser/Python.asdl @ 87690:66c1c9f32567 default tip

Add use_weakref option to functools.lru_cache The use_weakref option makes lru_cache create weak references to the function arguments when creating the cache key, which prevents them from staying in the memory forever even after all other references to them are gone. This is a proof of concept for http://bugs.python.org/issue19859
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 03 Dec 2013 16:02:48 +0100
parents 7c5c678e4164
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
80738
03f92a9f0875 create NameConstant AST class for None, True, and False literals (closes #16619)
Benjamin Peterson <benjamin@python.org>
parents: 80589
diff changeset
1 -- ASDL's six builtin types are identifier, int, string, bytes, object, singleton
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
2
68412
0daa6ba25d9b convert ast versioning to mercurial
Benjamin Peterson <benjamin@python.org>
parents: 62447
diff changeset
3 module Python
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
4 {
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
5 mod = Module(stmt* body)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
6 | Interactive(stmt* body)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
7 | Expression(expr body)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
8
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
9 -- not really an actual node but useful in Jython's typesystem.
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
10 | Suite(stmt* body)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
11
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
12 stmt = FunctionDef(identifier name, arguments args,
41824
24b60622b944 Merged revisions 55407-55513 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41717
diff changeset
13 stmt* body, expr* decorator_list, expr? returns)
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
14 | ClassDef(identifier name,
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
15 expr* bases,
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
16 keyword* keywords,
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
17 expr? starargs,
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
18 expr? kwargs,
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
19 stmt* body,
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
20 expr* decorator_list)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
21 | Return(expr? value)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
22
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
23 | Delete(expr* targets)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
24 | Assign(expr* targets, expr value)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
25 | AugAssign(expr target, operator op, expr value)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
26
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
27 -- use 'orelse' because else is a keyword in target languages
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
28 | For(expr target, expr iter, stmt* body, stmt* orelse)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
29 | While(expr test, stmt* body, stmt* orelse)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
30 | If(expr test, stmt* body, stmt* orelse)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
31 | With(withitem* items, stmt* body)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
32
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
33 | Raise(expr? exc, expr? cause)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
34 | Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
35 | Assert(expr test, expr? msg)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
36
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
37 | Import(alias* names)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
38 | ImportFrom(identifier? module, alias* names, int? level)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
39
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
40 | Global(identifier* names)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
41 | Nonlocal(identifier* names)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
42 | Expr(expr value)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
43 | Pass | Break | Continue
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
44
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
45 -- XXX Jython will be different
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
46 -- col_offset is the byte offset in the utf8 string the parser uses
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
47 attributes (int lineno, int col_offset)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
48
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
49 -- BoolOp() can use left & right?
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
50 expr = BoolOp(boolop op, expr* values)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
51 | BinOp(expr left, operator op, expr right)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
52 | UnaryOp(unaryop op, expr operand)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
53 | Lambda(arguments args, expr body)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
54 | IfExp(expr test, expr body, expr orelse)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
55 | Dict(expr* keys, expr* values)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
56 | Set(expr* elts)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
57 | ListComp(expr elt, comprehension* generators)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
58 | SetComp(expr elt, comprehension* generators)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
59 | DictComp(expr key, expr value, comprehension* generators)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
60 | GeneratorExp(expr elt, comprehension* generators)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
61 -- the grammar constrains where yield expressions can occur
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
62 | Yield(expr? value)
80589
ffb2fa900cb7 Issue #16546: make ast.YieldFrom argument mandatory.
Mark Dickinson <mdickinson@enthought.com>
parents: 74446
diff changeset
63 | YieldFrom(expr value)
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
64 -- need sequences for compare to distinguish between
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
65 -- x < 4 < 3 and (x < 4) < 3
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
66 | Compare(expr left, cmpop* ops, expr* comparators)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
67 | Call(expr func, expr* args, keyword* keywords,
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
68 expr? starargs, expr? kwargs)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
69 | Num(object n) -- a number as a PyObject.
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
70 | Str(string s) -- need to specify raw, unicode, etc?
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
71 | Bytes(bytes s)
80738
03f92a9f0875 create NameConstant AST class for None, True, and False literals (closes #16619)
Benjamin Peterson <benjamin@python.org>
parents: 80589
diff changeset
72 | NameConstant(singleton value)
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
73 | Ellipsis
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
74
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
75 -- the following expression can appear in assignment context
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
76 | Attribute(expr value, identifier attr, expr_context ctx)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
77 | Subscript(expr value, slice slice, expr_context ctx)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
78 | Starred(expr value, expr_context ctx)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
79 | Name(identifier id, expr_context ctx)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
80 | List(expr* elts, expr_context ctx)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
81 | Tuple(expr* elts, expr_context ctx)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
82
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
83 -- col_offset is the byte offset in the utf8 string the parser uses
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
84 attributes (int lineno, int col_offset)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
85
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
86 expr_context = Load | Store | Del | AugLoad | AugStore | Param
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
87
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
88 slice = Slice(expr? lower, expr? upper, expr? step)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
89 | ExtSlice(slice* dims)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
90 | Index(expr value)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
91
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
92 boolop = And | Or
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
93
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
94 operator = Add | Sub | Mult | Div | Mod | Pow | LShift
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
95 | RShift | BitOr | BitXor | BitAnd | FloorDiv
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
96
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
97 unaryop = Invert | Not | UAdd | USub
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
98
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
99 cmpop = Eq | NotEq | Lt | LtE | Gt | GtE | Is | IsNot | In | NotIn
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
100
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
101 comprehension = (expr target, expr iter, expr* ifs)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
102
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
103 excepthandler = ExceptHandler(expr? type, identifier? name, stmt* body)
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
104 attributes (int lineno, int col_offset)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
105
82732
7c5c678e4164 unify some ast.argument's attrs; change Attribute column offset (closes #16795)
Benjamin Peterson <benjamin@python.org>
parents: 80738
diff changeset
106 arguments = (arg* args, arg? vararg, arg* kwonlyargs, expr* kw_defaults,
7c5c678e4164 unify some ast.argument's attrs; change Attribute column offset (closes #16795)
Benjamin Peterson <benjamin@python.org>
parents: 80738
diff changeset
107 arg? kwarg, expr* defaults)
7c5c678e4164 unify some ast.argument's attrs; change Attribute column offset (closes #16795)
Benjamin Peterson <benjamin@python.org>
parents: 80738
diff changeset
108
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
109 arg = (identifier arg, expr? annotation)
82732
7c5c678e4164 unify some ast.argument's attrs; change Attribute column offset (closes #16795)
Benjamin Peterson <benjamin@python.org>
parents: 80738
diff changeset
110 attributes (int lineno, int col_offset)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
111
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
112 -- keyword arguments supplied to call
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
113 keyword = (identifier arg, expr value)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
114
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
115 -- import name with optional 'as' alias.
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
116 alias = (identifier name, identifier? asname)
70438
9b11cc4e2918 reflect with statements with multiple items in the AST (closes #12106)
Benjamin Peterson <benjamin@python.org>
parents: 68412
diff changeset
117
74446
62545104f9c0 murder tabs
Benjamin Peterson <benjamin@python.org>
parents: 74391
diff changeset
118 withitem = (expr context_expr, expr? optional_vars)
35742
1c4d192f1568 Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
119 }
40895
bd1419e94773 Touch file to regenerate Python-ast.[ch]
Thomas Wouters <thomas@python.org>
parents: 40894
diff changeset
120