Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision 35a2d473b8e7af16f2daddd2cc694ada6023b28f)
+++ src/Parser/lex.ll	(revision f1c1339e829313edbd1b7faa98f6529025d7f5db)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Sun Mar 10 09:13:09 2019
- * Update Count     : 706
+ * Last Modified On : Wed Mar 13 14:54:30 2019
+ * Update Count     : 707
  */
 
@@ -226,4 +226,5 @@
 char			{ KEYWORD_RETURN(CHAR); }
 choose			{ KEYWORD_RETURN(CHOOSE); }				// CFA
+coerce			{ KEYWORD_RETURN(COERCE); }				// CFA
 _Complex		{ KEYWORD_RETURN(COMPLEX); }			// C99
 __complex		{ KEYWORD_RETURN(COMPLEX); }			// GCC
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 35a2d473b8e7af16f2daddd2cc694ada6023b28f)
+++ src/Parser/parser.yy	(revision f1c1339e829313edbd1b7faa98f6529025d7f5db)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb 21 08:45:07 2019
-// Update Count     : 4232
+// Last Modified On : Fri Mar 15 14:25:43 2019
+// Update Count     : 4248
 //
 
@@ -265,5 +265,5 @@
 %token RESTRICT											// C99
 %token ATOMIC											// C11
-%token FORALL MUTEX VIRTUAL								// CFA
+%token FORALL MUTEX VIRTUAL COERCE						// CFA
 %token VOID CHAR SHORT INT LONG FLOAT DOUBLE SIGNED UNSIGNED
 %token BOOL COMPLEX IMAGINARY							// C99
@@ -795,4 +795,5 @@
 	| '(' type_no_function ')' cast_expression
 		{ $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
+		// keyword cast cannot be grouped because of reduction in aggregate_key
 	| '(' COROUTINE '&' ')' cast_expression				// CFA
 		{ $$ = new ExpressionNode( build_keyword_cast( KeywordCastExpr::Coroutine, $5 ) ); }
@@ -806,6 +807,24 @@
 	| '(' VIRTUAL type_no_function ')' cast_expression	// CFA
 		{ $$ = new ExpressionNode( new VirtualCastExpr( maybeMoveBuild< Expression >( $5 ), maybeMoveBuildType( $3 ) ) ); }
+	| '(' RETURN type_no_function ')' cast_expression	// CFA
+		{ SemanticError( yylloc, "Return cast is currently unimplemented." ); $$ = nullptr; }
+	| '(' COERCE type_no_function ')' cast_expression	// CFA
+		{ SemanticError( yylloc, "Coerce cast is currently unimplemented." ); $$ = nullptr; }
+	| '(' qualifier_cast_list ')' cast_expression		// CFA
+		{ SemanticError( yylloc, "Qualifier cast is currently unimplemented." ); $$ = nullptr; }
 //	| '(' type_no_function ')' tuple
 //		{ $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
+	;
+
+qualifier_cast_list:
+	cast_modifier type_qualifier_name
+	| cast_modifier MUTEX
+	| qualifier_cast_list cast_modifier type_qualifier_name
+	| qualifier_cast_list cast_modifier MUTEX
+	;
+
+cast_modifier:
+	'-'
+	| '+'
 	;
 
