From: Shark8 <onewingedshark@gmail.com>
Subject: Re: why "unconstrained subtype in component declaration" while said component given default value ?
Date: Sun, 27 May 2018 10:15:00 -0700 (PDT)
Date: 2018-05-27T10:15:00-07:00 [thread overview]
Message-ID: <be0d0fc1-f24a-4c73-a56f-8f8e8b3183e0@googlegroups.com> (raw)
In-Reply-To: <71948f43-cf43-448f-a7b0-0e5982c98d90@googlegroups.com>
On Saturday, May 26, 2018 at 6:29:11 PM UTC-6, Mehdi Saada wrote:
> > Record types need to support Representation Clauses, where as normal
> > variables do not.
> That's quite an argument. But still...
> > type A (N: Positive) is record
> > II : Integer;
> > Chaine : String(1..N) := Give_String(N);
> > end record;
> how can one define bit by bit the representation of A since N is not statically defined?
It's not hard; in fact it's the standard way to deal with something like SSL's message-format. I don't remember the details of the actual records, but here's the concept:
Message Fields: Type, Length, Encryption, Text.
With Encryption;
Package Message is
Type Message_Type is ( Internal, External, Loop, Heartbeat )
with Size => 2; -- Whatever.
Type Message( <> ) is private;
-- Operations.
Private
Package Enc renames Encryption;
Type Message( Length : Positive; Style : Message_Type ) is record
Text : String(1..Length);
Encryption : Enc.Method; -- Encryption method; say 6 bits.
End record;
For Message use record
Style at 0 range 0..2;
Encryption at 0 range 3..8;
Length at 0 range 9..40;
End Record;
End Message;
Or something like that; like I said, that's the general idea, not the specifics.
To read up on record representation clauses read this:
http://archive.adaic.com/standards/83lrm/html/lrm-13-04.html
next prev parent reply other threads:[~2018-05-27 17:15 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-26 21:03 why "unconstrained subtype in component declaration" while said component given default value ? Mehdi Saada
2018-05-26 21:40 ` Jere
2018-05-26 22:11 ` Mehdi Saada
2018-05-26 23:55 ` Jere
2018-05-27 0:14 ` Jere
2018-05-27 0:29 ` Mehdi Saada
2018-05-27 0:45 ` Mehdi Saada
2018-05-27 17:15 ` Shark8 [this message]
2018-05-27 17:30 ` AdaMagica
2018-05-27 18:17 ` Shark8
2018-05-29 1:28 ` AdaMagica
2018-05-29 17:20 ` Mehdi Saada
2018-05-27 7:45 ` Jeffrey R. Carter
2018-05-26 23:41 ` Shark8
2018-05-27 7:07 ` Simon Wright
2018-05-27 17:22 ` Shark8
2018-05-27 12:24 ` Mehdi Saada
2018-05-29 22:28 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox