From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Some kind of repeating in Static_Predicate
Date: Mon, 4 Jun 2018 16:33:46 -0500
Date: 2018-06-04T16:33:46-05:00 [thread overview]
Message-ID: <pf4b7r$3oi$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: 503aed95-bd48-4eeb-a2a2-0f7bcc8de307@googlegroups.com
"ytomino" <aghia05@gmail.com> wrote in message
news:503aed95-bd48-4eeb-a2a2-0f7bcc8de307@googlegroups.com...
> On Monday, June 4, 2018 at 3:26:56 PM UTC+9, Jacob Sparre Andersen wrote:
>> ytomino <agh...@gmail.com> writes:
>>
>> > I'm trying to use a constant table (but that is unstable and may be
>> > changed in compile-time) in Static_Predicate.
>> >
>> > Set : constant String := ('T', 'a', 'b', 'l', 'e');
>> >
>> > subtype T is Character
>> > with Static_predicate => (for some I of Set => X = I);
>>
>> Why not admit that it is a Dynamic_Predicate?
>>
>> Alternatively:
>>
>> type T is ('T', 'a', 'b', 'l', 'e');
>>
>> Or:
>>
>> subtype T is Character
>> with Static_Predicate => (T in 'T' | 'a' | 'b' | 'l' | 'e');
>>
>> Greetings,
>>
>> Jacob
>> --
>> "people who live in glass houses shouldn't be throwing rocks
>> -- especially at those who don't live in glass houses"
>
> Thanks. But I want to separate the table and the subtype...
That seems backwards to me. You are wanting to declare a set subtype, and
Ada uses the silly static predicate for doing so rather than having a proper
set constraint. Either way, that's a subtype declaration.
So the operative thing here is the subtype. There's no "table" in a set
description. If you need to check membership in the set, you just do that
with "in".
Thus:
subtype T is Character
with Static_Predicate => (T in 'T' | 'a' | 'b' | 'l' | 'e');
if Param in T then ...
If you really needed a table, I'd construct that from the set. (But I can't
imagine what the use would be, certainly in cases like the "separators"
definition you showed in another mail.)
Randy.
next prev parent reply other threads:[~2018-06-04 21:33 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-03 17:45 Some kind of repeating in Static_Predicate ytomino
2018-06-04 6:26 ` Jacob Sparre Andersen
2018-06-04 7:15 ` ytomino
2018-06-04 21:33 ` Randy Brukardt [this message]
2018-06-05 2:30 ` ytomino
2018-06-05 20:37 ` Randy Brukardt
2018-06-04 7:17 ` ytomino
2018-06-06 11:04 ` Marius Amado-Alves
2018-06-06 14:53 ` ytomino
2018-06-07 9:15 ` Marius Amado-Alves
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox