Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision f1aeede71b04e7771de9675a249b7dc99bbc77bc)
+++ src/Parser/parser.yy	(revision 515a037b9b2f61287a165cdb63ddf64362990b9d)
@@ -196,4 +196,6 @@
 		new ExpressionNode( build_binary_val( compop == OperKinds::LThan || compop == OperKinds::LEThan ? // choose += or -= for upto/downto
 											  OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index ) ) ), inc ) ) );
+<<<<<<< HEAD
+=======
 } // forCtrl
 
@@ -204,4 +206,5 @@
 		SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); return nullptr;
 	} // if
+>>>>>>> master
 } // forCtrl
 
@@ -1145,11 +1148,65 @@
 
 for_control_expression:
+<<<<<<< HEAD
+	comma_expression_opt								// CFA
+		{
+			if ( ! $1 ) {								// => for ( ;; )
+				$$ = new ForCtrl( (ExpressionNode * )nullptr, (ExpressionNode * )nullptr, (ExpressionNode * )nullptr );
+			} else {
+				$$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
+							  OperKinds::LThan, $1->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) );
+			} // if
+		}
+=======
 	comma_expression									// CFA
 		{ $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
 						OperKinds::LThan, $1->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
+>>>>>>> master
 	| constant_expression inclexcl constant_expression	// CFA
 		{ $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
 	| constant_expression inclexcl constant_expression '~' constant_expression // CFA
 		{ $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, $5 ); }
+<<<<<<< HEAD
+	| comma_expression_opt ';' comma_expression			// CFA
+		{
+			if ( ! $1 ) {
+				SemanticError( yylloc, "Missing loop index." ); $$ = nullptr;
+			} else if ( ! $3 ) {
+				SemanticError( yylloc, "Missing loop range." ); $$ = nullptr;
+			} else {
+				if ( NameExpr *identifier = dynamic_cast<NameExpr *>($1->get_expr()) ) {
+					$$ = forCtrl( $3, new string( identifier->name ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
+								  OperKinds::LThan, $3->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) );
+				} else {
+					SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); $$ = nullptr;
+				} // if
+			} // if
+		}
+	| comma_expression_opt ';' constant_expression inclexcl constant_expression // CFA
+		{
+			if ( ! $1 ) {
+				SemanticError( yylloc, "Missing loop index." ); $$ = nullptr;
+			} else {
+				if ( NameExpr *identifier = dynamic_cast<NameExpr *>($1->get_expr()) ) {
+					$$ = forCtrl( $3, new string( identifier->name ), $3->clone(), $4, $5, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) );
+				} else {
+					SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); $$ = nullptr;
+				} // if
+			} // if
+		}
+	| comma_expression_opt ';' constant_expression inclexcl constant_expression '~' constant_expression // CFA
+		{
+			if ( ! $1 ) {
+				SemanticError( yylloc, "Missing loop index." ); $$ = nullptr;
+			} else {
+				if ( NameExpr *identifier = dynamic_cast<NameExpr *>($1->get_expr()) ) {
+					$$ = forCtrl( $3, new string( identifier->name ), $3->clone(), $4, $5, $7 );
+				} else {
+					SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); $$ = nullptr;
+				} // if
+			} // if
+		}
+	| comma_expression_opt ';' comma_expression_opt ';' comma_expression_opt
+=======
 	| comma_expression ';' comma_expression				// CFA
 		{ $$ = forCtrl( $3, $1, new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
@@ -1160,4 +1217,5 @@
 		{ $$ = forCtrl( $3, $1, $3->clone(), $4, $5, $7 ); }
 	| comma_expression ';' comma_expression_opt ';' comma_expression_opt
+>>>>>>> master
 		{ $$ = new ForCtrl( $1, $3, $5 ); }
 	| ';' comma_expression_opt ';' comma_expression_opt
@@ -1828,4 +1886,11 @@
 	| TYPEOF '(' comma_expression ')'					// GCC: typeof( a+b ) y;
 		{ $$ = DeclarationNode::newTypeof( $3 ); }
+<<<<<<< HEAD
+	| BASETYPEOF '(' type ')'							// CFA: basetypeof(x) y;
+		{ $$ = $3; }
+	| BASETYPEOF '(' comma_expression ')'				// CFA: basetypeof(a+b) y;
+		{ $$ = DeclarationNode::newTypeof( $3 ); }
+	| ATTR_TYPEGENname '(' type ')'						// CFA: e.g., @type(x) y;
+=======
 	| BASETYPEOF '(' type ')'							// CFA: basetypeof( x ) y;
 		{ $$ = DeclarationNode::newTypeof( new ExpressionNode( new TypeExpr( maybeMoveBuildType( $3 ) ) ), true ); }
@@ -1833,4 +1898,5 @@
 		{ $$ = DeclarationNode::newTypeof( $3, true ); }
 	| ATTR_TYPEGENname '(' type ')'						// CFA: e.g., @type( x ) y;
+>>>>>>> master
 		{ $$ = DeclarationNode::newAttr( $1, $3 ); }
 	| ATTR_TYPEGENname '(' comma_expression ')'			// CFA: e.g., @type( a+b ) y;
