Prevent unexpanded macros from being expanded again in the future.

With this fix, tests 37 - 39 now pass.
diff --git a/glcpp-parse.y b/glcpp-parse.y
index 5b792a9..ec104330 100644
--- a/glcpp-parse.y
+++ b/glcpp-parse.y
@@ -676,8 +676,17 @@
 
 	/* Finally, don't expand this macro if we're already actively
 	 * expanding it, (to avoid infinite recursion). */
-	if (_string_list_contains (parser->active, identifier, NULL)) {
-		_token_list_append (result, token);
+	if (_string_list_contains (parser->active, identifier, NULL))
+	{
+		/* We change the token type here from IDENTIFIER to
+		 * OTHER to prevent any future expansion of this
+		 * unexpanded token. */
+		char *str;
+		token_t *new_token;
+
+		str = xtalloc_strdup (result, token->value.str);
+		new_token = _token_create_str (result, OTHER, str);
+		_token_list_append (result, new_token);
 		return 0;
 	}