comp.lang.ada
 help / color / mirror / Atom feed
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


  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