Mercurial > python-compiler.rs
diff src/ast_convert.rs @ 71:2c1e2ce41263
Add ast.AsyncFor.
author | Bastien Orivel <eijebong@bananium.fr> |
---|---|
date | Mon, 13 Jun 2016 18:02:34 +0200 |
parents | a73eaf42bea1 |
children | 7ac23f4336b1 |
line wrap: on
line diff
--- a/src/ast_convert.rs +++ b/src/ast_convert.rs @@ -536,6 +536,7 @@ fn parse_statement(py: Python, ast: PyOb let if_type = ast_module.get(py, "If").unwrap(); let while_type = ast_module.get(py, "While").unwrap(); let for_type = ast_module.get(py, "For").unwrap(); + let async_for_type = ast_module.get(py, "AsyncFor").unwrap(); let expr_type = ast_module.get(py, "Expr").unwrap(); let break_type = ast_module.get(py, "Break").unwrap(); let delete_type = ast_module.get(py, "Delete").unwrap(); @@ -618,7 +619,7 @@ fn parse_statement(py: Python, ast: PyOb let orelse = parse_list(py, orelse, parse_statement); stmt::While(test, body, orelse) - } else if is_instance(&ast, &for_type) { + } else if is_instance(&ast, &for_type) || is_instance(&ast, &async_for_type) { let target = ast.getattr(py, "target").unwrap(); let iter = ast.getattr(py, "iter").unwrap(); let body = ast.getattr(py, "body").unwrap(); @@ -629,7 +630,7 @@ fn parse_statement(py: Python, ast: PyOb let body = parse_list(py, body, parse_statement); let orelse = parse_list(py, orelse, parse_statement); - stmt::For(target, iter, body, orelse) + stmt::For(target, iter, body, orelse, is_instance(&ast, &async_for_type)) } else if is_instance(&ast, &assign_type) { let targets = ast.getattr(py, "targets").unwrap(); let value = ast.getattr(py, "value").unwrap();