Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision fd2b607860f0e973a49748ed5df2a95399f12edc)
+++ benchmark/Makefile.am	(revision b5bb4442cf6a35d1075c59910d610592e5d09ca8)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 09:08:15 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Tue Mar 10 11:41:18 2020
-## Update Count     : 258
+## Last Modified On : Sat Jan 25 09:20:44 2020
+## Update Count     : 255
 ###############################################################################
 
@@ -108,5 +108,4 @@
 creation_cfa_coroutine_DURATION = 100000000
 creation_cfa_coroutine_eager_DURATION = 10000000
-creation_cfa_generator_DURATION = 1000000000
 creation_upp_coroutine_DURATION = ${creation_cfa_coroutine_eager_DURATION}
 creation_cfa_thread_DURATION = 10000000
Index: benchmark/Makefile.in
===================================================================
--- benchmark/Makefile.in	(revision fd2b607860f0e973a49748ed5df2a95399f12edc)
+++ benchmark/Makefile.in	(revision b5bb4442cf6a35d1075c59910d610592e5d09ca8)
@@ -447,5 +447,4 @@
 creation_cfa_coroutine_DURATION = 100000000
 creation_cfa_coroutine_eager_DURATION = 10000000
-creation_cfa_generator_DURATION = 1000000000
 creation_upp_coroutine_DURATION = ${creation_cfa_coroutine_eager_DURATION}
 creation_cfa_thread_DURATION = 10000000
Index: benchmark/creation/cfa_gen.cfa
===================================================================
--- benchmark/creation/cfa_gen.cfa	(revision fd2b607860f0e973a49748ed5df2a95399f12edc)
+++ benchmark/creation/cfa_gen.cfa	(revision b5bb4442cf6a35d1075c59910d610592e5d09ca8)
@@ -1,9 +1,9 @@
-#include "../bench.h"
+#include "bench.h"
 
-generator G {
+struct C {
 	volatile int restart; // ensure compiler does not optimize away all the code
 };
-void ?{}( G & g ) { g.restart = 0; }
-void main( G & ) {}
+void ?{}( C & c ) { c.restart = 0; }
+void main( C & ) {}
 
 int main( int argc, char * argv[] ) {
@@ -11,5 +11,5 @@
 	BENCH(
 		for ( times ) {
-			 G g;
+			 C c;
 		},
 		result
Index: benchmark/ctxswitch/cfa_cor.cfa
===================================================================
--- benchmark/ctxswitch/cfa_cor.cfa	(revision fd2b607860f0e973a49748ed5df2a95399f12edc)
+++ benchmark/ctxswitch/cfa_cor.cfa	(revision b5bb4442cf6a35d1075c59910d610592e5d09ca8)
@@ -2,14 +2,13 @@
 #include <thread.hfa>
 
-#include "../bench.h"
+#include "bench.h"
 
-coroutine C {};
+coroutine C {} c;
 void main( __attribute__((unused)) C & ) {
-	for () {
+	while () {
 		suspend;
 	}
 }
 int main( int argc, char * argv[] ) {
-	C c;
 	BENCH_START()
 	BENCH(
Index: benchmark/ctxswitch/cfa_gen.cfa
===================================================================
--- benchmark/ctxswitch/cfa_gen.cfa	(revision fd2b607860f0e973a49748ed5df2a95399f12edc)
+++ benchmark/ctxswitch/cfa_gen.cfa	(revision b5bb4442cf6a35d1075c59910d610592e5d09ca8)
@@ -1,17 +1,23 @@
 #include "../bench.h"
 
-generator G {};
-void main( G & ) {
+typedef struct {
+	void * next;
+} C;
+
+void comain( C * c ) {
+	if ( __builtin_expect(c->next != 0, 1) ) goto *(c->next);
+	c->next = &&s1;
 	for () {
-		suspend;
+		return;
+	  s1: ;
 	}
 }
 
 int main( int argc, char * argv[] ) {
-	G g;
 	BENCH_START()
+	C c = { 0 };
 	BENCH(
 		for ( times ) {
-			resume( g );
+			comain( &c );
 		},
 		result
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision fd2b607860f0e973a49748ed5df2a95399f12edc)
+++ src/Parser/parser.yy	(revision b5bb4442cf6a35d1075c59910d610592e5d09ca8)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Mar  6 17:26:45 2020
-// Update Count     : 4474
+// Last Modified On : Wed Feb 26 14:27:39 2020
+// Update Count     : 4472
 //
 
@@ -919,11 +919,5 @@
 	conditional_expression
 	| unary_expression assignment_operator assignment_expression
-		{
-			if ( $2 == OperKinds::AtAssn ) {
-				SemanticError( yylloc, "C @= assignment is currently unimplemented." ); $$ = nullptr;
-			} else {
-				$$ = new ExpressionNode( build_binary_val( $2, $1, $3 ) );
-			} // if
-		}
+		{ $$ = new ExpressionNode( build_binary_val( $2, $1, $3 ) ); }
 	| unary_expression '=' '{' initializer_list_opt comma_opt '}'
 		{ SemanticError( yylloc, "Initializer assignment is currently unimplemented." ); $$ = nullptr; }
