codegen.cpp 868 B

123456789101112131415161718192021222324252627282930313233343536
  1. // (C) Copyright Vladimir Prus, 2003
  2. // Distributed under the Boost Software License, Version 1.0. (See
  3. // accompanying file LICENSE.txt or copy at
  4. // https://www.bfgroup.xyz/b2/LICENSE.txt)
  5. // Please see 'usage.verbatim' file for usage notes.
  6. #include <iostream>
  7. #include <string>
  8. #include <cstring>
  9. using std::cout;
  10. using std::string;
  11. using std::strlen;
  12. extern const char class_template[];
  13. extern const char usage[];
  14. int main(int ac, char* av[])
  15. {
  16. if (av[1]) {
  17. string class_name = av[1];
  18. string s = class_template;
  19. string::size_type n;
  20. while((n = s.find("%class_name%")) != string::npos) {
  21. s.replace(n, strlen("%class_name%"), class_name);
  22. }
  23. std::cout << "Output is:\n";
  24. std::cout << s << "\n";
  25. return 0;
  26. } else {
  27. std::cout << usage << "\n";
  28. return 1;
  29. }
  30. }