NOT: NOT atom | atom */
| 1240 | |
| 1241 | /* NOT: NOT atom | atom */ |
| 1242 | static cbm_expr_t *parse_not_expr(parser_t *p) { // NOLINT(misc-no-recursion) |
| 1243 | if (match(p, TOK_NOT)) { |
| 1244 | if (!parse_depth_enter(p)) { |
| 1245 | return NULL; |
| 1246 | } |
| 1247 | cbm_expr_t *child = parse_not_expr(p); |
| 1248 | parse_depth_leave(p); |
| 1249 | return child ? expr_not(child) : NULL; |
| 1250 | } |
| 1251 | return parse_atom_expr(p); |
| 1252 | } |
| 1253 | |
| 1254 | /* AND: not (AND not)* */ |
| 1255 | static cbm_expr_t *parse_and_expr(parser_t *p) { // NOLINT(misc-no-recursion) |
no test coverage detected