blob: 05f94ec57d3b7b5965460957d1d5e37383eab096 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import ::= fn(x :: []char) &Package {
p ::= pkg x;
p_ptr ::= new(Package);
*p_ptr = p;
p_ptr
};
cputs :: fn(&char) i32 = #foreign "puts", "libc.so.6";
puts ::= fn(s: []char) i32 {
cstr := new(char, s.len + 1);
each i := 0..s.len-1 {
cstr[i] = s[i];
}
cstr[s.len] = '\0';
ret := cputs(&cstr[0]);
del(cstr);
ret
};
foo ::= fn() i32 {
puts("Hi");
puts("Hello");
puts("Hey")
};
malloc :: fn(u64) &u8 = #foreign "malloc", "libc.so.6";
sqrt :: fn(f64) f64 = #foreign "sqrt", "libm.so.6";
cos :: fn(f64) f64 = #foreign "cos", "libm.so.6";
sin :: fn(f64) f64 = #foreign "sin", "libm.so.6";
main ::= fn() {
x ::= foo();
// y ::= malloc(10);
sq2 ::= sqrt(2);
cospi ::= cos(3.14159);
sinpi ::= sin(3.14159);
};
|