Mercurial > python-compiler.rs
comparison src/ast_convert.rs @ 65:ce5e27a3f277
Add ClassDef.decorator_list support.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Mon, 13 Jun 2016 01:27:10 +0100 |
parents | 53817b39f139 |
children | 8ce78e2ba48c |
comparison
equal
deleted
inserted
replaced
64:53817b39f139 | 65:ce5e27a3f277 |
---|---|
551 if is_instance(&ast, &class_def_type) { | 551 if is_instance(&ast, &class_def_type) { |
552 let name = ast.getattr(py, "name").unwrap(); | 552 let name = ast.getattr(py, "name").unwrap(); |
553 let bases = ast.getattr(py, "bases").unwrap(); | 553 let bases = ast.getattr(py, "bases").unwrap(); |
554 //let keywords = ast.getattr(py, "keywords").unwrap(); | 554 //let keywords = ast.getattr(py, "keywords").unwrap(); |
555 let body = ast.getattr(py, "body").unwrap(); | 555 let body = ast.getattr(py, "body").unwrap(); |
556 //let decorator_list = ast.getattr(py, "decorator_list").unwrap(); | 556 let decorator_list = ast.getattr(py, "decorator_list").unwrap(); |
557 | 557 |
558 let name = get_str(py, name); | 558 let name = get_str(py, name); |
559 let bases = parse_list(py, bases, parse_expr); | 559 let bases = parse_list(py, bases, parse_expr); |
560 let body = parse_list(py, body, parse_statement); | 560 let body = parse_list(py, body, parse_statement); |
561 | 561 let decorator_list = parse_list(py, decorator_list, parse_expr); |
562 stmt::ClassDef(name, bases, vec!(), body, vec!()) | 562 |
563 stmt::ClassDef(name, bases, vec!(), body, decorator_list) | |
563 } else if is_instance(&ast, &function_def_type) { | 564 } else if is_instance(&ast, &function_def_type) { |
564 let name = ast.getattr(py, "name").unwrap(); | 565 let name = ast.getattr(py, "name").unwrap(); |
565 let args = ast.getattr(py, "args").unwrap(); | 566 let args = ast.getattr(py, "args").unwrap(); |
566 let body = ast.getattr(py, "body").unwrap(); | 567 let body = ast.getattr(py, "body").unwrap(); |
567 let decorator_list = ast.getattr(py, "decorator_list").unwrap(); | 568 let decorator_list = ast.getattr(py, "decorator_list").unwrap(); |