comparison 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
comparison
equal deleted inserted replaced
4:f27a4aee9dfa 5:ddf372373a77
8 pub enum Statement { 8 pub enum Statement {
9 ClassDef(String, Vec<Expr>, Vec<Statement>), 9 ClassDef(String, Vec<Expr>, Vec<Statement>),
10 FunctionDef(String, Vec<Expr>, Vec<Statement>), 10 FunctionDef(String, Vec<Expr>, Vec<Statement>),
11 Global(Vec<String>), 11 Global(Vec<String>),
12 If(Expr, Vec<Statement>, Vec<Statement>), 12 If(Expr, Vec<Statement>, Vec<Statement>),
13 For(Expr, Expr, Vec<Statement>, Vec<Statement>),
13 Assign(Vec<Expr>, Expr), 14 Assign(Vec<Expr>, Expr),
14 Return(Expr), 15 Return(Expr),
15 ImportFrom(String, Vec<Expr>), 16 ImportFrom(String, Vec<Expr>),
16 Expr(Expr), 17 Expr(Expr),
17 Error, 18 Error
18 } 19 }
19 20
20 #[derive(Clone, Debug, PartialEq, Eq, Hash)] 21 #[derive(Clone, Debug, PartialEq, Eq, Hash)]
21 pub enum Expr { 22 pub enum Expr {
23 UnaryOp(UnaryOp, Box<Expr>),
22 BinOp(Box<Expr>, BinOp, Box<Expr>), 24 BinOp(Box<Expr>, BinOp, Box<Expr>),
23 Compare(Box<Expr>, Vec<BinOp>, Vec<Expr>), 25 Compare(Box<Expr>, Vec<BinOp>, Vec<Expr>),
24 Call(Box<Expr>, Vec<Expr>), 26 Call(Box<Expr>, Vec<Expr>),
25 Alias(String, Option<String>), 27 Alias(String, Option<String>),
26 Attribute(Box<Expr>, String), 28 Attribute(Box<Expr>, String),
30 Num(String), 32 Num(String),
31 Error 33 Error
32 } 34 }
33 35
34 #[derive(Clone, Debug, PartialEq, Eq, Hash)] 36 #[derive(Clone, Debug, PartialEq, Eq, Hash)]
37 pub enum UnaryOp {
38 UAdd,
39 USub,
40 Error
41 }
42
43 #[derive(Clone, Debug, PartialEq, Eq, Hash)]
35 pub enum BinOp { 44 pub enum BinOp {
36 BinAdd, 45 BinAdd,
37 BinMult, 46 BinMult,
38 BinEq, 47 BinEq,
39 BinLt, 48 BinLt,
40 Error, 49 Sub,
50 Div,
51 Error
41 } 52 }