CVS difference for 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