diff --git a/doc/mie/sample/Simple.mie b/doc/mie/sample/Simple.mie new file mode 100644 index 0000000..a4249f8 --- /dev/null +++ b/doc/mie/sample/Simple.mie @@ -0,0 +1,46 @@ +data @cout = external global id + +data @.str.0 = str "less" +data @.str.1 = str "more" +data @.str.2 = str "equal" + +define void @init(id %self, id %0) static { +entry: + %x = alloca id + store i32 #2, ptr %x + + %y = alloca id + store i32 #3, ptr %y + + %1 = load i32, ptr %x + %2 = load i32, ptr %y + %3 = cmp lt i32 %1, %2 + br i1 %3, label %if.true, label %if.false + +if.true: + %4 = load id, ptr @cout + %5 = load str, ptr @.str.0 + msg void, id %4, @_M03putE [str %5] + br label %if.end + +if.false: + %6 = load i32, ptr %x + %7 = load i32, ptr %y + %8 = cmp gt i32 %6, %7 + br i1 %8, label %if.true.0, label %if.false.0 + +if.true.0: + %9 = load id, ptr @cout + %10 = load str, ptr @.str.1 + msg void, id %9, @_M03putE [str %10] + br label %if.end + +if.false.0: + %11 = load id, ptr @cout + %12 = load str, ptr @.str.2 + msg void, id %11, @_M03putE [str %12] + br label %if.end + +if.end: + ret void +} diff --git a/doc/sample/Simple.im b/doc/sample/Simple.im index c9948e9..a2738da 100644 --- a/doc/sample/Simple.im +++ b/doc/sample/Simple.im @@ -1,3 +1,5 @@ -var y = 32. -var f = [ :x | x * 2 + y ]. -var result = f(4). +var x = "Hello, world!". + +for (ch, cy) in x do + cout put:ch +end