Advertisement
Guest User

Untitled

a guest
Jan 29th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. void ParseHeader(const char* healderFileName, const char* regExp, const char* conventions)
  2. {
  3. char* h = (char*)LoadFile(healderFileName);
  4. std::string str = h;
  5. std::regex pattern(regExp);
  6. auto funcBegin = std::sregex_iterator(str.begin(), str.end(), pattern);
  7. auto End = std::sregex_iterator();
  8. int dist = std::distance(funcBegin, End);
  9. printf("%d functions found in %s\n", dist, healderFileName);
  10. int i = 0;
  11. for (auto it = funcBegin; it != End; it++) {
  12. std::smatch m = *it;
  13. if (m.size() < 4) {
  14. continue;
  15. }
  16. GLFunc func;
  17. func.name = m[2].str();
  18. func.decl = m[1].str() + " (" + conventions + "*" + m[2].str() + ")" + m[3].str();
  19. func.caster = m[1].str() + " (" + conventions + "*)" + m[3].str();
  20. glFuncs.push_back(func);
  21. printf("\r%d/%d", ++i, dist);
  22. }
  23. printf("\n");
  24. free(h);
  25. }
  26.  
  27. int _tmain(int argc, _TCHAR* argv[])
  28. {
  29. GoMyDir();
  30. ParseHeader("glheaders/glcorearb.h", "^GLAPI\\s+(\\w+)\\s+APIENTRY\\s+(gl\\w+)\\s*(\\(.*\\))", "APIENTRY");
  31. ParseHeader("glheaders/wglext.h", "^(\\w+(?:\\s+\\w+)*)\\s+WINAPI\\s+(wgl\\w+)\\s*(\\(.*\\))", "WINAPI");
  32. CodeGen();
  33. return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement