Mercurial > python-compiler.rs
comparison src/ast_convert.rs @ 63:5df52b40fe54
Implement FunctionDef.returns.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Mon, 13 Jun 2016 00:55:04 +0100 |
parents | 6b73843c5b4a |
children | 53817b39f139 |
comparison
equal
deleted
inserted
replaced
62:d255a932553f | 63:5df52b40fe54 |
---|---|
562 stmt::ClassDef(name, bases, vec!(), body, vec!()) | 562 stmt::ClassDef(name, bases, vec!(), body, vec!()) |
563 } else if is_instance(&ast, &function_def_type) { | 563 } else if is_instance(&ast, &function_def_type) { |
564 let name = ast.getattr(py, "name").unwrap(); | 564 let name = ast.getattr(py, "name").unwrap(); |
565 let args = ast.getattr(py, "args").unwrap(); | 565 let args = ast.getattr(py, "args").unwrap(); |
566 let body = ast.getattr(py, "body").unwrap(); | 566 let body = ast.getattr(py, "body").unwrap(); |
567 let returns = ast.getattr(py, "returns").unwrap(); | |
567 | 568 |
568 let name = get_str(py, name); | 569 let name = get_str(py, name); |
569 let args = parse_arguments(py, args); | 570 let args = parse_arguments(py, args); |
570 let body = parse_list(py, body, parse_statement); | 571 let body = parse_list(py, body, parse_statement); |
571 | 572 |
572 let decorators = vec!(); | 573 let decorators = vec!(); |
573 let returns = None; | 574 let returns = parse_optional_expr(py, returns); |
574 | 575 |
575 stmt::FunctionDef(name, args, body, decorators, returns) | 576 stmt::FunctionDef(name, args, body, decorators, returns) |
576 } else if is_instance(&ast, &global_type) { | 577 } else if is_instance(&ast, &global_type) { |
577 let names = ast.getattr(py, "names").unwrap(); | 578 let names = ast.getattr(py, "names").unwrap(); |
578 let names = parse_list(py, names, get_str); | 579 let names = parse_list(py, names, get_str); |