+inline void printParseError(const char* message)
+{
+ globalErrorStream() << message;
+}
+
+#define PARSE_RETURN_FALSE_IF_FAIL(expression) if(!(expression)) { printParseError(FILE_LINE "\nparse failed: " #expression "\n"); return false; } else
+
+bool EntityClassDoom3_parseToken(Tokeniser& tokeniser)
+{
+ const char* token = tokeniser.getToken();
+ PARSE_RETURN_FALSE_IF_FAIL(token != 0);
+ return true;
+}
+
+bool EntityClassDoom3_parseToken(Tokeniser& tokeniser, const char* string)
+{
+ const char* token = tokeniser.getToken();
+ PARSE_RETURN_FALSE_IF_FAIL(token != 0);
+ return string_equal(token, string);
+}
+
+bool EntityClassDoom3_parseString(Tokeniser& tokeniser, const char*& s)
+{
+ const char* token = tokeniser.getToken();
+ PARSE_RETURN_FALSE_IF_FAIL(token != 0);
+ s = token;
+ return true;
+}
+
+bool EntityClassDoom3_parseString(Tokeniser& tokeniser, CopiedString& s)
+{
+ const char* token = tokeniser.getToken();
+ PARSE_RETURN_FALSE_IF_FAIL(token != 0);
+ s = token;
+ return true;
+}
+
+bool EntityClassDoom3_parseString(Tokeniser& tokeniser, StringOutputStream& s)
+{
+ const char* token = tokeniser.getToken();
+ PARSE_RETURN_FALSE_IF_FAIL(token != 0);
+ s << token;
+ return true;
+}
+
+bool EntityClassDoom3_parseUnknown(Tokeniser& tokeniser)