Index: src/CodeGen/OperatorTable.cc
===================================================================
--- src/CodeGen/OperatorTable.cc	(revision 78a0b882ee7cc867a4e3e1ce2e54da848ab13e10)
+++ src/CodeGen/OperatorTable.cc	(revision bc3127d4673a19c1f70b8cc4cc5902edde3e61d8)
@@ -19,4 +19,5 @@
 
 #include "OperatorTable.h"
+#include "Common/utility.h"
 
 namespace CodeGen {
@@ -65,7 +66,5 @@
 			{	"?^=?",		"^=",	"_operator_bitxorassign",		OT_INFIXASSIGN		},
 			{	"?|=?",		"|=",	"_operator_bitorassign",		OT_INFIXASSIGN		},
-			{	"&&",		"&&",	"&&",							OT_LABELADDRESS		},
-			{	"0",		"0",	"_constant_zero",				OT_CONSTANT			},
-			{	"1",		"1",	"_constant_one",				OT_CONSTANT			}
+			{	"&&",		"&&",	"&&",							OT_LABELADDRESS		}
 		};
 
@@ -86,6 +85,15 @@
 			initialize();
 		} // if
+
 		std::map< std::string, OperatorInfo >::const_iterator i = table.find( funcName );
 		if ( i == table.end() ) {
+			if ( isPrefix( funcName, "?`" ) ) {
+				// handle literal suffixes, which are user-defined postfix operators
+				info.inputName = funcName;
+				info.symbol = funcName.substr(2);
+				info.outputName = toString( "__operator_literal_", info.symbol );
+				info.type = OT_POSTFIX;
+				return true;
+			}
 			return false;
 		} else {
Index: src/Common/utility.h
===================================================================
--- src/Common/utility.h	(revision 78a0b882ee7cc867a4e3e1ce2e54da848ab13e10)
+++ src/Common/utility.h	(revision bc3127d4673a19c1f70b8cc4cc5902edde3e61d8)
@@ -222,4 +222,11 @@
 	std::cerr << "Warning: ";
 	warn_single( params... );
+}
+
+/// determines if `pref` is a prefix of `str`
+static inline bool isPrefix( const std::string & str, const std::string & pref ) {
+	if ( pref.size() > str.size() ) return false;
+	auto its = std::mismatch( pref.begin(), pref.end(), str.begin() );
+	return its.first == pref.end();
 }
 
Index: src/GenPoly/Box.cc
===================================================================
--- src/GenPoly/Box.cc	(revision 78a0b882ee7cc867a4e3e1ce2e54da848ab13e10)
+++ src/GenPoly/Box.cc	(revision bc3127d4673a19c1f70b8cc4cc5902edde3e61d8)
@@ -1298,11 +1298,4 @@
 		}
 
-		/// determines if `pref` is a prefix of `str`
-		bool isPrefix( const std::string & str, const std::string & pref ) {
-			if ( pref.size() > str.size() ) return false;
-			auto its = std::mismatch( pref.begin(), pref.end(), str.begin() );
-			return its.first == pref.end();
-		}
-
 		DeclarationWithType * Pass2::mutate( FunctionDecl *functionDecl ) {
 			functionDecl = safe_dynamic_cast< FunctionDecl * > ( handleDecl( functionDecl ) );
