Mercurial > python-compiler.rs
comparison 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 |
comparison
equal
deleted
inserted
replaced
66:32550e12aedf | 67:8ce78e2ba48c |
---|---|
549 */ | 549 */ |
550 | 550 |
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 keywords = parse_list(py, keywords, parse_keyword); | |
560 let body = parse_list(py, body, parse_statement); | 561 let body = parse_list(py, body, parse_statement); |
561 let decorator_list = parse_list(py, decorator_list, parse_expr); | 562 let decorator_list = parse_list(py, decorator_list, parse_expr); |
562 | 563 |
563 stmt::ClassDef(name, bases, vec!(), body, decorator_list) | 564 stmt::ClassDef(name, bases, keywords, body, decorator_list) |
564 } else if is_instance(&ast, &function_def_type) { | 565 } else if is_instance(&ast, &function_def_type) { |
565 let name = ast.getattr(py, "name").unwrap(); | 566 let name = ast.getattr(py, "name").unwrap(); |
566 let args = ast.getattr(py, "args").unwrap(); | 567 let args = ast.getattr(py, "args").unwrap(); |
567 let body = ast.getattr(py, "body").unwrap(); | 568 let body = ast.getattr(py, "body").unwrap(); |
568 let decorator_list = ast.getattr(py, "decorator_list").unwrap(); | 569 let decorator_list = ast.getattr(py, "decorator_list").unwrap(); |