aboutsummaryrefslogtreecommitdiff
path: root/test/2.cff
blob: 43fc148455ae615be48181343dd647d6ffbd6962 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import "libc.hff";

bitfield Foo : u16 {
   tag 3,
   flag (3, 1) bool,
   num 10 signed,
}

extern fn main() int {
   let foo Foo = {};
   printf("0x%X: %d, %d, %d\n", foo.#raw, foo.tag, foo.flag, foo.num);
   foo.tag = 3;
   printf("%d\n", foo.#raw += 1);
   --foo.tag;
   foo.flag = #t;
   foo.num = -2;
   foo.num *= 10;
   printf("0x%X: %d, %d, %d\n", foo.#raw, foo.tag, foo.flag, foo.num += 532);
   let long  = "abcd" "defg";

   static const foop Foo = {7,#t,3, .tag: 9};
   printf("0x%X: %d, %d, %d\n", foop.#raw, foop.tag, foop.flag, foop.num);

}