Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 61802744b2d902f9f63f386e3ef6840292ea6bbc)
+++ src/Parser/parser.yy	(revision aac37fa530d851abe003e22cb465644dee20ff29)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Feb  1 11:06:13 2022
-// Update Count     : 5167
+// Last Modified On : Fri Feb 11 14:26:15 2022
+// Update Count     : 5174
 //
 
@@ -1197,5 +1197,4 @@
 		{ $$ = new StatementNode( build_while( $3, maybe_build_compound( $5 ) ) ); }
 	| WHILE '(' conditional_declaration ')' statement ELSE statement // CFA
-		// { SemanticError( yylloc, "Loop default block is currently unimplemented." ); $$ = nullptr; }
 		{ $$ = new StatementNode( build_while( $3, maybe_build_compound( $5 ), $7 ) ); }
 	| DO statement WHILE '(' ')' ';'					// CFA => do while( 1 )
@@ -1204,5 +1203,4 @@
 		{ $$ = new StatementNode( build_do_while( $5, maybe_build_compound( $2 ) ) ); }
 	| DO statement WHILE '(' comma_expression ')' ELSE statement // CFA
-		// { SemanticError( yylloc, "Loop default block is currently unimplemented." ); $$ = nullptr; }
 		{ $$ = new StatementNode( build_do_while( $5, maybe_build_compound( $2 ), $8 ) ); }
 	| FOR '(' ')' statement								// CFA => for ( ;; )
@@ -1211,5 +1209,4 @@
 	  	{ $$ = new StatementNode( build_for( $3, maybe_build_compound( $5 ) ) ); }
 	| FOR '(' for_control_expression_list ')' statement ELSE statement // CFA
-		// { SemanticError( yylloc, "Loop default block is currently unimplemented." ); $$ = nullptr; }
 		{ $$ = new StatementNode( build_for( $3, maybe_build_compound( $5 ), $7 ) ); }
 	;
@@ -2729,4 +2726,15 @@
 	| ASM '(' string_literal ')' ';'					// GCC, global assembler statement
 		{ $$ = DeclarationNode::newAsmStmt( new StatementNode( build_asm( false, $3, 0 ) ) ); }
+	| EXTERN STRINGliteral
+		{
+			linkageStack.push( linkage );				// handle nested extern "C"/"Cforall"
+			linkage = LinkageSpec::update( yylloc, linkage, $2 );
+		}
+	  up external_definition down 
+		{
+			linkage = linkageStack.top();
+			linkageStack.pop();
+			$$ = $5;
+		}
 	| EXTERN STRINGliteral								// C++-style linkage specifier
 		{
