--- /home/docs/checkouts/readthedocs.org/user_builds/restrictedpython/checkouts/latest/docs/contributing/ast/python3_8.ast
+++ /home/docs/checkouts/readthedocs.org/user_builds/restrictedpython/checkouts/latest/docs/contributing/ast/python3_9.ast
@@ -1,16 +1,13 @@
--- Python 3.8 AST
--- ASDL's 5 builtin types are:
--- identifier, int, string, object, constant
+-- Python 3.9 AST
+-- ASDL's 4 builtin types are:
+-- identifier, int, string, constant
-module Python version "3.8"
+module Python version "3.9"
{
- mod = Module(stmt* body, type_ignore *type_ignores)
+ mod = Module(stmt* body, type_ignore* type_ignores)
| Interactive(stmt* body)
| Expression(expr body)
| FunctionType(expr* argtypes, expr returns)
-
- -- not really an actual node but useful in Jython's typesystem.
- | Suite(stmt* body)
stmt = FunctionDef(identifier name,
arguments args,
@@ -60,7 +57,6 @@
| Break
| Continue
- -- XXX Jython will be different
-- col_offset is the byte offset in the utf8 string the parser uses
attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)
@@ -84,34 +80,28 @@
-- need sequences for compare to distinguish between
-- x < 4 < 3 and (x < 4) < 3
| Compare(expr left, cmpop* ops, expr* comparators)
- | Call(expr func,
- expr* args,
- keyword* keywords)
+ | Call(expr func, expr* args, keyword* keywords)
| FormattedValue(expr value, int? conversion, expr? format_spec)
| JoinedStr(expr* values)
| Constant(constant value, string? kind)
-- the following expression can appear in assignment context
| Attribute(expr value, identifier attr, expr_context ctx)
- | Subscript(expr value, slice slice, expr_context ctx)
+ | Subscript(expr value, expr slice, expr_context ctx)
| Starred(expr value, expr_context ctx)
| Name(identifier id, expr_context ctx)
| List(expr* elts, expr_context ctx)
| Tuple(expr* elts, expr_context ctx)
- -- col_offset is the byte offset in the utf8 string the parser uses
- attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)
+ -- can appear only in Subscript
+ | Slice(expr? lower, expr? upper, expr? step)
+
+ -- col_offset is the byte offset in the utf8 string the parser uses
+ attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)
expr_context = Load
| Store
| Del
- | AugLoad
- | AugStore
- | Param
-
- slice = Slice(expr? lower, expr? upper, expr? step)
- | ExtSlice(slice* dims)
- | Index(expr value)
boolop = And
| Or
@@ -164,6 +154,7 @@
-- keyword arguments supplied to call (NULL identifier for **kwargs)
keyword = (identifier? arg, expr value)
+ attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)
-- import name with optional 'as' alias.
alias = (identifier name, identifier? asname)