Mercurial > python-compiler.rs
diff src/ast_convert.rs @ 67:8ce78e2ba48c
Implement class keywords.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Mon, 13 Jun 2016 01:43:19 +0100 |
parents | ce5e27a3f277 |
children | c59ad5ccd8a6 |
line wrap: on
line diff
--- a/src/ast_convert.rs +++ b/src/ast_convert.rs @@ -551,16 +551,17 @@ fn parse_statement(py: Python, ast: PyOb if is_instance(&ast, &class_def_type) { let name = ast.getattr(py, "name").unwrap(); let bases = ast.getattr(py, "bases").unwrap(); - //let keywords = ast.getattr(py, "keywords").unwrap(); + let keywords = ast.getattr(py, "keywords").unwrap(); let body = ast.getattr(py, "body").unwrap(); let decorator_list = ast.getattr(py, "decorator_list").unwrap(); let name = get_str(py, name); let bases = parse_list(py, bases, parse_expr); + let keywords = parse_list(py, keywords, parse_keyword); let body = parse_list(py, body, parse_statement); let decorator_list = parse_list(py, decorator_list, parse_expr); - stmt::ClassDef(name, bases, vec!(), body, decorator_list) + stmt::ClassDef(name, bases, keywords, body, decorator_list) } else if is_instance(&ast, &function_def_type) { let name = ast.getattr(py, "name").unwrap(); let args = ast.getattr(py, "args").unwrap();