| 324 | } |
| 325 | |
| 326 | static bool |
| 327 | db_logical_and_expr( |
| 328 | db_expr_t *valuep) |
| 329 | { |
| 330 | db_expr_t lhs, rhs; |
| 331 | int t; |
| 332 | |
| 333 | if (!db_logical_relation_expr(&lhs)) |
| 334 | return (false); |
| 335 | |
| 336 | t = db_read_token(); |
| 337 | while (t == tLOG_AND) { |
| 338 | if (!db_logical_relation_expr(&rhs)) { |
| 339 | db_printf("Expression syntax error after '%s'\n", "&&"); |
| 340 | db_error(NULL); |
| 341 | /*NOTREACHED*/ |
| 342 | } |
| 343 | lhs = (lhs && rhs); |
| 344 | t = db_read_token(); |
| 345 | } |
| 346 | db_unread_token(t); |
| 347 | *valuep = lhs; |
| 348 | return (true); |
| 349 | } |
| 350 | |
| 351 | static bool |
| 352 | db_logical_or_expr( |
no test coverage detected