Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/Parser/ExpressionNode.cc	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:17:07 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun 21 16:44:46 2017
-// Update Count     : 541
+// Last Modified On : Wed Jun 28 21:08:15 2017
+// Update Count     : 542
 //
 
@@ -27,5 +27,5 @@
 #include "SynTree/Declaration.h"
 #include "Common/UnimplementedError.h"
-#include "parseutility.h"
+#include "parserutility.h"
 #include "Common/utility.h"
 
Index: src/Parser/StatementNode.cc
===================================================================
--- src/Parser/StatementNode.cc	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/Parser/StatementNode.cc	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Sat May 16 14:59:41 2015
-// Last Modified By : Andrew Beach
-// Last Modified On : Mon Jun 12 13:03:00 2017
-// Update Count     : 329
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Jun 28 21:08:37 2017
+// Update Count     : 330
 //
 
@@ -21,5 +21,5 @@
 #include "SynTree/Statement.h"
 #include "SynTree/Expression.h"
-#include "parseutility.h"
+#include "parserutility.h"
 #include "Common/utility.h"
 
Index: src/Parser/TypedefTable.h
===================================================================
--- src/Parser/TypedefTable.h	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/Parser/TypedefTable.h	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:24:36 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Aug 15 18:25:04 2016
-// Update Count     : 28
+// Last Modified On : Wed Jun 28 21:06:19 2017
+// Update Count     : 32
 //
 
@@ -22,5 +22,5 @@
 #include <stack>
 
-#include "lex.h"
+#include "parser.hh"
 #include "parser.h"
 
Index: src/Parser/lex.h
===================================================================
--- src/Parser/lex.h	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ 	(revision )
@@ -1,50 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-// 
-// lex.h -- 
-// 
-// Author           : Peter A. Buhr
-// Created On       : Sat Sep 22 08:58:10 2001
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Aug 21 11:28:47 2016
-// Update Count     : 347
-//
-
-#ifndef PARSER_LEX_H
-#define PARSER_LEX_H
-
-int yylex();
-void yyerror( const char * );
-
-#include <string>
-#include "ParseNode.h"
-// External declarations for information sharing between lexer and scanner
-class TypedefTable;
-extern TypedefTable typedefTable;
-
-// current location in the input
-extern int yylineno;
-extern char *yyfilename;
-
-struct Location {
-    char *file;
-    int line;
-}; // Location
-
-struct Token {
-    std::string *str;									// must be pointer as used in union
-    Location loc;
-
-    operator std::string *() { return str; }
-}; // Token
-
-#endif // PARSER_LEX_H
-
-// Local Variables: //
-// tab-width: 4 //
-// mode: c++ //
-// compile-command: "make install" //
-// End: //
Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/Parser/lex.ll	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Tue May 30 22:00:48 2017
- * Update Count     : 527
+ * Last Modified On : Wed Jun 28 21:03:45 2017
+ * Update Count     : 529
  */
 
@@ -27,6 +27,4 @@
 #include <cstdio>										// FILENAME_MAX
 
-#include "lex.h"
-#include "parser.h"										// YACC generated definitions based on C++ grammar
 #include "ParseNode.h"
 #include "TypedefTable.h"
Index: src/Parser/module.mk
===================================================================
--- src/Parser/module.mk	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/Parser/module.mk	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
@@ -11,9 +11,7 @@
 ## Created On       : Sat May 16 15:29:09 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Tue Aug 16 17:28:34 2016
-## Update Count     : 101
+## Last Modified On : Wed Jun 28 21:09:38 2017
+## Update Count     : 103
 ###############################################################################
-
-BUILT_SOURCES = Parser/parser.h
 
 AM_YFLAGS = -d -t -v
@@ -29,5 +27,5 @@
        Parser/TypeData.cc \
        Parser/LinkageSpec.cc \
-       Parser/parseutility.cc
+       Parser/parserutility.cc
 
 MAINTAINERCLEANFILES += Parser/parser.output
Index: src/Parser/parser.hh
===================================================================
--- src/Parser/parser.hh	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
+++ src/Parser/parser.hh	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
@@ -0,0 +1,50 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+// 
+// lex.h -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Sat Sep 22 08:58:10 2001
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sun Aug 21 11:28:47 2016
+// Update Count     : 347
+//
+
+#ifndef PARSER_LEX_H
+#define PARSER_LEX_H
+
+int yylex();
+void yyerror( const char * );
+
+#include <string>
+#include "ParseNode.h"
+// External declarations for information sharing between lexer and scanner
+class TypedefTable;
+extern TypedefTable typedefTable;
+
+// current location in the input
+extern int yylineno;
+extern char *yyfilename;
+
+struct Location {
+    char *file;
+    int line;
+}; // Location
+
+struct Token {
+    std::string *str;									// must be pointer as used in union
+    Location loc;
+
+    operator std::string *() { return str; }
+}; // Token
+
+#endif // PARSER_LEX_H
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/Parser/parser.yy	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jun 12 12:59:00 2017
-// Update Count     : 2402
+// Last Modified On : Wed Jun 28 21:00:57 2017
+// Update Count     : 2413
 //
 
@@ -48,6 +48,4 @@
 #include <cstdio>
 #include <stack>
-#include "lex.h"
-#include "parser.h"
 #include "ParseNode.h"
 #include "TypedefTable.h"
@@ -88,4 +86,23 @@
 bool forall = false;									// aggregate have one or more forall qualifiers ?
 %}
