- #define AUTOTYPE_TEST_(AUTOSTR, AUTOCH, AUTORANGE, AUTOTYPE) { \
- \
- /* AUTORANGE */ \
- if (!AUTORANGE##_INVALIDATED && range_##AUTORANGE(AUTOCH)) { \
- if ((AUTOSTR).type == STR_TYPE_EMPTY) { \
- STR_TYPE_REMOVE_TYPE((AUTOSTR), STR_TYPE_EMPTY) \
- } \
- STR_TYPE_ADD_TYPE((AUTOSTR), STR_TYPE_##AUTOTYPE) \
- } \
- else { \
- if ((AUTOSTR).type != STR_TYPE_EMPTY) { \
- AUTORANGE##_INVALIDATED = true; \
- } \
- STR_TYPE_REMOVE_TYPE((AUTOSTR), STR_TYPE_##AUTOTYPE) \
- } \
- }