MCPcopy Create free account
hub / github.com/build2/build2 / parse_eval_comp

Method parse_eval_comp

libbuild2/parser.cxx:7474–7507  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7472 }
7473
7474 value parser::
7475 parse_eval_comp (token& t, type& tt, pattern_mode pmode, bool first)
7476 {
7477 // enter: first token of LHS (lexed with enabled attributes)
7478 // leave: next token after last RHS
7479
7480 // Left-associative: parse in a loop for as long as we can.
7481 //
7482 value lhs (parse_eval_value (t, tt, pmode, first));
7483
7484 while (tt == type::equal ||
7485 tt == type::not_equal ||
7486 tt == type::less ||
7487 tt == type::less_equal ||
7488 tt == type::greater ||
7489 tt == type::greater_equal)
7490 {
7491 type op (tt);
7492 location l (get_location (t));
7493
7494 next_with_attributes (t, tt); // Recognize attributes before value.
7495
7496 value rhs (parse_eval_value (t, tt, pmode));
7497
7498 if (pre_parse_)
7499 continue;
7500
7501 // Store the result as a bool value.
7502 //
7503 lhs = value (compare_values (op, lhs, rhs, l));
7504 }
7505
7506 return lhs;
7507 }
7508
7509 value parser::
7510 parse_eval_value (token& t, type& tt, pattern_mode pmode, bool first)

Callers

nothing calls this directly

Calls 1

get_locationFunction · 0.85

Tested by

no test coverage detected