Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void ParseHeader(const char* healderFileName, const char* regExp, const char* conventions)
- {
- char* h = (char*)LoadFile(healderFileName);
- std::string str = h;
- std::regex pattern(regExp);
- auto funcBegin = std::sregex_iterator(str.begin(), str.end(), pattern);
- auto End = std::sregex_iterator();
- int dist = std::distance(funcBegin, End);
- printf("%d functions found in %s\n", dist, healderFileName);
- int i = 0;
- for (auto it = funcBegin; it != End; it++) {
- std::smatch m = *it;
- if (m.size() < 4) {
- continue;
- }
- GLFunc func;
- func.name = m[2].str();
- func.decl = m[1].str() + " (" + conventions + "*" + m[2].str() + ")" + m[3].str();
- func.caster = m[1].str() + " (" + conventions + "*)" + m[3].str();
- glFuncs.push_back(func);
- printf("\r%d/%d", ++i, dist);
- }
- printf("\n");
- free(h);
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- GoMyDir();
- ParseHeader("glheaders/glcorearb.h", "^GLAPI\\s+(\\w+)\\s+APIENTRY\\s+(gl\\w+)\\s*(\\(.*\\))", "APIENTRY");
- ParseHeader("glheaders/wglext.h", "^(\\w+(?:\\s+\\w+)*)\\s+WINAPI\\s+(wgl\\w+)\\s*(\\(.*\\))", "WINAPI");
- CodeGen();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement