diff --git a/gdb-port/ast.py b/gdb-port/ast.py
index b3cb498afc633533b1f120e4f729dd07783bdefb..8c72448cb1db0f1815e85dfc1c12ec62b35c99ae 100644
--- a/gdb-port/ast.py
+++ b/gdb-port/ast.py
@@ -51,6 +51,7 @@ class HParsedToken:
 
 	#TT_MAX = gdb.lookup_type("enum HTokenType_").fields()[-1].enumval
 	# Will be cached on the first lookup
+	# Annoyingly, the numerical value for the first custom token type == TT_MAX
 	TT_MAX = None
 	# Enum value hardcoded for convenience of implementation
 	TT_SEQUENCE = 16
@@ -94,10 +95,13 @@ class HParsedToken:
 		tok = gdb.Value(self.address).cast(__class__.HParsedToken_t_p)
 		return tok
 
+#TODO: how to tell when token_type == TT_MAX is meant to be TT_MAX, and when it's meant to be a custom type?
 	def has_token_data(self):
 		if not __class__.no_token_data:
-			__class__.no_token_data = [v.enumval for v in gdb.lookup_type("enum HTokenType_").fields() if v.name in ["TT_INVALID", "TT_RESERVED_1", "TT_ERR", "TT_NONE", "TT_MAX"]]
-		no_token_data = __class__.no_token_data or [v.enumval for v in gdb.lookup_type("enum HTokenType_").fields() if v.name in ["TT_INVALID", "TT_RESERVED_1", "TT_ERR", "TT_NONE", "TT_MAX"]]
+			#__class__.no_token_data = [v.enumval for v in gdb.lookup_type("enum HTokenType_").fields() if v.name in ["TT_INVALID", "TT_RESERVED_1", "TT_ERR", "TT_NONE", "TT_MAX"]]
+			__class__.no_token_data = [v.enumval for v in gdb.lookup_type("enum HTokenType_").fields() if v.name in ["TT_INVALID", "TT_RESERVED_1", "TT_ERR", "TT_NONE"]]
+		#no_token_data = __class__.no_token_data or [v.enumval for v in gdb.lookup_type("enum HTokenType_").fields() if v.name in ["TT_INVALID", "TT_RESERVED_1", "TT_ERR", "TT_NONE", "TT_MAX"]]
+		no_token_data = __class__.no_token_data or [v.enumval for v in gdb.lookup_type("enum HTokenType_").fields() if v.name in ["TT_INVALID", "TT_RESERVED_1", "TT_ERR", "TT_NONE"]]
 		return self.token_type not in no_token_data
 
 	#TODO: return make HCountedArray from data, if this is a sequence