[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: how to get the offset of the current struct
From: |
Bruno Haible |
Subject: |
Re: how to get the offset of the current struct |
Date: |
Mon, 12 Feb 2024 01:08:36 +0100 |
Jose E. Marchesi wrote:
> method _print = void:
> {
> var my_offset = SELF'offset;
> var my_ios = SELF'ios;
> var name_of_first_field = SELF'ename (1);
Thanks!
> Any attribute that works for values of type `any' can be applied to
> SELF.
How about adding to the documentation
* in the concept index, an entry for SELF ?
* a subsection that lists all the attributes that apply to all types?
I'm navigating through the table of contents, and I found subsections
Integer Attributes
Offset Attributes
String Attributes
Array Attributes
Struct Attributes
but no section
General Type Attributes
Btw, I still need the zero-length array trick in another place:
type ABXML_chunk =
struct
{
// Chunk header:
uint<16> chunk_type;
offset<uint<16>,B> chunk_header_size;
offset<uint<32>,B> chunk_size;
// Data:
uint<8>[0] before_bulk_of_data;
uint<8>[chunk_size - before_bulk_of_data'offset] data;
};
works, whereas
type ABXML_chunk =
struct
{
// Chunk header:
uint<16> chunk_type;
offset<uint<16>,B> chunk_header_size;
offset<uint<32>,B> chunk_size;
// Data:
uint<8>[chunk_size - data'offset] data;
};
doesn't: "error: undefined variable 'data'"
How about documenting this trick where the 'offset attribute is described?
Bruno