1 // Copyright 2009 The RE2 Authors. All Rights Reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 #ifndef UTIL_FLAGS_H_ 6 #define UTIL_FLAGS_H_ 7 8 // Simplified version of Google's command line flags. 9 // Does not support parsing the command line. 10 // If you want to do that, see 11 // https://gflags.github.io/gflags/ 12 13 #include <stdint.h> 14 15 #define DEFINE_flag(type, name, deflt, desc) \ 16 namespace re2 { type FLAGS_##name = deflt; } 17 18 #define DECLARE_flag(type, name) \ 19 namespace re2 { extern type FLAGS_##name; } 20 21 #define DEFINE_bool(name, deflt, desc) DEFINE_flag(bool, name, deflt, desc) 22 #define DEFINE_int32(name, deflt, desc) DEFINE_flag(int32_t, name, deflt, desc) 23 #define DEFINE_string(name, deflt, desc) DEFINE_flag(string, name, deflt, desc) 24 25 #define DECLARE_bool(name) DECLARE_flag(bool, name) 26 #define DECLARE_int32(name) DECLARE_flag(int32_t, name) 27 #define DECLARE_string(name) DECLARE_flag(string, name) 28 29 #endif // UTIL_FLAGS_H_ 30