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