Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 9e7236f4ea98982d55cddf21f808b612dbfe6ddf)
+++ src/Parser/parser.yy	(revision ec57856c471d68c27156f9fbc24b955edafbcb9a)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Mar 14 16:35:29 2022
-// Update Count     : 5276
+// Last Modified On : Wed May  4 14:25:20 2022
+// Update Count     : 5277
 //
 
@@ -111,5 +111,5 @@
 
 void distInl( DeclarationNode * declaration ) {
-	// distribute EXTENSION across all declarations
+	// distribute INLINE across all declarations
 	for ( DeclarationNode *iter = declaration; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) {
 		iter->set_inLine( true );
@@ -1221,6 +1221,8 @@
 
 iteration_statement:
-	WHILE '(' ')' statement								// CFA => while ( 1 )
+	WHILE '(' ')' statement								%prec THEN // CFA => while ( 1 )
 		{ $$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 ) ) ); }
+	| WHILE '(' ')' statement ELSE statement			// CFA
+		{ SemanticWarning( yylloc, Warning::SuperfluousElse ); }
 	| WHILE '(' conditional_declaration ')' statement	%prec THEN
 		{ $$ = new StatementNode( build_while( $3, maybe_build_compound( $5 ) ) ); }
@@ -1229,4 +1231,6 @@
 	| DO statement WHILE '(' ')' ';'					// CFA => do while( 1 )
 		{ $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) ); }
+	| DO statement WHILE '(' ')' ELSE statement			// CFA
+		{ SemanticWarning( yylloc, Warning::SuperfluousElse ); }
 	| DO statement WHILE '(' comma_expression ')' ';'	%prec THEN
 		{ $$ = new StatementNode( build_do_while( $5, maybe_build_compound( $2 ) ) ); }
@@ -2318,5 +2322,5 @@
 			{ SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); }
 
-			$$ = DeclarationNode::newEnum( nullptr, $7, true, $3 ) ->addQualifiers( $5 );
+			$$ = DeclarationNode::newEnum( nullptr, $7, true, $3 )->addQualifiers( $5 );
 		}
 	| ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt identifier attribute_list_opt
@@ -2327,5 +2331,5 @@
 	  '{' enumerator_list comma_opt '}'
 		{
-			$$ = DeclarationNode::newEnum( $6, $10, true, $3 ) -> addQualifiers( $5 ) -> addQualifiers( $7 );
+			$$ = DeclarationNode::newEnum( $6, $10, true, $3 )->addQualifiers( $5 )->addQualifiers( $7 );
 		}
 	| ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt typedef_name attribute_list_opt '{' enumerator_list comma_opt '}'
@@ -2333,5 +2337,5 @@
 			if ( $3->storageClasses.val != 0 || $3->type->qualifiers.val != 0 ) { SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); }
 			typedefTable.makeTypedef( *$6->name );
-			$$ = DeclarationNode::newEnum( $6->name, $9, true, $3 ) -> addQualifiers( $5 ) -> addQualifiers( $7 );
+			$$ = DeclarationNode::newEnum( $6->name, $9, true, $3 )->addQualifiers( $5 )->addQualifiers( $7 );
 		}
 	| enum_type_nobody
