Mercurial > python-compiler.rs
diff src/python_ast.rs @ 5:ddf372373a77
Add ast.For, ast.UnaryOp, and Sub and Div to ast.BinOp.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Tue, 31 May 2016 04:15:00 +0100 |
parents | f27a4aee9dfa |
children | 6f2bf13f4cb5 |
line wrap: on
line diff
--- a/src/python_ast.rs +++ b/src/python_ast.rs @@ -10,15 +10,17 @@ pub enum Statement { FunctionDef(String, Vec<Expr>, Vec<Statement>), Global(Vec<String>), If(Expr, Vec<Statement>, Vec<Statement>), + For(Expr, Expr, Vec<Statement>, Vec<Statement>), Assign(Vec<Expr>, Expr), Return(Expr), ImportFrom(String, Vec<Expr>), Expr(Expr), - Error, + Error } #[derive(Clone, Debug, PartialEq, Eq, Hash)] pub enum Expr { + UnaryOp(UnaryOp, Box<Expr>), BinOp(Box<Expr>, BinOp, Box<Expr>), Compare(Box<Expr>, Vec<BinOp>, Vec<Expr>), Call(Box<Expr>, Vec<Expr>), @@ -32,10 +34,19 @@ pub enum Expr { } #[derive(Clone, Debug, PartialEq, Eq, Hash)] +pub enum UnaryOp { + UAdd, + USub, + Error +} + +#[derive(Clone, Debug, PartialEq, Eq, Hash)] pub enum BinOp { BinAdd, BinMult, BinEq, BinLt, - Error, + Sub, + Div, + Error }