Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision 0ac8d07ff99eb7dfa684ac4d986702ba968735e2)
+++ src/Parser/DeclarationNode.cc	(revision deda7e6002cc711be5c0af09984cec24300d5990)
@@ -394,4 +394,19 @@
 	return newnode->addQualifiers( qualifiers );
 } // DeclarationNode::newArray
+
+DeclarationNode * DeclarationNode::newInlineEnumeratedArray( DeclarationNode * enumDecl, DeclarationNode * qualifiers ) {
+	DeclarationNode * newnode = new DeclarationNode;
+	newnode->type = new TypeData( TypeData::Array );
+	newnode->type->array.isStatic = false;
+	newnode->type->array.isVarLen = false;
+
+	if ( enumDecl ) {
+		newnode->type->declType = enumDecl->type;
+		enumDecl->type = nullptr;
+		delete enumDecl;
+	} // if
+	
+	return newnode->addQualifiers( qualifiers );
+}
 
 DeclarationNode * DeclarationNode::newVarArray( DeclarationNode * qualifiers ) {
Index: src/Parser/DeclarationNode.h
===================================================================
--- src/Parser/DeclarationNode.h	(revision 0ac8d07ff99eb7dfa684ac4d986702ba968735e2)
+++ src/Parser/DeclarationNode.h	(revision deda7e6002cc711be5c0af09984cec24300d5990)
@@ -66,4 +66,5 @@
 	static DeclarationNode * newPointer( DeclarationNode * qualifiers, OperKinds kind );
 	static DeclarationNode * newArray( ExpressionNode * size, DeclarationNode * qualifiers, bool isStatic );
+	static DeclarationNode * newInlineEnumeratedArray( DeclarationNode * enumDecl, DeclarationNode * qualifiers );
 	static DeclarationNode * newVarArray( DeclarationNode * qualifiers );
 	static DeclarationNode * newBitfield( ExpressionNode * size );
Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision 0ac8d07ff99eb7dfa684ac4d986702ba968735e2)
+++ src/Parser/TypeData.cc	(revision deda7e6002cc711be5c0af09984cec24300d5990)
@@ -1021,4 +1021,7 @@
 		);
 	} // if
+	if ( td->declType) {
+		at->declaredType = buildEnum( td->declType, std::vector<ast::ptr<ast::Attribute>>(), ast::Linkage::Cforall );
+	}
 	return at;
 } // buildArray
Index: src/Parser/TypeData.h
===================================================================
--- src/Parser/TypeData.h	(revision 0ac8d07ff99eb7dfa684ac4d986702ba968735e2)
+++ src/Parser/TypeData.h	(revision deda7e6002cc711be5c0af09984cec24300d5990)
@@ -85,4 +85,5 @@
 	Kind kind;
 	TypeData * base;
+	TypeData * declType;
 	DeclarationNode::BasicType basictype = DeclarationNode::NoBasicType;
 	DeclarationNode::ComplexType complextype = DeclarationNode::NoComplexType;
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 0ac8d07ff99eb7dfa684ac4d986702ba968735e2)
+++ src/Parser/parser.yy	(revision deda7e6002cc711be5c0af09984cec24300d5990)
@@ -3855,4 +3855,8 @@
 	| '[' push array_type_list pop ']'					// CFA
 		{ $$ = DeclarationNode::newArray( $3, nullptr, false ); }
+	| '[' push INLINE enum_type_nobody pop']'
+		{	
+			$$ = DeclarationNode::newInlineEnumeratedArray( $4, nullptr ); 
+		}
 	| multi_array_dimension
 	;
