Introduce Pattern

This commit is contained in:
Richard Feldman 2019-05-22 21:54:46 -04:00
parent 89c71e9c1d
commit 91aac9a86e
3 changed files with 53 additions and 32 deletions

View file

@ -8,7 +8,8 @@ pub enum Expr {
Char(char),
Var(String),
Let(String, Box<Expr>, Box<Expr>),
Let(Pattern, Box<Expr>, Box<Expr>),
Pattern(Pattern),
// Functions
Func(String, Box<Expr>),
@ -18,6 +19,13 @@ pub enum Expr {
If(Box<Expr>, Box<Expr>, Box<Expr>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum Pattern {
Identifier(String),
Underscore
}
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub enum Operator {
Plus, Minus, Star, Slash, DoubleSlash, Equals,