CVS difference for ai12s/ai12-0214-2.txt

Differences between 1.5 and version 1.6
Log of other versions for file ai12s/ai12-0214-2.txt

--- ai12s/ai12-0214-2.txt	2019/07/06 01:45:30	1.5
+++ ai12s/ai12-0214-2.txt	2019/07/18 04:21:37	1.6
@@ -62,12 +62,12 @@
 Add after 4.5.7(6/3):
 
 conditional_case_expression_alternative ::=
-   when condition_list =>
+   when choice_condition_list =>
       dependent_expression
 
 choice_condition ::= choice_expression
 
-condition_choice_list ::= choice_condition {'|' choice_condition}
+choice_condition_list ::= choice_condition {'|' choice_condition}
 
 [Editor's note: We need "choice_condition" to avoid syntax ambiguity with
 memberships]
@@ -108,14 +108,15 @@
 Modify 4.9(12.1/3):
 
  * a conditional_expression all of whose conditions, selecting_expressions,
-   {choice_conditions, }and dependent_expressions are static expressions.
+   {choice_conditions, }and dependent_expressions are static expressions{.
    In addition, for a case_expression without a selecting_expression, 
-   exactly one of the choice_conditions is True;
+   exactly one of the choice_conditions is True};
 
 Add after 4.9(32.5/3):
 
  * a dependent_expression of a case_expression whose associated 
-   choice_condition is static and whose value equals False; or
+   choice_conditions are all static and all of whose values equal False; or
+
 
 -----
 
@@ -134,7 +135,7 @@
 Add after 5.4(3) with:
 
 conditional_case_statement_alternative ::=
-   when condition_list =>
+   when choice_condition_list =>
       sequence_of_statements
 
 Modify 5.4(11/3):
@@ -240,7 +241,7 @@
 @ @ @ @fa<case_expression_alternative>}>
 @dby
 @xindent<@fa<case_expression>@fa<@ ::=@ >@hr
-@ @ @ @b<case>@ @i<selecting_>@fa<expression@ >@b<is>@hr
+@ @ @ @b<case>@ @i<selecting_>@fa<expression>@ @b<is>@hr
 @ @ @ @fa<case_expression_alternative>@ {,@hr
 @ @ @ @fa<case_expression_alternative>}@hr
 @ |@ @b<case is>@hr
@@ -255,12 +256,12 @@
 @ @ @ @ @ @ @i<dependent_>@fa<expression>>
 @dinss
 @xindent<@fa<conditional_case_expression_alternative>@fa<@ ::=@ >@hr
-@ @ @ @b<when>@ @fa<condition_list>@ =@>@hr
+@ @ @ @b<when>@ @fa<choice_condition_list>@ =@>@hr
 @ @ @ @ @ @ @i<dependent_>@fa<expression>>
 
 @xindent<@fa<choice_condition>@fa<@ ::=@ >@fa<choice_expression>>
 
-@xindent<@fa<condition_choice_list>@fa< ::=@ >@fa<choice_condition>@ {'|'@ @fa<choice_condition>}>
+@xindent<@fa<choice_condition_list>@fa<@ ::=@ >@fa<choice_condition>@ {'|'@ @fa<choice_condition>}>
 
 !corrigendum 4.5.7(14/3)
 
@@ -322,7 +323,8 @@
 corresponding @fa<discrete_choice_list>; or>
 @dinst
 @xbullet<a @i<dependent_>@fa<expression> of a @fa<case_expression> whose 
-associated @fa<choice_condition> is static and whose value equals False; or>
+associated @fa<choice_condition>s are all static and all of whose values equal 
+False; or>
 
 !corrigendum 5.4(2/3)
 
@@ -334,7 +336,7 @@
 @ @ @ @b<end case>;>
 @dby
 @xindent<@fa<case_statement>@fa<@ ::=@ >@hr
-@ @ @ @b<case>@ @i<selecting_>@fa<expression@ >@b<is>@hr
+@ @ @ @b<case>@ @i<selecting_>@fa<expression>@ @b<is>@hr
 @ @ @ @ @ @ @ @fa<case_statement_alternative>@hr
 @ @ @ @ @ @ {@fa<case_statement_alternative>}@hr
 @ @ @ @b<end case>;@hr
@@ -349,9 +351,9 @@
 @xindent<@fa<case_statement_alternative>@fa<@ ::=@ >@hr
 @ @ @ @b<when>@ @fa<discrete_choice_list>@ =@>@hr
 @ @ @ @ @ @ @fa<sequence_of_statements>>
-@dinss
+@dinst
 @xindent<@fa<conditional_case_statement_alternative>@fa<@ ::=@ >@hr
-@ @ @ @b<when>@ @fa<condition_list>@ =@>@hr
+@ @ @ @b<when>@ @fa<choice_condition_list>@ =@>@hr
 @ @ @ @ @ @ @fa<sequence_of_statements>>
 
 !corrigendum 5.4(11/3)
@@ -1848,5 +1850,48 @@
    case <lengthy-prefix>.Height, <lengthy-prefix>.Width is
 
 Might be worth it for the other advantages.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Wednesday, July 17, 2019  10:58 PM
+
+In AI12-0214-2, we have the following rule for when a dependent_expression is
+statically unevaluated:
+
+Add after 4.9(32.5/3):
+
+ * a dependent_expression of a case_expression whose associated 
+   choice_condition is static and whose value equals False; or
+
+However, a dependent_expression can have a number of associated 
+choice_conditions (it is a condition_choice_list, after all), and the 
+dependent_expression is only unevaluated if they are all static and false.
+(If any are non-static or static and True, then the dependent_expression 
+might be evaluated.)
+
+I suggest rewording this as:
+
+Add after 4.9(32.5/3):
+
+ * a dependent_expression of a case_expression whose associated 
+   choice_conditions are all static and all of whose values equal False; or
+
+Since this is a reasonably obvious change, I'm just going to make it as an 
+editorial change (a pretty expansive definition of editorial, I know) unless
+someone objects.
+
+An editorial change: we currently have the syntax of 
+
+condition_choice_list ::= choice_condition {'|' choice_conditiion
+
+In other words, we have a list of choice_conditions called a 
+condition_choice_list. That doesn't match existing practice (for instance, for 
+a discrete_choice_list), not to mention being stupid. So I'm going to change 
+this name to choice_condition_list.
+
+(It would be a bad idea to change the name of a choice_condition, since it is 
+derived from a choice_expression in the same way that a condition is derived 
+from an expression. And it's used a lot in the wording. :-)
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent