FAIL_IF
FAIL_IF("TIMESTAMP", *msg != '-' && *msg != '+');
FAIL_IF(field, var == msg); \
FAIL_IF("STRUCTURED-NAME", start == msg); \
FAIL_IF("STRUCTURED-NAME",
FAIL_IF("STRUCTURED-NAME",
FAIL_IF(field, *msg != sep); \
FAIL_IF("TIMESTAMP", *msg < '0' || *msg > '9'); \
FAIL_IF("TIMESTAMP", v < min || v > max); \