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!()
     }
 }