spl

systems programming language
git clone http://frotz.net/git/spl.git
Log | Files | Refs | README | LICENSE

1040-structs.spl (665B)


      1 
      2 struct Point {
      3 	x i32,
      4 	y i32,
      5 };
      6 
      7 struct Line {
      8 	start Point,
      9 	end Point,
     10 };
     11 
     12 fn add(a Point, b Point) {
     13 	a.x = a.x + b.x;
     14 	a.y = a.y + b.y;
     15 }
     16 
     17 fn print(p Point) {
     18 	_hexout_(p.x);
     19 	_hexout_(p.y);
     20 }
     21 
     22 var p0 Point = { x: 45, y: 17 };
     23 var p1 Point = { x: 5, y: 3 };
     24 
     25 var line Line = {
     26 	start: { x: 1, y: 2 },
     27 	end: { x: 42, y: 17 }
     28 };
     29 
     30 // var p2 struct { x i32, y i32, } = { x: 7, y: 6 };
     31 
     32 fn start() i32 {
     33 	_hexout_(p0.x);
     34 	_hexout_(p0.y);
     35 	p0.x = 123;
     36 	p0.y = 456;
     37 	_hexout_(p0.x);
     38 	_hexout_(p0.y);
     39 	add(p1, p0);
     40 	print(p1);
     41 	add(p1, p0);
     42 	print(p1);
     43 	var z Point = p1;
     44 	z.x = 0x10203040;
     45 	z.y = 0x50607080;
     46 	print(z);
     47 	_hexout_(z.x);
     48 	_hexout_(z.y);
     49 	return 0;
     50 }