From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Dynamic Variant Record Creation
Date: Tue, 16 Mar 2010 18:39:18 -0500
Date: 2010-03-16T18:39:18-05:00 [thread overview]
Message-ID: <hnp4r7$eqo$1@munin.nbi.dk> (raw)
In-Reply-To: c3fa9a0f-99c7-4fff-9310-7e4d769065db@s25g2000prd.googlegroups.com
"Adam Beneschan" <adam@irvine.com> wrote in message
news:c3fa9a0f-99c7-4fff-9310-7e4d769065db@s25g2000prd.googlegroups.com...
...
>By the way, now that Ada 2005 has the <> construct for aggregates,
>it's just occurred to me that maybe 4.3.1(17) can be relaxed a bit, to
>make it legal to specify a record aggregate with a nonstatic
>discriminant for a variant record, *if* the only component
>associations for aggregates are components that are not in variant
>parts *and* there is an others=><> in the aggregate (or something
>along those lines). I don't know whether it's worthwhile, though.
>(It wouldn't help too much in this exact example, since there are no
>non-variant components, but if it were expanded to include, say, a
>source file name, line number, and column number for each Token_Unit,
>then there would be some benefit.) I'll consider making a proposal
>for this, depending on how loud a groan Randy, Bob, etc., make when
>they read this idea... :)
GROAAANNN!!! :-)
I'd like to see a solution to this problem, but I don't think this is it.
The problem is that the compiler wouldn't know what components to generate,
so it would effectively have to generate a giant case statement:
X := (Token => T, others => <>) would become:
case T is
when LEX_ID => X := (Token => LEX_ID, String_Id => <>);
when '!' => X := (Token => '!');
...
end case;
The compiler could combine similar variants, I guess, but it often doesn't
help much. And it looks like a very complex mess.
Randy.
next prev parent reply other threads:[~2010-03-16 23:39 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-16 17:11 Dynamic Variant Record Creation Warren
2010-03-16 18:31 ` Georg Bauhaus
2010-03-16 18:57 ` Adam Beneschan
2010-03-16 20:01 ` Warren
2010-03-16 20:09 ` Jeffrey R. Carter
2010-03-16 20:24 ` Warren
2010-03-16 20:40 ` Robert A Duff
2010-03-16 20:44 ` Warren
2010-03-16 20:31 ` Robert A Duff
2010-03-16 20:59 ` Warren
2010-03-16 21:55 ` Jeffrey R. Carter
2010-03-17 14:40 ` Warren
2010-03-18 12:57 ` Warren
2010-03-16 21:58 ` Robert A Duff
2010-03-17 14:22 ` Charmed Snark
2010-03-17 14:49 ` Robert A Duff
2010-03-17 16:30 ` Warren
2010-03-16 21:15 ` Adam Beneschan
2010-03-16 23:24 ` Adam Beneschan
2010-03-16 20:15 ` Robert A Duff
2010-03-16 21:00 ` Warren
2010-03-16 23:39 ` Randy Brukardt [this message]
2010-03-16 23:43 ` Randy Brukardt
2010-03-17 0:15 ` Robert A Duff
2010-03-17 14:28 ` Warren
2010-03-18 0:02 ` Randy Brukardt
2010-03-17 4:20 ` Adam Beneschan
2010-03-18 0:13 ` Randy Brukardt
2010-03-18 13:00 ` Warren
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox