typealias integer { size = 8; align = 8; signed = false; base = hex; } := uint8_t; typealias integer { size = 32; align = 8; signed = false; base = hex; } := uint32_t; trace { major = 1; minor = 2; byte_order = le; uuid = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; packet.header := struct { uint32_t magic; }; }; variant var { uint8_t small; uint32_t big; }; enum select : uint8_t { small = 0, big = 1 }; stream { event.header := struct { enum select a; }; }; event { name = event1; fields := struct { /* * TODO: Only an identifier is expected in the variant/sequence * tag. It should be a dotted expression (a path). * */ variant var b; /* * TODO * The path lookup only allows lookup for a full path starting * from the root or for a field within the current scope. The * CTF spec allows defining a relative sub-scope for a preceding * field. */ struct { enum select sel2; } str2; variant var2 b; }; };