Mercurial > cpython-lru_cache-weakref
annotate Parser/Python.asdl @ 58973:db86bf39ccaa legacy-trunk
Issue 7970: When email.Parser.Parser parses a MIME message of type
message/rfc822 it turns it into an object whose body consists of
a list containing a single Message object. HeaderParser, on the
other hand, just copies the body as a string. Generator.flatten
has a special handler for the message mime type that expected the
body to be the one item list. This fails if the message was parsed
by HeaderParser. So we now check to see if the body is a string
first, and if so just we just emit it.
| author | R. David Murray <rdmurray@bitdance.com> |
|---|---|
| date | Sun, 21 Feb 2010 04:23:00 +0000 |
| parents | edfed0e32ced |
| children | 18635cbd66e0 |
| 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) | |
|
54743
40c8c35492f1
when no module is given in a 'from' relative import, make ImportFrom.module NULL
Benjamin Peterson <benjamin@python.org>
parents:
46200
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) |
|
58229
c2fdf25329ff
Issue #2335: Backport set literals syntax from Python 3.x.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
54743
diff
changeset
|
59 | Set(expr* elts) |
| 35742 | 60 | ListComp(expr elt, comprehension* generators) |
|
58250
edfed0e32ced
Issue #2333: Backport set and dict comprehensions syntax.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
58229
diff
changeset
|
61 | SetComp(expr elt, comprehension* generators) |
|
edfed0e32ced
Issue #2333: Backport set and dict comprehensions syntax.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
58229
diff
changeset
|
62 | DictComp(expr key, expr value, comprehension* generators) |
| 35742 | 63 | GeneratorExp(expr elt, comprehension* generators) |
|
36418
a625e8876407
Improved handling of syntax errors.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35871
diff
changeset
|
64 -- the grammar constrains where yield expressions can occur |
| 35742 | 65 | Yield(expr? value) |
| 66 -- need sequences for compare to distinguish between | |
| 67 -- x < 4 < 3 and (x < 4) < 3 | |
| 68 | Compare(expr left, cmpop* ops, expr* comparators) | |
| 69 | Call(expr func, expr* args, keyword* keywords, | |
| 70 expr? starargs, expr? kwargs) | |
| 71 | Repr(expr value) | |
| 72 | Num(object n) -- a number as a PyObject. | |
| 73 | Str(string s) -- need to specify raw, unicode, etc? | |
| 74 -- other literals? bools? | |
| 75 | |
| 76 -- the following expression can appear in assignment context | |
| 77 | Attribute(expr value, identifier attr, expr_context ctx) | |
| 78 | Subscript(expr value, slice slice, expr_context ctx) | |
| 79 | Name(identifier id, expr_context ctx) | |
| 80 | 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
|
81 | Tuple(expr* elts, expr_context ctx) |
| 35742 | 82 |
|
36786
57322cb2ca11
Patch #1440601: Add col_offset attribute to AST nodes.
Martin v. Löwis <martin@v.loewis.de>
parents:
36712
diff
changeset
|
83 -- 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
|
84 attributes (int lineno, int col_offset) |
| 35742 | 85 |
| 86 expr_context = Load | Store | Del | AugLoad | AugStore | Param | |
| 87 | |
| 88 slice = Ellipsis | Slice(expr? lower, expr? upper, expr? step) | |
| 89 | ExtSlice(slice* dims) | |
| 90 | Index(expr value) | |
| 91 | |
| 92 boolop = And | Or | |
| 93 | |
| 94 operator = Add | Sub | Mult | Div | Mod | Pow | LShift | |
| 95 | RShift | BitOr | BitXor | BitAnd | FloorDiv | |
| 96 | |
| 97 unaryop = Invert | Not | UAdd | USub | |
| 98 | |
| 99 cmpop = Eq | NotEq | Lt | LtE | Gt | GtE | Is | IsNot | In | NotIn | |
| 100 | |
| 101 comprehension = (expr target, expr iter, expr* ifs) | |
| 102 | |
| 103 -- 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
|
104 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
|
105 attributes (int lineno, int col_offset) |
| 35742 | 106 |
| 107 arguments = (expr* args, identifier? vararg, | |
| 108 identifier? kwarg, expr* defaults) | |
| 109 | |
| 110 -- keyword arguments supplied to call | |
| 111 keyword = (identifier arg, expr value) | |
| 112 | |
| 113 -- import name with optional 'as' alias. | |
| 114 alias = (identifier name, identifier? asname) | |
| 115 } |
