Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision a5f0529a63fd135c870940242904abe5132d58e6)
+++ src/Parser/ExpressionNode.cc	(revision fcd17b2f5e850f4eee4f611d4b45b099ef8fb923)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Sat May 16 13:17:07 2015
-// Last Modified By : Andrew Beach
-// Last Modified On : Tus Jul 25 10:11:00 2017
-// Update Count     : 551
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Jul 27 12:10:10 2017
+// Update Count     : 556
 //
 
@@ -62,7 +62,18 @@
 	bool dec = true, Unsigned = false;					// decimal, unsigned constant
 	int size;											// 0 => int, 1 => long, 2 => long long
-	unsigned long long int v;								// converted integral value
+	unsigned long long int v;							// converted integral value
 	size_t last = str.length() - 1;						// last character of constant
-
+	Expression * ret;
+
+	// special constants
+	if ( str == "0" ) {
+		ret = new ConstantExpr( Constant( (Type *)new ZeroType( noQualifiers ), str, (unsigned long long int)0 ) );
+		goto CLEANUP;
+	} // if
+	if ( str == "1" ) {
+		ret = new ConstantExpr( Constant( (Type *)new OneType( noQualifiers ), str, (unsigned long long int)1 ) );
+		goto CLEANUP;
+	} // if
+	
 	if ( str[0] == '0' ) {								// octal/hex constant ?
 		dec = false;
@@ -118,5 +129,6 @@
 	} // if
 
-	Expression * ret = new ConstantExpr( Constant( new BasicType( noQualifiers, kind[Unsigned][size] ), str, v ) );
+	ret = new ConstantExpr( Constant( new BasicType( noQualifiers, kind[Unsigned][size] ), str, v ) );
+  CLEANUP:
 	delete &str;										// created by lex
 	return ret;
@@ -174,11 +186,4 @@
 	return ret;
 } // build_constantStr
-
-Expression *build_constantZeroOne( const std::string & str ) {
-	Expression * ret = new ConstantExpr( Constant( str == "0" ? (Type *)new ZeroType( noQualifiers ) : (Type*)new OneType( noQualifiers ), str,
-												   str == "0" ? (unsigned long long int)0 : (unsigned long long int)1 ) );
-	delete &str;										// created by lex
-	return ret;
-} // build_constantChar
 
 Expression * build_field_name_FLOATINGconstant( const std::string & str ) {
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision a5f0529a63fd135c870940242904abe5132d58e6)
+++ src/Parser/ParseNode.h	(revision fcd17b2f5e850f4eee4f611d4b45b099ef8fb923)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Sat May 16 13:28:16 2015
-// Last Modified By : Andrew Beach
-// Last Modified On : Tus Jul 25 10:09:00 2017
-// Update Count     : 787
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Jul 27 12:08:08 2017
+// Update Count     : 788
 //
 
@@ -159,5 +159,4 @@
 Expression * build_constantFloat( const std::string &str );
 Expression * build_constantChar( const std::string &str );
-Expression * build_constantZeroOne( const std::string &str );
 ConstantExpr * build_constantStr( const std::string &str );
 Expression * build_field_name_FLOATINGconstant( const std::string & str );
Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision a5f0529a63fd135c870940242904abe5132d58e6)
+++ src/Parser/lex.ll	(revision fcd17b2f5e850f4eee4f611d4b45b099ef8fb923)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Mon Jul 24 08:27:23 2017
- * Update Count     : 545
+ * Last Modified On : Thu Jul 27 12:05:50 2017
+ * Update Count     : 549
  */
 
@@ -288,6 +288,4 @@
 
 				/* numeric constants */
-"0"				{ NUMERIC_RETURN(ZERO); }				// CFA
-"1"				{ NUMERIC_RETURN(ONE); }				// CFA
 {decimal_constant} { NUMERIC_RETURN(INTEGERconstant); }
 {octal_constant} { NUMERIC_RETURN(INTEGERconstant); }
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision a5f0529a63fd135c870940242904abe5132d58e6)
+++ src/Parser/parser.yy	(revision fcd17b2f5e850f4eee4f611d4b45b099ef8fb923)
@@ -9,7 +9,7 @@
 // Author           : Peter A. Buhr
 // Created On       : Sat Sep  1 20:22:55 2001
-// Last Modified By : Andrew Beach
-// Last Modified On : Tus Jul 25 10:07:00 2017
-// Update Count     : 2464
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Jul 27 12:08:08 2017
+// Update Count     : 2467
 //
 
@@ -142,5 +142,4 @@
 // converted into the tuple index (.)(1). e.g., 3.x
 %token<tok>	REALDECIMALconstant	REALFRACTIONconstant	FLOATINGconstant
-%token<tok> ZERO				ONE						// CFA
 
 // multi-character operators
@@ -159,5 +158,5 @@
 %token ATassign											// @=
 
-%type<tok> identifier  no_attr_identifier  zero_one
+%type<tok> identifier  no_attr_identifier
 %type<tok> identifier_or_type_name  no_attr_identifier_or_type_name  attr_name
 %type<constant> string_literal
@@ -360,9 +359,4 @@
 	;
 
-zero_one:												// CFA
-	ZERO
-	| ONE
- 	;
-
 string_literal:
 	string_literal_list							{ $$ = build_constantStr( *$1 ); }
@@ -384,6 +378,4 @@
 	IDENTIFIER											// typedef name cannot be used as a variable name
 		{ $$ = new ExpressionNode( build_varref( $1 ) ); }
-	| zero_one
-		{ $$ = new ExpressionNode( build_constantZeroOne( *$1 ) ); }
 	| tuple
 	| '(' comma_expression ')'
@@ -484,8 +476,4 @@
 		{
 			$$ = new ExpressionNode( build_field_name_fraction_constants( build_varref( $1 ), $2 ) );
-		}
-	| zero_one fraction_constants
-		{
-			$$ = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *$1 ), $2 ) );
 		}
 	;
