Mercurial > python-compiler.rs
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 } |