import "libc.hff"; bitfield ColorMaskFlags : u32 { red 1 bool, green 1 bool, blue 1 bool, alpha 1 bool, id (8,3), // red 1, }; struct Foo { x int, y f32, z union { p *void, i int }, h enum union { fa, ga *void }, // x *void, } static foo Foo = { .z: { .i: 42 }, .h: :ga(&stderr) }; fn sum(res int, ...) int { let ap va_list = {}; ap->start(); printf("%d ", res); for ;; { let n = ap->arg(int); printf("+ %d ", n); res += n; if n == 0 { break; } } ap->end(); return res; } extern fn main(argc int, argv **u8) int { printf("= %d\n", sum(1,2,3,42,-1,0)); let rgb = ColorMaskFlags { .red: #t, .blue: #t, .id: 13}; printf("0x%X\n", rgb.#raw); printf("%d %p\n", foo.z.i, foo.h.ga); }