source: mainline/uspace/dist/src/bithenge/test.bh@ c3437d9

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since c3437d9 was 78d3a00, checked in by Sean Bartell <wingedtachikoma@…>, 13 years ago

Bithenge: add switch transforms and sugar

  • Property mode set to 100644
File size: 596 bytes
RevLine 
[d7c8e39f]1transform length = struct {
[84e8a70]2 .len <- uint8;
[d7c8e39f]3};
4
5transform pascal_string = struct {
6 <- length;
[84e8a70]7 .string <- ascii <- known_length(.len);
8};
9
[78d3a00]10transform u32(little_endian) =
11 if (little_endian) {
12 uint32le
13 } else {
14 uint32be
15 };
16
17transform item(little_endian, len) = struct {
18 .type <- u32(little_endian);
[84e8a70]19 .name <- pascal_string;
[78d3a00]20 switch (.type) {
21 3: {
22 .val <- u32(little_endian);
23 };
24 14: {
25 .text <- ascii <- known_length(len);
26 };
27 else: {
28 .unknown <- known_length(len);
29 };
30 }
[84e8a70]31};
32
[78d3a00]33transform main() = struct {
34 .first_item <- item(true, 3);
35 .second_item <- item(false, 4);
36};
Note: See TracBrowser for help on using the repository browser.