Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision 4e9c7c15f84bbc38da753bad981bfbcaf64d9e39)
+++ src/Parser/TypeData.cc	(revision cbce2727f642c2a177c82c045248ba1923699527)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:12:51 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Tus Jul 18 10:10:00 2017
-// Update Count     : 566
+// Last Modified On : Wed Aug  9 13:50:00 2017
+// Update Count     : 567
 //
 
@@ -748,10 +748,10 @@
 } // buildAggInst
 
-NamedTypeDecl * buildSymbolic( const TypeData * td, const string & name, Type::StorageClasses scs ) {
+NamedTypeDecl * buildSymbolic( const TypeData * td, const string & name, Type::StorageClasses scs, LinkageSpec::Spec linkage ) {
 	assert( td->kind == TypeData::Symbolic );
 	NamedTypeDecl * ret;
 	assert( td->base );
 	if ( td->symbolic.isTypedef ) {
-		ret = new TypedefDecl( name, scs, typebuild( td->base ) );
+		ret = new TypedefDecl( name, scs, typebuild( td->base ), linkage );
 	} else {
 		ret = new TypeDecl( name, scs, typebuild( td->base ), TypeDecl::Any );
@@ -817,5 +817,5 @@
 		return buildEnum( td, attributes );
 	} else if ( td->kind == TypeData::Symbolic ) {
-		return buildSymbolic( td, name, scs );
+		return buildSymbolic( td, name, scs, linkage );
 	} else {
 		return (new ObjectDecl( name, scs, linkage, bitfieldWidth, typebuild( td ), init, attributes ))->set_asmName( asmName );
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 4e9c7c15f84bbc38da753bad981bfbcaf64d9e39)
+++ src/Parser/parser.yy	(revision cbce2727f642c2a177c82c045248ba1923699527)
@@ -9,7 +9,7 @@
 // Author           : Peter A. Buhr
 // Created On       : Sat Sep  1 20:22:55 2001
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jul 31 14:54:32 2017
-// Update Count     : 2474
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed Aug  4 13:33:00 2017
+// Update Count     : 2475
 //
 
@@ -182,4 +182,5 @@
 %type<en> asm_clobbers_list_opt
 %type<flag> asm_volatile_opt
+%type<en> handler_predicate_opt
 
 // statements
@@ -968,19 +969,15 @@
 
 handler_clause:
-	// TEMPORARY, TEST EXCEPTIONS
-	handler_key '(' push push INTEGERconstant pop ')' compound_statement pop
-		{ $$ = new StatementNode( build_catch( $1, nullptr, new ExpressionNode( build_constantInteger( *$5 ) ), $8 ) ); }
-	| handler_clause handler_key '(' push push INTEGERconstant pop ')' compound_statement pop
-		{ $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $2, nullptr, new ExpressionNode( build_constantInteger( *$6 ) ), $9 ) ) ); }
-
-	| handler_key '(' push push exception_declaration pop handler_predicate_opt ')' compound_statement pop
-		{ $$ = new StatementNode( build_catch( $1, $5, nullptr, $9 ) ); }
+	handler_key '(' push push exception_declaration pop handler_predicate_opt ')' compound_statement pop
+		{ $$ = new StatementNode( build_catch( $1, $5, $7, $9 ) ); }
 	| handler_clause handler_key '(' push push exception_declaration pop handler_predicate_opt ')' compound_statement pop
-		{ $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $2, $6, nullptr, $10 ) ) ); }
+		{ $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $2, $6, $8, $10 ) ) ); }
 	;
 
 handler_predicate_opt:
 	//empty
+		{ $$ = nullptr; }
 	| ';' conditional_expression
+		{ $$ = $2; }
 	;
 
@@ -1674,28 +1671,4 @@
 	| aggregate_key attribute_list_opt typegen_name		// CFA
 		{ $$ = $3->addQualifiers( $2 ); }
-
-// Temp, testing TreeStruct
-    | STRUCT TRY attribute_list_opt no_attr_identifier_or_type_name
-        {
-            typedefTable.makeTypedef( *$4 );            // create typedef
-            if ( forall ) typedefTable.changeKind( *$4, TypedefTable::TG ); // $
-            forall = false;                             // reset
-        }
-      '{' field_declaration_list '}'
-        {
-            $$ = DeclarationNode::newTreeStruct( DeclarationNode::Struct,
-                $4, nullptr, nullptr, $7, true )->addQualifiers( $3 );
-        }
-    | STRUCT TRY attribute_list_opt no_attr_identifier_or_type_name TYPEDEFname
-        {
-            typedefTable.makeTypedef( *$4 );            // create typedef
-            if ( forall ) typedefTable.changeKind( *$4, TypedefTable::TG ); // $
-            forall = false;                             // reset
-        }
-      '{' field_declaration_list '}'
-        {
-            $$ = DeclarationNode::newTreeStruct( DeclarationNode::Struct,
-                $4, $5, nullptr, $8, true )->addQualifiers( $3 );
-        }
 	;
 
