Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 6d49ea3165b7fb8906721da9a6f6949632d35140)
+++ src/Parser/parser.yy	(revision e50e9ffe2229beb9e49fa8bc4a148017190a43e0)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug 17 15:52:12 2017
-// Update Count     : 2489
+// Last Modified On : Sun Aug 20 09:21:54 2017
+// Update Count     : 2573
 //
 
@@ -131,5 +131,5 @@
 %token ATTRIBUTE EXTENSION								// GCC
 %token IF ELSE SWITCH CASE DEFAULT DO WHILE FOR BREAK CONTINUE GOTO RETURN
-%token CHOOSE DISABLE ENABLE FALLTHRU TRY CATCH CATCHRESUME FINALLY THROW THROWRESUME AT WITH	// CFA
+%token CHOOSE DISABLE ENABLE FALLTHRU TRY CATCH CATCHRESUME FINALLY THROW THROWRESUME AT WITH // CFA
 %token ASM												// C99, extension ISO/IEC 9899:1999 Section J.5.10(1)
 %token ALIGNAS ALIGNOF GENERIC STATICASSERT				// C11
@@ -801,5 +801,5 @@
 	| IF '(' push if_control_expression ')' statement ELSE statement
 		{ $$ = new StatementNode( build_if( $4, $6, $8 ) ); }
-	| SWITCH '(' comma_expression ')' case_clause		// CFA
+	| SWITCH '(' comma_expression ')' case_clause
 		{ $$ = new StatementNode( build_switch( $3, $5 ) ); }
 	| SWITCH '(' comma_expression ')' '{' push declaration_list_opt switch_clause_list_opt '}' // CFA
@@ -825,7 +825,7 @@
 	comma_expression pop
 		{ $$ = new IfCtl( nullptr, $1 ); }
-	| c_declaration										// no semi-colon
+	| c_declaration pop									// no semi-colon
 		{ $$ = new IfCtl( $1, nullptr ); }
-	| cfa_declaration									// no semi-colon
+	| cfa_declaration pop								// no semi-colon
 		{ $$ = new IfCtl( $1, nullptr ); }
 	| declaration comma_expression						// semi-colon separated
@@ -1104,5 +1104,5 @@
 
 KR_declaration_list_opt:								// used to declare parameter types in K&R style functions
-	pop
+	// empty
 		{ $$ = nullptr; }
 	| KR_declaration_list
@@ -1110,6 +1110,7 @@
 
 KR_declaration_list:
-	c_declaration ';'
-	| KR_declaration_list push c_declaration ';'
+	push c_declaration pop ';'
+		{ $$ = $2; }
+	| KR_declaration_list push c_declaration pop ';'
 		{ $$ = $1->appendList( $3 ); }
 	;
@@ -1131,6 +1132,6 @@
 
 declaration:											// old & new style declarations
-	c_declaration ';'
-	| cfa_declaration ';'								// CFA
+	c_declaration pop ';'
+	| cfa_declaration pop ';'							// CFA
 	;
 
@@ -1147,9 +1148,9 @@
 
 cfa_declaration:										// CFA
-	cfa_variable_declaration pop
-	| cfa_typedef_declaration pop
-	| cfa_function_declaration pop
-	| type_declaring_list pop
-	| trait_specifier pop
+	cfa_variable_declaration
+	| cfa_typedef_declaration
+	| cfa_function_declaration
+	| type_declaring_list
+	| trait_specifier
 	;
 
@@ -1351,11 +1352,11 @@
 
 c_declaration:
-	declaration_specifier declaring_list pop
+	declaration_specifier declaring_list
 		{
 			$$ = distAttr( $1, $2 );
 		}
-	| typedef_declaration pop
-	| typedef_expression pop							// GCC, naming expression type
-	| sue_declaration_specifier pop
+	| typedef_declaration
+	| typedef_expression								// GCC, naming expression type
+	| sue_declaration_specifier
 	;
 
@@ -2230,9 +2231,9 @@
 			$$ = $1->addFunctionBody( $2 );
 		}
-	| KR_function_declarator push KR_declaration_list_opt compound_statement
+	| KR_function_declarator KR_declaration_list_opt compound_statement
 		{
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			typedefTable.leaveScope();
-			$$ = $1->addOldDeclList( $3 )->addFunctionBody( $4 );
+			$$ = $1->addOldDeclList( $2 )->addFunctionBody( $3 );
 		}
 	;
@@ -2278,29 +2279,29 @@
 
 		// Old-style K&R function definition, OBSOLESCENT (see 4)
-	| declaration_specifier KR_function_declarator push KR_declaration_list_opt with_clause_opt compound_statement
+	| declaration_specifier KR_function_declarator KR_declaration_list_opt with_clause_opt compound_statement
 		{
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			typedefTable.leaveScope();
-			$$ = $2->addOldDeclList( $4 )->addFunctionBody( $6 )->addType( $1 );
-		}
-	| type_qualifier_list KR_function_declarator push KR_declaration_list_opt with_clause_opt compound_statement
+			$$ = $2->addOldDeclList( $3 )->addFunctionBody( $5 )->addType( $1 );
+		}
+	| type_qualifier_list KR_function_declarator KR_declaration_list_opt with_clause_opt compound_statement
 		{
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			typedefTable.leaveScope();
-			$$ = $2->addOldDeclList( $4 )->addFunctionBody( $6 )->addQualifiers( $1 );
+			$$ = $2->addOldDeclList( $3 )->addFunctionBody( $5 )->addQualifiers( $1 );
 		}
 
 		// Old-style K&R function definition with "implicit int" type_specifier, OBSOLESCENT (see 4)
-	| declaration_qualifier_list KR_function_declarator push KR_declaration_list_opt with_clause_opt compound_statement
+	| declaration_qualifier_list KR_function_declarator KR_declaration_list_opt with_clause_opt compound_statement
 		{
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			typedefTable.leaveScope();
-			$$ = $2->addOldDeclList( $4 )->addFunctionBody( $6 )->addQualifiers( $1 );
-		}
-	| declaration_qualifier_list type_qualifier_list KR_function_declarator push KR_declaration_list_opt with_clause_opt compound_statement
+			$$ = $2->addOldDeclList( $3 )->addFunctionBody( $5 )->addQualifiers( $1 );
+		}
+	| declaration_qualifier_list type_qualifier_list KR_function_declarator KR_declaration_list_opt with_clause_opt compound_statement
 		{
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			typedefTable.leaveScope();
-			$$ = $3->addOldDeclList( $5 )->addFunctionBody( $7 )->addQualifiers( $2 )->addQualifiers( $1 );
+			$$ = $3->addOldDeclList( $4 )->addFunctionBody( $6 )->addQualifiers( $2 )->addQualifiers( $1 );
 		}
 	;
