15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2009 The RE2 Authors. All Rights Reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// license that can be found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Simplified version of Google's command line flags. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Does not support parsing the command line. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If you want to do that, see 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// http://code.google.com/p/google-gflags 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef RE2_UTIL_FLAGS_H__ 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define RE2_UTIL_FLAGS_H__ 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DEFINE_flag(type, name, deflt, desc) \ 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) namespace re2 { type FLAGS_##name = deflt; } 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DECLARE_flag(type, name) \ 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) namespace re2 { extern type FLAGS_##name; } 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DEFINE_bool(name, deflt, desc) DEFINE_flag(bool, name, deflt, desc) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DEFINE_int32(name, deflt, desc) DEFINE_flag(int32, name, deflt, desc) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DEFINE_string(name, deflt, desc) DEFINE_flag(string, name, deflt, desc) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DECLARE_bool(name) DECLARE_flag(bool, name) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DECLARE_int32(name) DECLARE_flag(int32, name) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DECLARE_string(name) DECLARE_flag(string, name) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // RE2_UTIL_FLAGS_H__ 28