Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision d58a74551a3e41ac7a590c29195b86af725f9e62)
+++ src/Parser/DeclarationNode.cc	(revision 2a8427c61128cfaed539e695bd10d0c71b358737)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 12:34:05 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Nov 20 09:21:52 2017
-// Update Count     : 1031
+// Last Modified On : Thu Feb 22 15:37:17 2018
+// Update Count     : 1033
 //
 
@@ -120,8 +120,4 @@
 } // DeclarationNode::clone
 
-bool DeclarationNode::get_hasEllipsis() const {
-	return hasEllipsis;
-}
-
 void DeclarationNode::print( std::ostream &os, int indent ) const {
 	os << string( indent, ' ' );
@@ -167,10 +163,9 @@
 }
 
-DeclarationNode * DeclarationNode::newFunction( string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body, bool newStyle ) {
+DeclarationNode * DeclarationNode::newFunction( string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body ) {
 	DeclarationNode * newnode = new DeclarationNode;
 	newnode->name = name;
 	newnode->type = new TypeData( TypeData::Function );
 	newnode->type->function.params = param;
-	newnode->type->function.newStyle = newStyle;
 	newnode->type->function.body = body;
 
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision d58a74551a3e41ac7a590c29195b86af725f9e62)
+++ src/Parser/ParseNode.h	(revision 2a8427c61128cfaed539e695bd10d0c71b358737)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:28:16 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Nov 27 17:33:35 2017
-// Update Count     : 824
+// Last Modified On : Thu Feb 22 15:31:48 2018
+// Update Count     : 826
 //
 
@@ -226,5 +226,5 @@
 	static DeclarationNode * newForall( DeclarationNode * );
 	static DeclarationNode * newFromTypedef( std::string * );
-	static DeclarationNode * newFunction( std::string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body, bool newStyle = false );
+	static DeclarationNode * newFunction( std::string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body );
 	static DeclarationNode * newAggregate( Aggregate kind, const std::string * name, ExpressionNode * actuals, DeclarationNode * fields, bool body );
 	static DeclarationNode * newEnum( std::string * name, DeclarationNode * constants, bool body );
@@ -288,5 +288,4 @@
 	Type * buildType() const;
 
-	bool get_hasEllipsis() const;
 	LinkageSpec::Spec get_linkage() const { return linkage; }
 	DeclarationNode * extractAggregate() const;
Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision d58a74551a3e41ac7a590c29195b86af725f9e62)
+++ src/Parser/TypeData.cc	(revision 2a8427c61128cfaed539e695bd10d0c71b358737)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:12:51 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Sep 25 18:33:41 2017
-// Update Count     : 587
+// Last Modified On : Thu Feb 22 15:49:00 2018
+// Update Count     : 597
 //
 
@@ -54,5 +54,4 @@
 		function.oldDeclList = nullptr;
 		function.body = nullptr;
-		function.newStyle = false;
 		function.withExprs = nullptr;
 		break;
@@ -195,5 +194,4 @@
 		newtype->function.oldDeclList = maybeClone( function.oldDeclList );
 		newtype->function.body = maybeClone( function.body );
-		newtype->function.newStyle = function.newStyle;
 		newtype->function.withExprs = maybeClone( function.withExprs );
 		break;
@@ -881,7 +879,5 @@
 FunctionType * buildFunction( const TypeData * td ) {
 	assert( td->kind == TypeData::Function );
-	bool hasEllipsis = td->function.params ? td->function.params->get_hasEllipsis() : true;
-	if ( ! td->function.params ) hasEllipsis = ! td->function.newStyle;
-	FunctionType * ft = new FunctionType( buildQualifiers( td ), hasEllipsis );
+	FunctionType * ft = new FunctionType( buildQualifiers( td ), ! td->function.params || td->function.params->hasEllipsis );
 	buildList( td->function.params, ft->get_parameters() );
 	buildForall( td->forall, ft->get_forall() );
Index: src/Parser/TypeData.h
===================================================================
--- src/Parser/TypeData.h	(revision d58a74551a3e41ac7a590c29195b86af725f9e62)
+++ src/Parser/TypeData.h	(revision 2a8427c61128cfaed539e695bd10d0c71b358737)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:18:36 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Sep  1 23:33:45 2017
-// Update Count     : 190
+// Last Modified On : Thu Feb 22 15:21:23 2018
+// Update Count     : 191
 //
 
@@ -64,5 +64,4 @@
 		mutable DeclarationNode * oldDeclList;
 		StatementNode * body;
-		bool newStyle;
 		ExpressionNode * withExprs;             // expressions from function's with_clause
 	};
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision d58a74551a3e41ac7a590c29195b86af725f9e62)
+++ src/Parser/parser.yy	(revision 2a8427c61128cfaed539e695bd10d0c71b358737)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb 15 17:12:31 2018
-// Update Count     : 3006
+// Last Modified On : Thu Feb 22 15:31:19 2018
+// Update Count     : 3027
 //
 
