Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 667b3c7658b202d8d7ada30db8d799b8d3d43e65)
+++ src/Parser/parser.yy	(revision 73f04fd954990d3b14f6516682f4c7a18cace0cd)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jan 25 21:41:56 2021
-// Update Count     : 4670
+// Last Modified On : Tue Jan 26 11:18:19 2021
+// Update Count     : 4674
 //
 
@@ -2014,9 +2014,4 @@
 	;
 
-fred:
-	// empty
-		{ yyy = false; }
-	;
-
 aggregate_type:											// struct, union
 	aggregate_key attribute_list_opt
@@ -2024,5 +2019,5 @@
 	  '{' field_declaration_list_opt '}' type_parameters_opt
 		{ $$ = DeclarationNode::newAggregate( $1, nullptr, $7, $5, true )->addQualifiers( $2 ); }
-	| aggregate_key attribute_list_opt identifier fred
+	| aggregate_key attribute_list_opt identifier
 		{
 			typedefTable.makeTypedef( *$3, forall || typedefTable.getEnclForall() ? TYPEGENname : TYPEDEFname ); // create typedef
@@ -2030,6 +2025,6 @@
 		}
 	  '{' field_declaration_list_opt '}' type_parameters_opt
-		{ $$ = DeclarationNode::newAggregate( $1, $3, $9, $7, true )->addQualifiers( $2 ); }
-	| aggregate_key attribute_list_opt type_name fred
+		{ $$ = DeclarationNode::newAggregate( $1, $3, $8, $6, true )->addQualifiers( $2 ); }
+	| aggregate_key attribute_list_opt type_name
 		{
 			// for type_name can be a qualified type name S.T, in which case only the last name in the chain needs a typedef (other names in the chain should already have one)
@@ -2038,5 +2033,5 @@
 		}
 	  '{' field_declaration_list_opt '}' type_parameters_opt
-		{ $$ = DeclarationNode::newAggregate( $1, $3->type->symbolic.name, $9, $7, true )->addQualifiers( $2 ); }
+		{ $$ = DeclarationNode::newAggregate( $1, $3->type->symbolic.name, $8, $6, true )->addQualifiers( $2 ); }
 	| aggregate_type_nobody
 	;
@@ -2050,5 +2045,5 @@
 
 aggregate_type_nobody:									// struct, union - {...}
-	aggregate_key attribute_list_opt identifier fred
+	aggregate_key attribute_list_opt identifier
 		{
 			typedefTable.makeTypedef( *$3, forall || typedefTable.getEnclForall() ? TYPEGENname : TYPEDEFname );
@@ -2056,5 +2051,5 @@
 			$$ = DeclarationNode::newAggregate( $1, $3, nullptr, nullptr, false )->addQualifiers( $2 );
 		}
-	| aggregate_key attribute_list_opt type_name fred
+	| aggregate_key attribute_list_opt type_name
 		{
 			forall = false;								// reset
@@ -2194,5 +2189,6 @@
 	;
 
-// Cannot use attribute_list_opt because of ambiguity with enum_specifier_nobody, which already parses attributes.
+// Cannot use attribute_list_opt because of ambiguity with enum_specifier_nobody, which already parses attribute.
+// Hence, only a single attribute is allowed after the "ENUM".
 enum_type:												// enum
 	ENUM attribute_opt '{' enumerator_list comma_opt '}'
@@ -2202,5 +2198,5 @@
 	  '{' enumerator_list comma_opt '}'
 		{ $$ = DeclarationNode::newEnum( $3, $6, true )->addQualifiers( $2 ); }
-	| ENUM attribute_opt typedef
+	| ENUM attribute_opt typedef						// enum cannot be generic
 	  '{' enumerator_list comma_opt '}'
 		{ $$ = DeclarationNode::newEnum( $3->name, $5, true )->addQualifiers( $2 ); }
@@ -2223,5 +2219,5 @@
 			$$ = DeclarationNode::newEnum( $3, 0, false )->addQualifiers( $2 );
 		}
-	| ENUM attribute_opt type_name
+	| ENUM attribute_opt type_name						// enum cannot be generic
 		{
 			typedefTable.makeTypedef( *$3->type->symbolic.name );