+
+// Types declaration
+%union
+{
+	Token tok;
+	ParseNode * pn;
+	ExpressionNode * en;
+	DeclarationNode * decl;
+	DeclarationNode::Aggregate aggKey;
+	DeclarationNode::TypeClass tclass;
+	StatementNode * sn;
+	ConstantExpr * constant;
+	ForCtl * fctl;
+	LabelNode * label;
+	InitializerNode * in;
+	OperKinds op;
+	std::string * str;
+	bool flag;
+}
 
 //************************* TERMINAL TOKENS ********************************
@@ -139,23 +156,4 @@
 
 %token ATassign											// @=
-
-// Types declaration
-%union
-{
-	Token tok;
-	ParseNode * pn;
-	ExpressionNode * en;
-	DeclarationNode * decl;
-	DeclarationNode::Aggregate aggKey;
-	DeclarationNode::TypeClass tclass;
-	StatementNode * sn;
-	ConstantExpr * constant;
-	ForCtl * fctl;
-	LabelNode * label;
-	InitializerNode * in;
-	OperKinds op;
-	std::string * str;
-	bool flag;
-}
 
 %type<tok> identifier  no_attr_identifier  zero_one
@@ -959,5 +957,11 @@
 
 handler_clause:
-	CATCH '(' push push exception_declaration pop ')' compound_statement pop
+	// TEMPORARY, TEST EXCEPTIONS
+	CATCH '(' push push INTEGERconstant pop ')' compound_statement pop
+		{ $$ = new StatementNode( build_catch( CatchStmt::Terminate, nullptr, new ExpressionNode( build_constantInteger( *$5 ) ), $8 ) ); }
+	| handler_clause CATCH '(' push push INTEGERconstant pop ')' compound_statement pop
+		{ $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( CatchStmt::Terminate, nullptr, new ExpressionNode( build_constantInteger( *$6 ) ), $9 ) ) ); }
+
+	| CATCH '(' push push exception_declaration pop ')' compound_statement pop
 		{ $$ = new StatementNode( build_catch( CatchStmt::Terminate, $5, nullptr, $8 ) ); }
 	| handler_clause CATCH '(' push push exception_declaration pop ')' compound_statement pop
Index: src/Parser/parserutility.cc
===================================================================
--- src/Parser/parserutility.cc	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
+++ src/Parser/parserutility.cc	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
@@ -0,0 +1,36 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// parseutility.cc --
+//
+// Author           : Rodolfo G. Esteves
+// Created On       : Sat May 16 15:30:39 2015
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Jun 28 21:08:59 2017
+// Update Count     : 6
+//
+
+#include "parserutility.h"
+#include "SynTree/Type.h"
+#include "SynTree/Expression.h"
+
+// rewrite
+//    if ( x ) ...
+// as
+//    if ( (int)(x != 0) ) ...
+
+Expression *notZeroExpr( Expression *orig ) {
+	UntypedExpr *comparison = new UntypedExpr( new NameExpr( "?!=?" ) );
+	comparison->get_args().push_back( orig );
+	comparison->get_args().push_back( new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0", (unsigned long long int)0 ) ) );
+	return new CastExpr( comparison, new BasicType( Type::Qualifiers(), BasicType::SignedInt ) );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/Parser/parserutility.h
===================================================================
--- src/Parser/parserutility.h	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
+++ src/Parser/parserutility.h	(revision a67b60e61ca74c9f7db6048cc5cc87b412778d13)
@@ -0,0 +1,29 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// parseutility.h -- 
+//
+// Author           : Rodolfo G. Esteves
+// Created On       : Sat May 16 15:31:46 2015
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sat May 16 15:32:58 2015
+// Update Count     : 2
+//
+
+#ifndef PARSEUTILITY_H
+#define PARSEUTILITY_H
+
+#include "SynTree/SynTree.h"
+
+Expression *notZeroExpr( Expression *orig );
+
+#endif // PARSEUTILITY_H
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/Parser/parseutility.cc
===================================================================
--- src/Parser/parseutility.cc	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ 	(revision )
@@ -1,36 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// parseutility.cc --
-//
-// Author           : Rodolfo G. Esteves
-// Created On       : Sat May 16 15:30:39 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun 21 15:33:41 2017
-// Update Count     : 5
-//
-
-#include "parseutility.h"
-#include "SynTree/Type.h"
-#include "SynTree/Expression.h"
-
-// rewrite
-//    if ( x ) ...
-// as
-//    if ( (int)(x != 0) ) ...
-
-Expression *notZeroExpr( Expression *orig ) {
-	UntypedExpr *comparison = new UntypedExpr( new NameExpr( "?!=?" ) );
-	comparison->get_args().push_back( orig );
-	comparison->get_args().push_back( new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0", (unsigned long long int)0 ) ) );
-	return new CastExpr( comparison, new BasicType( Type::Qualifiers(), BasicType::SignedInt ) );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// mode: c++ //
-// compile-command: "make install" //
-// End: //
Index: src/Parser/parseutility.h
===================================================================
--- src/Parser/parseutility.h	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ 	(revision )
@@ -1,29 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// parseutility.h -- 
-//
-// Author           : Rodolfo G. Esteves
-// Created On       : Sat May 16 15:31:46 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sat May 16 15:32:58 2015
-// Update Count     : 2
-//
-
-#ifndef PARSEUTILITY_H
-#define PARSEUTILITY_H
-
-#include "SynTree/SynTree.h"
-
-Expression *notZeroExpr( Expression *orig );
-
-#endif // PARSEUTILITY_H
-
-// Local Variables: //
-// tab-width: 4 //
-// mode: c++ //
-// compile-command: "make install" //
-// End: //
