Rename mk_type! to ty!
Doesn't seem to conflict with the same macro in the parser tests, so should be ok
This commit is contained in:
parent
9d4f086a04
commit
fbb7b995b8
@ -90,9 +90,9 @@ impl PrefixOp {
|
|||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref PREFIX_OPS: HashMap<&'static str, (Type, ())> =
|
static ref PREFIX_OPS: HashMap<&'static str, (Type, ())> =
|
||||||
hashmap! {
|
hashmap! {
|
||||||
"+" => (mk_type!(Nat -> Int), ()),
|
"+" => (ty!(Nat -> Int), ()),
|
||||||
"-" => (mk_type!(Nat -> Int), ()),
|
"-" => (ty!(Nat -> Int), ()),
|
||||||
"!" => (mk_type!(Bool -> Bool), ()),
|
"!" => (ty!(Bool -> Bool), ()),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,22 +102,22 @@ lazy_static! {
|
|||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref BINOPS: HashMap<&'static str, (Type, (), i32)> =
|
static ref BINOPS: HashMap<&'static str, (Type, (), i32)> =
|
||||||
hashmap! {
|
hashmap! {
|
||||||
"+" => (mk_type!(Nat -> Nat -> Nat), (), 10),
|
"+" => (ty!(Nat -> Nat -> Nat), (), 10),
|
||||||
"-" => (mk_type!(Nat -> Nat -> Nat), (), 10),
|
"-" => (ty!(Nat -> Nat -> Nat), (), 10),
|
||||||
"*" => (mk_type!(Nat -> Nat -> Nat), (), 20),
|
"*" => (ty!(Nat -> Nat -> Nat), (), 20),
|
||||||
"/" => (mk_type!(Nat -> Nat -> Float), (), 20),
|
"/" => (ty!(Nat -> Nat -> Float), (), 20),
|
||||||
"quot" => (mk_type!(Nat -> Nat -> Nat), (), 20),
|
"quot" => (ty!(Nat -> Nat -> Nat), (), 20),
|
||||||
"%" => (mk_type!(Nat -> Nat -> Nat), (), 20),
|
"%" => (ty!(Nat -> Nat -> Nat), (), 20),
|
||||||
"++" => (mk_type!(StringT -> StringT -> StringT), (), 30),
|
"++" => (ty!(StringT -> StringT -> StringT), (), 30),
|
||||||
"^" => (mk_type!(Nat -> Nat -> Nat), (), 20),
|
"^" => (ty!(Nat -> Nat -> Nat), (), 20),
|
||||||
"&" => (mk_type!(Nat -> Nat -> Nat), (), 20),
|
"&" => (ty!(Nat -> Nat -> Nat), (), 20),
|
||||||
"|" => (mk_type!(Nat -> Nat -> Nat), (), 20),
|
"|" => (ty!(Nat -> Nat -> Nat), (), 20),
|
||||||
">" => (mk_type!(Nat -> Nat -> Bool), (), 20),
|
">" => (ty!(Nat -> Nat -> Bool), (), 20),
|
||||||
">=" => (mk_type!(Nat -> Nat -> Bool), (), 20),
|
">=" => (ty!(Nat -> Nat -> Bool), (), 20),
|
||||||
"<" => (mk_type!(Nat -> Nat -> Bool), (), 20),
|
"<" => (ty!(Nat -> Nat -> Bool), (), 20),
|
||||||
"<=" => (mk_type!(Nat -> Nat -> Bool), (), 20),
|
"<=" => (ty!(Nat -> Nat -> Bool), (), 20),
|
||||||
"==" => (mk_type!(Nat -> Nat -> Bool), (), 20),
|
"==" => (ty!(Nat -> Nat -> Bool), (), 20),
|
||||||
"=" => (mk_type!(Unit), (), 20), //TODO not sure what the type of this should be b/c special fmr
|
"=" => (ty!(Unit), (), 20), //TODO not sure what the type of this should be b/c special fmr
|
||||||
"<=>" => (mk_type!(Nat -> Nat -> Ordering), (), 20), //TODO figure out how to treat Order
|
"<=>" => (ty!(Nat -> Nat -> Ordering), (), 20), //TODO figure out how to treat Order
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -78,10 +78,10 @@ impl Type {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! mk_type {
|
macro_rules! ty {
|
||||||
($type_name:ident) => { Type::Const(TypeConst::$type_name) };
|
($type_name:ident) => { Type::Const(TypeConst::$type_name) };
|
||||||
($t1:ident -> $t2:ident) => { Type::Arrow(Box::new(mk_type!($t1)), Box::new(mk_type!($t2))) };
|
($t1:ident -> $t2:ident) => { Type::Arrow(Box::new(ty!($t1)), Box::new(ty!($t2))) };
|
||||||
($t1:ident -> $t2:ident -> $t3:ident) => { Type::Arrow(Box::new(mk_type!($t1)), Box::new(mk_type!($t2 -> $t3))) };
|
($t1:ident -> $t2:ident -> $t3:ident) => { Type::Arrow(Box::new(ty!($t1)), Box::new(ty!($t2 -> $t3))) };
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user