diff options
| author | David Li <li.davidm96@gmail.com> | 2017-11-06 09:00:14 -0500 | 
|---|---|---|
| committer | David Li <li.davidm96@gmail.com> | 2017-11-06 09:00:14 -0500 | 
| commit | 48411d44fd742800348dace427217a9b5727138d (patch) | |
| tree | 06edd036fcd1b67d3fa5805442a8c0055c7e9140 /src/semantic/types.rs | |
| parent | 58f30a0ce9e8bb0dde99edcbbaf8e1b7757e2ee6 (diff) | |
Reimplement checking of variable bindings
Diffstat (limited to 'src/semantic/types.rs')
| -rw-r--r-- | src/semantic/types.rs | 18 | 
1 files changed, 17 insertions, 1 deletions
diff --git a/src/semantic/types.rs b/src/semantic/types.rs index 3e31b04..af6c971 100644 --- a/src/semantic/types.rs +++ b/src/semantic/types.rs @@ -1,7 +1,23 @@ -#[derive(Clone,Copy,Debug)] +#[derive(Clone,Debug,Eq,PartialEq)]  pub enum Ty {      Int,      String,      Nil,      Unit, +    Record(Vec<RecordField>), +} + +#[derive(Clone,Debug,Eq,PartialEq)] +pub struct RecordField { +    name: String, +    ty: Box<Ty>, +} + +impl RecordField { +    pub fn new(name: String, ty: Ty) -> RecordField { +        RecordField { +            name: name, +            ty: Box::new(ty), +        } +    }  }  | 
