2022-04-04 22:43:12 +01:00
|
|
|
module @some.ns {
|
2022-04-08 10:30:09 +01:00
|
|
|
// Value operator ----
|
|
|
|
%0 = "serene.value"(){value= 3} : () -> i64
|
|
|
|
// compact form
|
|
|
|
%1 = serene.value 3 : i32
|
|
|
|
|
|
|
|
// Def operator ----
|
|
|
|
%foo = "serene.def"(%0){name = "foo"}: (i64) -> !serene.symbol
|
|
|
|
// compact form
|
|
|
|
%bar = serene.def "bar", %0 : i64
|
|
|
|
|
|
|
|
// Fn operator ----
|
|
|
|
%f1 = "serene.fn"()({
|
|
|
|
^entry(%fnarg1 : i1, %fnarg2 : !serene.symbol, %fnarg3 : !serene.fn):
|
|
|
|
%2 = serene.value 3 : i32
|
|
|
|
|
|
|
|
// Def operator ----
|
2022-04-08 11:39:48 +01:00
|
|
|
%baz = "serene.def"(%fnarg1){name = "baz"}: (i1) -> !serene.symbol
|
|
|
|
serene.ret %baz : !serene.symbol
|
2022-04-08 10:30:09 +01:00
|
|
|
},
|
|
|
|
{
|
2022-04-08 11:39:48 +01:00
|
|
|
^b1(%f1 : i1):
|
2022-04-08 10:30:09 +01:00
|
|
|
%3 = serene.value 4 : i32
|
|
|
|
|
|
|
|
// Def operator ----
|
|
|
|
%baz1 = "serene.def"(%3){name = "baz"}: (i32) -> !serene.symbol
|
2022-04-08 11:39:48 +01:00
|
|
|
serene.ret %baz1 : !serene.symbol
|
|
|
|
^b2:
|
|
|
|
%baz2 = "serene.def"(%3){name = "baz"}: (i32) -> !serene.symbol
|
|
|
|
serene.ret %baz2 : !serene.symbol
|
2022-04-08 10:30:09 +01:00
|
|
|
}){name = "some-fn", return_type = i32} : () -> !serene.fn
|
2022-04-04 22:43:12 +01:00
|
|
|
}
|