@@ -314,5 +314,5 @@
 %type<decl> cfa_identifier_parameter_declarator_tuple cfa_identifier_parameter_ptr
 
-%type<decl> cfa_parameter_declaration cfa_parameter_list cfa_parameter_type_list cfa_parameter_type_list_opt
+%type<decl> cfa_parameter_declaration cfa_parameter_list cfa_parameter_type_list_opt
 
 %type<decl> cfa_typedef_declaration cfa_variable_declaration cfa_variable_specifier
@@ -322,6 +322,5 @@
 %type<decl> KR_declaration_list KR_declaration_list_opt
 
-%type<decl> parameter_declaration parameter_list parameter_type_list
-%type<decl> parameter_type_list_opt
+%type<decl> parameter_declaration parameter_list parameter_type_list_opt
 
 %type<decl> paren_identifier paren_type
@@ -779,6 +778,6 @@
 	| unary_expression assignment_operator assignment_expression
 		{ $$ = new ExpressionNode( build_binary_val( $2, $1, $3 ) ); }
-	| unary_expression '=' '{' initializer_list comma_opt '}' // FIX ME
-		{ $$ = nullptr; }
+	| unary_expression '=' '{' initializer_list comma_opt '}'
+		{ throw SemanticError( yylloc, "Initializer assignment is currently unimplemented." ); $$ = nullptr; } // FIX ME
 	;
 
@@ -849,4 +848,6 @@
 	| waitfor_statement
 	| exception_statement
+	| enable_disable_statement
+		{ throw SemanticError( yylloc, "enable/disable statement is currently unimplemented." ); $$ = nullptr; } // FIX ME
 	| asm_statement
 	;
@@ -1064,6 +1065,6 @@
 	| RETURN comma_expression_opt ';'
 		{ $$ = new StatementNode( build_return( $2 ) ); }
-	| RETURN '{' initializer_list comma_opt '}'			// FIX ME
-		{ $$ = nullptr; }
+	| RETURN '{' initializer_list comma_opt '}'
+		{ throw SemanticError( yylloc, "Initializer return is currently unimplemented." ); $$ = nullptr; } // FIX ME
 	| THROW assignment_expression_opt ';'				// handles rethrow
 		{ $$ = new StatementNode( build_throw( $2 ) ); }
@@ -1193,4 +1194,13 @@
 	;
 
+enable_disable_statement:
+	enable_disable_key identifier_list compound_statement
+	;
+
+enable_disable_key:
+	ENABLE
+	| DISABLE
+	;
+
 asm_statement:
 	ASM asm_volatile_opt '(' string_literal ')' ';'
@@ -1392,5 +1402,5 @@
 			DeclarationNode * ret = new DeclarationNode;
 			ret->type = maybeClone( $1->type->base );
-			$$ = $1->appendList( DeclarationNode::newFunction( $5, ret, $8, nullptr, true ) );
+			$$ = $1->appendList( DeclarationNode::newFunction( $5, ret, $8, nullptr ) );
 		}
 	;
@@ -1422,9 +1432,9 @@
 		// To obtain LR(1 ), this rule must be factored out from function return type (see cfa_abstract_declarator).
 		{
-			$$ = DeclarationNode::newFunction( $2, $1, $5, 0, true );
+			$$ = DeclarationNode::newFunction( $2, $1, $5, 0 );
 		}
 	| cfa_function_return identifier_or_type_name '(' push cfa_parameter_type_list_opt pop ')'
 		{
-			$$ = DeclarationNode::newFunction( $2, $1, $5, 0, true );
+			$$ = DeclarationNode::newFunction( $2, $1, $5, 0 );
 		}
 	;
@@ -1990,14 +2000,10 @@
 	;
 
-// Minimum of one parameter after which ellipsis is allowed only at the end.
-
-cfa_parameter_type_list_opt:							// CFA
+cfa_parameter_type_list_opt:							// CFA, abstract + real
 	// empty
+		{ $$ = DeclarationNode::newBasicType( DeclarationNode::Void ); }
+	| ELLIPSIS
 		{ $$ = nullptr; }
-	| cfa_parameter_type_list
-	;
-
-cfa_parameter_type_list:								// CFA, abstract + real
-	cfa_abstract_parameter_list
+	| cfa_abstract_parameter_list
 	| cfa_parameter_list
 	| cfa_parameter_list pop ',' push cfa_abstract_parameter_list
@@ -2030,9 +2036,7 @@
 	// empty
 		{ $$ = nullptr; }
-	| parameter_type_list
-	;
-
-parameter_type_list:
-	parameter_list
+	| ELLIPSIS
+		{ $$ = nullptr; }
+	| parameter_list
 	| parameter_list pop ',' push ELLIPSIS
 		{ $$ = $1->addVarArgs(); }
