past the end of the argument list. This check is supressed if the #define advance(f) do { ++pos; if (f && pos >= argc) beyond (); } while (0) if (pos >= argc) if (pos >= argc) else if (argv[pos][0] != ')' || argv[pos][1]) /* ( */ if ((pos + 3 <= argc) && test_binop (argv[pos + 1])) if (test_unop (argv[pos])) if (pos < argc) if (legal_number (argv[pos], &r)) if (sh_stat (arg, &stat_buf) < 0) if (test_unop (argv[pos])) if (test_binop (argv[pos+1])) else if (ANDOR (argv[pos+1])) if (margv[margc] && (margv[margc][0] != ']' || margv[margc][1])) if (margc < 2) if (pos >= argc) if (pos != argc)