Mercurial > cpython-lru_cache-weakref
annotate Parser/Python.asdl @ 49955:878d40468c4e legacy-trunk
Issue #4384: Added logging integration with warnings module using captureWarnings(). This change includes a NullHandler which does nothing; it will be of use to library developers who want to avoid the "No handlers could be found for logger XXX" message which can appear if the library user doesn't configure logging.
| author | Vinay Sajip <vinay_sajip@yahoo.co.uk> |
|---|---|
| date | Wed, 03 Dec 2008 23:22:58 +0000 |
| parents | 2ff88ae9850c |
| children | 40c8c35492f1 |
| rev | line source |
|---|---|
|
35871
4ac3fa158927
Thou shalt not lie, there are really 5 types now
Neal Norwitz <nnorwitz@gmail.com>
parents:
35742
diff
changeset
|
1 -- ASDL's five builtin types are identifier, int, string, object, bool |
| 35742 | 2 |
|
36703
9f3e58dbea63
Add support for version field on Modules
Martin v. Löwis <martin@v.loewis.de>
parents:
36695
diff
changeset
|
3 module Python version "$Revision$" |
| 35742 | 4 { |
| 5 mod = Module(stmt* body) | |
| 6 | Interactive(stmt* body) | |
| 7 | Expression(expr body) | |
| 8 | |
| 9 -- not really an actual node but useful in Jython's typesystem. | |
| 10 | Suite(stmt* body) | |
| 11 | |
| 12 stmt = FunctionDef(identifier name, arguments args, | |
|
45447
393822f2ef90
Patch #1759: Backport of PEP 3129 class decorators
Christian Heimes <christian@cheimes.de>
parents:
40808
diff
changeset
|
13 stmt* body, expr* decorator_list) |
|
393822f2ef90
Patch #1759: Backport of PEP 3129 class decorators
Christian Heimes <christian@cheimes.de>
parents:
40808
diff
changeset
|
14 | ClassDef(identifier name, expr* bases, stmt* body, expr *decorator_list) |
| 35742 | 15 | Return(expr? value) |
| 16 | |
| 17 | Delete(expr* targets) | |
| 18 | Assign(expr* targets, expr value) | |
| 19 | AugAssign(expr target, operator op, expr value) | |
| 20 | |
| 21 -- not sure if bool is allowed, can always use int | |
| 22 | Print(expr? dest, expr* values, bool nl) | |
| 23 | |
| 24 -- use 'orelse' because else is a keyword in target languages | |
| 25 | For(expr target, expr iter, stmt* body, stmt* orelse) | |
| 26 | While(expr test, stmt* body, stmt* orelse) | |
| 27 | If(expr test, stmt* body, stmt* orelse) | |
|
36695
b6d2f6fd3e11
PEP 343 -- the with-statement.
Guido van Rossum <guido@python.org>
parents:
36666
diff
changeset
|
28 | With(expr context_expr, expr? optional_vars, stmt* body) |
| 35742 | 29 |
| 30 -- 'type' is a bad name | |
| 31 | Raise(expr? type, expr? inst, expr? tback) | |
| 32 | TryExcept(stmt* body, excepthandler* handlers, stmt* orelse) | |
| 33 | TryFinally(stmt* body, stmt* finalbody) | |
| 34 | Assert(expr test, expr? msg) | |
| 35 | |
| 36 | Import(alias* names) | |
|
36712
5c36c222e7ca
SF patch #1438387, PEP 328: relative and absolute imports.
Thomas Wouters <thomas@python.org>
parents:
36703
diff
changeset
|
37 | ImportFrom(identifier module, alias* names, int? level) |
| 35742 | 38 |
| 39 -- Doesn't capture requirement that locals must be | |
| 40 -- defined if globals is | |
| 41 -- still supports use as a function! | |
| 42 | Exec(expr body, expr? globals, expr? locals) | |
| 43 | |
| 44 | Global(identifier* names) | |
| 45 | Expr(expr value) | |
| 46 | Pass | Break | Continue | |
| 47 | |
| 48 -- XXX Jython will be different | |
|
36786
57322cb2ca11
Patch #1440601: Add col_offset attribute to AST nodes.
Martin v. Löwis <martin@v.loewis.de>
parents:
36712
diff
changeset
|
49 -- col_offset is the byte offset in the utf8 string the parser uses |
|
57322cb2ca11
Patch #1440601: Add col_offset attribute to AST nodes.
Martin v. Löwis <martin@v.loewis.de>
parents:
36712
diff
changeset
|
50 attributes (int lineno, int col_offset) |
| 35742 | 51 |
| 52 -- BoolOp() can use left & right? | |
| 53 expr = BoolOp(boolop op, expr* values) | |
| 54 | BinOp(expr left, operator op, expr right) | |
| 55 | UnaryOp(unaryop op, expr operand) | |
| 56 | Lambda(arguments args, expr body) | |
|
36666
6165927431d6
PEP 308 implementation, including minor refdocs and some testcases. It
Thomas Wouters <thomas@python.org>
parents:
36418
diff
changeset
|
57 | IfExp(expr test, expr body, expr orelse) |
| 35742 | 58 | Dict(expr* keys, expr* values) |
| 59 | ListComp(expr elt, comprehension* generators) | |
| 60 | GeneratorExp(expr elt, comprehension* generators) | |
|
36418
a625e8876407
Improved handling of syntax errors.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35871
diff
changeset
|
61 -- the grammar constrains where yield expressions can occur |
| 35742 | 62 | Yield(expr? value) |
| 63 -- need sequences for compare to distinguish between | |
| 64 -- x < 4 < 3 and (x < 4) < 3 | |
| 65 | Compare(expr left, cmpop* ops, expr* comparators) | |
| 66 | Call(expr func, expr* args, keyword* keywords, | |
| 67 expr? starargs, expr? kwargs) | |
| 68 | Repr(expr value) | |
| 69 | Num(object n) -- a number as a PyObject. | |
| 70 | Str(string s) -- need to specify raw, unicode, etc? | |
| 71 -- other literals? bools? | |
| 72 | |
| 73 -- the following expression can appear in assignment context | |
| 74 | Attribute(expr value, identifier attr, expr_context ctx) | |
| 75 | Subscript(expr value, slice slice, expr_context ctx) | |
| 76 | Name(identifier id, expr_context ctx) | |
| 77 | List(expr* elts, expr_context ctx) | |
|
40808
353c009f6c53
Change a very minor inconsistency (that is purely cosmetic) in the AST
Brett Cannon <bcannon@gmail.com>
parents:
37453
diff
changeset
|
78 | Tuple(expr* elts, expr_context ctx) |
| 35742 | 79 |
|
36786
57322cb2ca11
Patch #1440601: Add col_offset attribute to AST nodes.
Martin v. Löwis <martin@v.loewis.de>
parents:
36712
diff
changeset
|
80 -- col_offset is the byte offset in the utf8 string the parser uses |
|
57322cb2ca11
Patch #1440601: Add col_offset attribute to AST nodes.
Martin v. Löwis <martin@v.loewis.de>
parents:
36712
diff
changeset
|
81 attributes (int lineno, int col_offset) |
| 35742 | 82 |
| 83 expr_context = Load | Store | Del | AugLoad | AugStore | Param | |
| 84 | |
| 85 slice = Ellipsis | Slice(expr? lower, expr? upper, expr? step) | |
| 86 | ExtSlice(slice* dims) | |
| 87 | Index(expr value) | |
| 88 | |
| 89 boolop = And | Or | |
| 90 | |
| 91 operator = Add | Sub | Mult | Div | Mod | Pow | LShift | |
| 92 | RShift | BitOr | BitXor | BitAnd | FloorDiv | |
| 93 | |
| 94 unaryop = Invert | Not | UAdd | USub | |
| 95 | |
| 96 cmpop = Eq | NotEq | Lt | LtE | Gt | GtE | Is | IsNot | In | NotIn | |
| 97 | |
| 98 comprehension = (expr target, expr iter, expr* ifs) | |
| 99 | |
| 100 -- not sure what to call the first argument for raise and except | |
|
46200
2ff88ae9850c
Patch #2511: Give the "excepthandler" AST item proper attributes by making it a Sum.
Georg Brandl <georg@python.org>
parents:
45447
diff
changeset
|
101 excepthandler = ExceptHandler(expr? type, expr? name, stmt* body) |
|
2ff88ae9850c
Patch #2511: Give the "excepthandler" AST item proper attributes by making it a Sum.
Georg Brandl <georg@python.org>
parents:
45447
diff
changeset
|
102 attributes (int lineno, int col_offset) |
| 35742 | 103 |
| 104 arguments = (expr* args, identifier? vararg, | |
| 105 identifier? kwarg, expr* defaults) | |
| 106 | |
| 107 -- keyword arguments supplied to call | |
| 108 keyword = (identifier arg, expr value) | |
| 109 | |
| 110 -- import name with optional 'as' alias. | |
| 111 alias = (identifier name, identifier? asname) | |
| 112 } |
