• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/bmake/

Lines Matching refs:par

169 static CondResult CondParser_Or(CondParser *par, Boolean);
202 CondParser_PushBack(CondParser *par, Token t)
204 assert(par->curr == TOK_NONE);
207 par->curr = t;
211 CondParser_SkipWhitespace(CondParser *par)
213 cpp_skip_whitespace(&par->p);
231 ParseFuncArg(CondParser *par, const char **pp, Boolean doEval, const char *func,
293 par->printedError = TRUE;
413 CondParser_StringExpr(CondParser *par, const char *start,
427 nested_p = par->p;
439 par->printedError = TRUE;
453 par->p = nested_p;
460 if (atStart && is_separator(par->p[0]))
479 CondParser_String(CondParser *par, Boolean doEval, Boolean strictLHS,
489 *out_quoted = quoted = par->p[0] == '"';
490 start = par->p;
492 par->p++;
494 while (par->p[0] != '\0' && str.str == NULL) {
495 switch (par->p[0]) {
497 par->p++;
498 if (par->p[0] != '\0') {
499 Buf_AddByte(&buf, par->p[0]);
500 par->p++;
504 par->p++;
518 Buf_AddByte(&buf, par->p[0]);
519 par->p++;
522 if (!CondParser_StringExpr(par,
536 Buf_AddByte(&buf, par->p[0]);
537 par->p++;
549 If_Eval(const CondParser *par, const char *arg, size_t arglen)
551 Boolean res = par->evalBare(arglen, arg);
552 return par->negateEvalBare ? !res : res;
560 EvalNotEmpty(CondParser *par, const char *value, Boolean quoted)
576 if (par->plain)
579 return If_Eval(par, value, strlen(value));
605 EvalCompareStr(CondParser *par, const char *lhs,
611 par->printedError = TRUE;
622 EvalCompare(CondParser *par, const char *lhs, Boolean lhsQuoted,
631 return EvalCompareStr(par, lhs, op, rhs);
635 CondParser_ComparisonOp(CondParser *par, ComparisonOp *out_op)
637 const char *p = par->p;
661 par->p = p + 2;
664 par->p = p + 1;
677 CondParser_Comparison(CondParser *par, Boolean doEval)
688 CondParser_String(par, doEval, lhsStrict, &lhs, &lhsQuoted);
692 CondParser_SkipWhitespace(par);
694 if (!CondParser_ComparisonOp(par, &op)) {
696 t = ToToken(doEval && EvalNotEmpty(par, lhs.str, lhsQuoted));
700 CondParser_SkipWhitespace(par);
702 if (par->p[0] == '\0') {
705 par->printedError = TRUE;
709 CondParser_String(par, doEval, FALSE, &rhs, &rhsQuoted);
718 t = EvalCompare(par, lhs.str, lhsQuoted, op, rhs.str, rhsQuoted);
733 ParseEmptyArg(CondParser *par MAKE_ATTR_UNUSED, const char **pp,
778 CondParser_Func(CondParser *par, Boolean doEval, Token *out_token)
797 const char *cp = par->p;
809 arglen = fn->fn_parse(par, &cp, doEval, fn->fn_name, &arg);
811 par->p = cp;
819 par->p = cp;
831 CondParser_LeafToken(CondParser *par, Boolean doEval)
839 if (CondParser_Func(par, doEval, &t))
843 cp = par->p;
845 return CondParser_Comparison(par, doEval);
855 arglen = ParseFuncArg(par, &cp, doEval, NULL, &arg);
859 return CondParser_Comparison(par, doEval);
860 par->p = cp;
868 t = ToToken(!doEval || If_Eval(par, arg, arglen));
875 CondParser_Token(CondParser *par, Boolean doEval)
879 t = par->curr;
881 par->curr = TOK_NONE;
885 cpp_skip_hspace(&par->p);
887 switch (par->p[0]) {
890 par->p++;
894 par->p++;
898 par->p++;
899 if (par->p[0] == '|')
900 par->p++;
903 par->printedError = TRUE;
909 par->p++;
910 if (par->p[0] == '&')
911 par->p++;
914 par->printedError = TRUE;
920 par->p++;
931 return CondParser_Comparison(par, doEval);
934 return CondParser_LeafToken(par, doEval);
945 CondParser_Term(CondParser *par, Boolean doEval)
950 t = CondParser_Token(par, doEval);
957 res = CondParser_Or(par, doEval);
960 if (CondParser_Token(par, doEval) != TOK_RPAREN)
966 res = CondParser_Term(par, doEval);
982 CondParser_And(CondParser *par, Boolean doEval)
987 res = CondParser_Term(par, doEval);
991 op = CondParser_Token(par, doEval);
994 return CondParser_And(par, doEval);
995 if (CondParser_And(par, FALSE) == CR_ERROR)
1000 CondParser_PushBack(par, op);
1009 CondParser_Or(CondParser *par, Boolean doEval)
1014 res = CondParser_And(par, doEval);
1018 op = CondParser_Token(par, doEval);
1021 return CondParser_Or(par, doEval);
1022 if (CondParser_Or(par, FALSE) == CR_ERROR)
1027 CondParser_PushBack(par, op);
1032 CondParser_Eval(CondParser *par, Boolean *out_value)
1036 DEBUG1(COND, "CondParser_Eval: %s\n", par->p);
1038 res = CondParser_Or(par, TRUE);
1042 if (CondParser_Token(par, FALSE) != TOK_EOF)
1065 CondParser par;
1072 par.plain = plain;
1073 par.evalBare = evalBare;
1074 par.negateEvalBare = negate;
1075 par.p = cond;
1076 par.curr = TOK_NONE;
1077 par.printedError = FALSE;
1079 rval = CondParser_Eval(&par, out_value);
1081 if (rval == COND_INVALID && eprint && !par.printedError)