Mercurial > python-compiler.rs
diff src/ast_convert.rs @ 9:fa7e285f88e7
Add a scoping pass, associating each module/statement with a block.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Wed, 01 Jun 2016 22:17:28 +0100 |
parents | 94ff501bf336 |
children | 38b0d63697b1 |
line wrap: on
line diff
--- a/src/ast_convert.rs +++ b/src/ast_convert.rs @@ -9,7 +9,7 @@ fn get_str(py: Python, object: PyObject) string.to_mut().to_string() } -fn parse_expr_vec(py: Python, ast: PyObject) -> Vec<Expr> { +fn parse_expr_vec(py: Python, ast: PyObject) -> Vec<String> { let builtins_module = py.import("builtins").unwrap(); let isinstance = builtins_module.get(py, "isinstance").unwrap(); @@ -27,12 +27,16 @@ fn parse_expr_vec(py: Python, ast: PyObj let args = ast.getattr(py, "args").unwrap(); let mut arguments = vec!(); for arg in args.iter(py).unwrap() { - let arg = parse_expr(py, arg.unwrap()); - arguments.push(arg); + let arg = arg.unwrap(); + let arg = parse_expr(py, arg); + arguments.push(match arg { + Expr::Name(arg) => arg, + _ => panic!() + }); } arguments } else { - vec!(Expr::Error) + panic!() } }