CVS difference for ai05s/ai05-0147-1.txt

Differences between 1.13 and version 1.14
Log of other versions for file ai05s/ai05-0147-1.txt

--- ai05s/ai05-0147-1.txt	2010/02/25 05:01:43	1.13
+++ ai05s/ai05-0147-1.txt	2010/04/23 04:15:37	1.14
@@ -1,4 +1,4 @@
-!standard 4.3.3(15)                                    10-02-04  AI05-0147-1/09
+!standard 4.3.3(15)                                    10-02-22  AI05-0147-1/10
 !standard 4.4(1)
 !standard 4.4(7)
 !standard 4.5.7(0)
@@ -162,57 +162,13 @@
 expression with parentheses, including pragma arguments, type conversion
 and qualified expression operands, and array index expressions.
 
-The above English-language rule is equivalent to modifying the BNF as follows:
+This English-language rule could have been implemented instead by adding a
+non-terminal expression_within_parentheses, which would consist of expressions
+and conditional_expressions. Then, that could be used in all of the syntax
+which could consist of parens directly around an expression. We did not do
+that because of the large amount of change required. A complete grammar is
+given in AI05-0147-1.
 
-    expression_within_parens ::=
-      expression |
-      conditional_expression
-
-    singleton_list ::= ( conditional_expression )
-
-    primary ::=  numeric_literal | null | string_literal | aggregate |
-       name | allocator | (expression_within_parens)
-
-    pragma_argument_association_list ::=
-     (pragma_argument_association {, pragma_argument_association})
-      | singleton_list
-
-    pragma ::= Pragma identifier [pragma_argument_association_list] ;
-
-    discriminant_constraint ::=
-        (discriminant_association {, discriminant_association}) |
-        singleton_list
-
-    index_expression_list ::= (expression {, expression}) | singleton_list
-
-    indexed_component ::= prefix index_expression_list
-
-    attribute_designator ::=
-      identifier[(*static*_expression_within_parans)]
-
-    range_attribute_designator ::=
-      Range[(*static*_expression_within_parens)]
-
-    type_conversion ::=
-      subtype_mark (expression_within_parens)
-
-    qualified expression ::=
-      subtype_mark'(expression_within_parens)
-
-    actual_parameter_part ::=
-        (parameter_association {, parameter_association}) |
-        singleton_list
-
-    entry_index ::= expression_within_parens
-
-    generic_actual_part ::=
-        (generic_association {, generic_association}) |
-        singleton_list
-
-We chose not to make this modification because it is a huge change to the BNF
-grammar, and in addition would require a lot of English text that refers to
-syntactic categories to change.
-
 AARM Implementation Note: Implementers are cautioned to consider error
 detection when implementing the syntax for conditional_expressions.
 Conditional_expressions and if_statements are very similar syntactically,
@@ -489,6 +445,61 @@
 The implementation of such a build-in-place conditional expression shouldn't be
 too complex; the address of the target object is passed to whichever
 dependent_expression is actually evaluated.
+
+----
+
+The English-language syntax rule in 4.57 could, as noted in the AARM note, be
+implemented by modifying the BNF. We believe that it is equivalent to modifying
+the BNF as follows:
+
+    expression_within_parens ::=
+      expression |
+      conditional_expression
+
+    singleton_list ::= ( conditional_expression )
+
+    primary ::=  numeric_literal | null | string_literal | aggregate |
+       name | allocator | (expression_within_parens)
+
+    pragma_argument_association_list ::=
+     (pragma_argument_association {, pragma_argument_association})
+      | singleton_list
+
+    pragma ::= Pragma identifier [pragma_argument_association_list] ;
+
+    discriminant_constraint ::=
+        (discriminant_association {, discriminant_association}) |
+        singleton_list
+
+    index_expression_list ::= (expression {, expression}) | singleton_list
+
+    indexed_component ::= prefix index_expression_list
+
+    attribute_designator ::=
+      identifier[(*static*_expression_within_parans)]
+
+    range_attribute_designator ::=
+      Range[(*static*_expression_within_parens)]
+
+    type_conversion ::=
+      subtype_mark (expression_within_parens)
+
+    qualified expression ::=
+      subtype_mark'(expression_within_parens)
+
+    actual_parameter_part ::=
+        (parameter_association {, parameter_association}) |
+        singleton_list
+
+    entry_index ::= expression_within_parens
+
+    generic_actual_part ::=
+        (generic_association {, generic_association}) |
+        singleton_list
+
+We chose not to make this modification because it is a huge change to the BNF
+grammar, and in addition would require a lot of English text that refers to
+syntactic categories to change.
 
 !examples
 

Questions? Ask the ACAA Technical Agent