Changeset 78d3a00 in mainline for uspace/dist/src/bithenge/test.bh


Ignore:
Timestamp:
2012-07-31T21:07:26Z (12 years ago)
Author:
Sean Bartell <wingedtachikoma@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
3f2ea63
Parents:
20ac1a4
Message:

Bithenge: add switch transforms and sugar

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/dist/src/bithenge/test.bh

    r20ac1a4 r78d3a00  
    88};
    99
    10 transform item(first_len, second_len) = struct {
    11         .id <- uint32le <- known_length(4); # the known_length is unnecessary
     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);
    1219        .name <- pascal_string;
    13         .first <- known_length(first_len);
    14         .second <- known_length(second_len);
     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        }
    1531};
    1632
    17 transform main() = item(3, 0);
     33transform main() = struct {
     34        .first_item <- item(true, 3);
     35        .second_item <- item(false, 4);
     36};
Note: See TracChangeset for help on using the changeset viewer.