rem: advance (0); value = TRUTH_AND (value, and ());
add: value &= term (); if (! (pos < argc && STREQ (argv[pos], "-a"))) return value; advance (false);
context: and (void){  int value;  value = term ();  while ((pos < argc) && strcmp (argv[pos], "-a") == 0)    {      advance (0);      value = TRUTH_AND (value, and ());    }  return (TRUE == value);}