summaryrefslogtreecommitdiffstats
path: root/Parser/Python.asdl
diff options
context:
space:
mode:
authorBrandt Bucher <brandtbucher@gmail.com>2021-02-26 22:51:55 (GMT)
committerGitHub <noreply@github.com>2021-02-26 22:51:55 (GMT)
commit145bf269df3530176f6ebeab1324890ef7070bf8 (patch)
tree4c4928d6250785372171a52be0b7269aa444511b /Parser/Python.asdl
parentcc02b4f2e810ab524d845daa18bc94df5b092dd8 (diff)
downloadcpython-145bf269df3530176f6ebeab1324890ef7070bf8.zip
cpython-145bf269df3530176f6ebeab1324890ef7070bf8.tar.gz
cpython-145bf269df3530176f6ebeab1324890ef7070bf8.tar.bz2
bpo-42128: Structural Pattern Matching (PEP 634) (GH-22917)
Co-authored-by: Guido van Rossum <guido@python.org> Co-authored-by: Talin <viridia@gmail.com> Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
Diffstat (limited to 'Parser/Python.asdl')
-rw-r--r--Parser/Python.asdl8
1 files changed, 8 insertions, 0 deletions
diff --git a/Parser/Python.asdl b/Parser/Python.asdl
index 889712b..ddc019d 100644
--- a/Parser/Python.asdl
+++ b/Parser/Python.asdl
@@ -36,6 +36,8 @@ module Python
| With(withitem* items, stmt* body, string? type_comment)
| AsyncWith(withitem* items, stmt* body, string? type_comment)
+ | Match(expr subject, match_case* cases)
+
| Raise(expr? exc, expr? cause)
| Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)
| Assert(expr test, expr? msg)
@@ -87,6 +89,10 @@ module Python
-- can appear only in Subscript
| Slice(expr? lower, expr? upper, expr? step)
+ -- only used in patterns
+ | MatchAs(expr pattern, identifier name)
+ | MatchOr(expr* patterns)
+
-- 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)
@@ -121,5 +127,7 @@ module Python
withitem = (expr context_expr, expr? optional_vars)
+ match_case = (expr pattern, expr? guard, stmt* body)
+
type_ignore = TypeIgnore(int lineno, string tag)
}