CVS difference for ai05s/ai05-0163-1.txt
--- ai05s/ai05-0163-1.txt 2010/07/08 03:07:45 1.5
+++ ai05s/ai05-0163-1.txt 2010/10/08 03:24:53 1.6
@@ -1,7 +1,7 @@
-!standard 2.8(7) 10-07-07 AI05-0163-1/02
+!standard 2.8(7) 10-10-07 AI05-0163-1/03
!standard 2.8(16)
!class binding interpretation 09-10-16
-!status Amendment 201Z 10-07-07
+!status Amendment 2012 10-07-07
!status ARG Approved 8-0-1 10-07-07
!status work item 09-10-16
!status received 09-06-28
@@ -21,7 +21,8 @@
!wording
-2.8(5-7.1/3) is modified (deleting text in 7/3 as marked, and adding a new bullet):
+2.8(5-7.1/3) is modified (deleting text in 7/3 [updated by AI05-0100-1] as
+marked, and adding a new bullet):
5 Pragmas are only allowed at the following places in a program:
@@ -29,8 +30,8 @@
discriminant_part.
7/3 * At any place where the syntax rules allow a construct
- defined by a syntactic category whose name ends with "
- declaration", "statement", "clause", or "alternative", or one of the
+ defined by a syntactic category whose name ends with "declaration",
+ "item", "statement", "clause", or "alternative", or one of the
syntactic categories variant or exception_handler; but not in place of
such a construct if the construct is required, or is part of a list
that is required to have at least one such construct[, as in a
@@ -119,25 +120,25 @@
run time.
We considered allowing pragmas in formal_parts of procedures and the like.
-However that was considered to complicated. For example, we're not sure how it
+However that was considered too complicated. For example, we're not sure how it
would affect the conformance rules.
Historical note: In Ada 83, implementation-defined pragmas were forbidden to
affect legality in either direction. The intent in Ada 95 was to weaken this
rule to only forbid pragmas that make an otherwise-illegal program legal, and to
-add the "Normally, ..." loophole. We have preserved that, but rather than
+add the "Normally, ..." loophole. We have preserved that, but rather than
requiring syntactic legality when the pragmas are removed, we simply require
-syntactic legality if the pragmas are treated as unrecognized pragmas. That
+syntactic legality if the pragmas are treated as unrecognized pragmas. That
is the more important goal, namely that the program remains syntactically legal
for implementations that don't recognize an implementation-defined pragma.
Note that we retain the Requirement of a warning on unrecognized pragmas.
We considered rewriting the BNF syntax rules to show precisely where pragmas are
-allowed. This would be clearer than the English-language description, which has
-already been subject to some AIs. However, this idea was considered too
+allowed. This would be clearer than the English-language description, which has
+already been subject to some AIs. However, this idea was considered too
difficult, and was rejected. Some 100 BNF rules would need to be carefully
-inspected (all the ones endind in "declaration", "statement", etc), so this
+inspected (all the ones ending in "declaration", "statement", etc), so this
change was considered too error prone.
!corrigendum 2.8(7)
Questions? Ask the ACAA Technical Agent