3 #ifndef UGDK_UTIL_GDD_READER_H_
4 #define UGDK_UTIL_GDD_READER_H_
20 Reader(FILE *file) : file_path_(
"<unknown>"), file_(file), line_(1) {}
28 size_t line() {
return line_; }
31 file_ = fopen(file_path_.c_str(),
"r");
36 int token = fgetc(file_);
44 while ((token = fgetc(file_)) !=
'\n' && token != EOF);
50 while ((token = fgetc(file_)) ==
' ' || token ==
'\t');
71 while ((token = fgetc(file_)) ==
' ' || token ==
'\t');
73 return !
IsReserved(token) && token !=
'\n' && token !=
'\r' && token != EOF;
76 bool Name(std::string &name) {
82 name.push_back(static_cast<char>(token));
84 name.push_back(static_cast<char>(token));
89 void Value(std::string &value) {
92 value.push_back(static_cast<char>(token));
98 std::string value =
"";
100 if (value.length() == 0)
break;
101 values.push_back(value);
107 std::string file_path_;