--- /home/docs/checkouts/readthedocs.org/user_builds/restrictedpython/checkouts/latest/docs/contributing/ast/python3_4.ast
+++ /home/docs/checkouts/readthedocs.org/user_builds/restrictedpython/checkouts/latest/docs/contributing/ast/python3_5.ast
@@ -1,7 +1,7 @@
--- Python 3.4 AST
+-- Python 3.5 AST
-- ASDL's six builtin types are identifier, int, string, bytes, object, singleton
-module Python version "3.4"
+module Python version "3.5"
{
mod = Module(stmt* body)
| Interactive(stmt* body)
@@ -15,11 +15,15 @@
stmt* body,
expr* decorator_list,
expr? returns)
+ | AsyncFunctionDef(identifier name,
+ arguments args,
+ stmt* body,
+ expr* decorator_list,
+ expr? returns)
+
| ClassDef(identifier name,
expr* bases,
keyword* keywords,
- expr? starargs,
- expr? kwargs,
stmt* body,
expr* decorator_list)
| Return(expr? value)
@@ -30,9 +34,11 @@
-- use 'orelse' because else is a keyword in target languages
| For(expr target, expr iter, stmt* body, stmt* orelse)
+ | AsyncFor(expr target, expr iter, stmt* body, stmt* orelse)
| While(expr test, stmt* body, stmt* orelse)
| If(expr test, stmt* body, stmt* orelse)
| With(withitem* items, stmt* body)
+ | AsyncWith(withitem* items, stmt* body)
| Raise(expr? exc, expr? cause)
| Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)
@@ -65,6 +71,7 @@
| DictComp(expr key, expr value, comprehension* generators)
| GeneratorExp(expr elt, comprehension* generators)
-- the grammar constrains where yield expressions can occur
+ | Await(expr value)
| Yield(expr? value)
| YieldFrom(expr value)
-- need sequences for compare to distinguish between
@@ -72,9 +79,7 @@
| Compare(expr left, cmpop* ops, expr* comparators)
| Call(expr func,
expr* args,
- keyword* keywords,
- expr? starargs,
- expr? kwargs)
+ keyword* keywords)
| Num(object n) -- a number as a PyObject.
| Str(string s) -- need to specify raw, unicode, etc?
| Bytes(bytes s)
@@ -109,6 +114,7 @@
operator = Add
| Sub
| Mult
+ | MatMult
| Div
| Mod
| Pow
@@ -150,8 +156,8 @@
arg = (identifier arg, expr? annotation)
attributes (int lineno, int col_offset)
- -- keyword arguments supplied to call
- keyword = (identifier arg, expr value)
+ -- keyword arguments supplied to call (NULL identifier for **kwargs)
+ keyword = (identifier? arg, expr value)
-- import name with optional 'as' alias.
alias = (identifier name, identifier? asname)