/* This file was generated by ConfigHeader using the Zig Build System. */
/* Some Comment */
int foo();
// empty strings are preserved

// line with misc content is preserved
#define KEPT_VALUE no substitution

// empty @ sigils are preserved
#define AT_SIGIL_1 @
#define AT_SIGIL_2 @@
#define AT_SIGIL_3 @@@
#define AT_SIGIL_4 @@@@

// simple substitution
#define SIMPLE_UNDEFINED 
#define SIMPLE_DEFINED 
#define SIMPLE_BOOL_TRUE 1
#define SIMPLE_BOOL_FALSE 0
#define SIMPLE_INTEGER 42
#define SIMPLE_STRING text

// double packed substitution
#define DOUBLE_PACKED texttext

// triple packed substitution
#define TRIPLE_PACKED text42text

// double separated substitution
#define DOUBLE_SEPARATED 42.42

// triple separated substitution
#define TRIPLE_SEPARATED 42.1.42

// misc prefix is preserved
#define MISC_PREFIX false is 0

// misc suffix is preserved
#define MISC_SUFFIX 1 is true

// surrounding content is preserved
#define SURROUNDING what is 6*7? 42!

// incomplete key is preserved
#define INCOMPLETE_KEY @undefined

// @-vars resolved only when they wrap valid characters, otherwise considered literals
#define DOUBLE_WRAPPED @text@

// expanded variables are considered strings after expansion
#define EXPANDED_STRING @string@

// variable name with underscores
#define UNDERSCORED_VAR value

// backslash before at-sigil does not prevent resolution
#define BACKSLASH_AT \text

// value that is an at-sign itself
#define AT_SIGN_VALUE @

// incomplete key mid-line is preserved, trailing content kept
#define INCOMPLETE_MID @incomplete trailing content
