From 0e57ccbbc2de9eeaeecd699575aab22a3f555619 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 3 Apr 2012 16:04:52 -0700 Subject: Start automatically generating operator<>').search(rest) + if m_comment: + enum_text = m_comment.group(1) + + _ENUMS[enum_name].append((enum_value, enum_text)) + +def main(): + header_files = [] + for header_file in sys.argv[1:]: + header_files.append(header_file) + ProcessFile(header_file) + + print '#include ' + print + + for header_file in header_files: + print '#include "%s"' % header_file + + print + print 'namespace art {' + print + + for enum_name in _ENUMS: + print '// This was automatically generated by %s --- do not edit!' % sys.argv[0] + print 'std::ostream& operator<<(std::ostream& os, const %s& rhs) {' % enum_name + print ' switch (rhs) {' + for (enum_value, enum_text) in _ENUMS[enum_name]: + print ' case %s: os << "%s"; break;' % (enum_value, enum_text) + print ' default: os << "%s[" << static_cast(rhs) << "]"; break;' % enum_name + print ' }' + print ' return os;' + print '}' + print + + print '} // namespace art' + + sys.exit(0) + + +if __name__ == '__main__': + main() -- cgit v1.2.3