| 1494 | } |
| 1495 | |
| 1496 | data_ptr ExprParser::parse_expr() |
| 1497 | { |
| 1498 | data_ptr ldata = parse_oterm(); |
| 1499 | |
| 1500 | if (m_tok->get_type() == token_type_t::IF_TOKEN) |
| 1501 | { |
| 1502 | m_tok.match(token_type_t::IF_TOKEN); |
| 1503 | data_ptr predicate = parse_oterm(); |
| 1504 | m_tok.match(token_type_t::ELSE_TOKEN); |
| 1505 | data_ptr rdata = parse_oterm(); |
| 1506 | |
| 1507 | if (predicate->empty()) |
| 1508 | { |
| 1509 | ldata = rdata; |
| 1510 | } |
| 1511 | } |
| 1512 | |
| 1513 | return ldata; |
| 1514 | } |
| 1515 | |
| 1516 | ////////////////////////////////////////////////////////////////////////// |
| 1517 | // Node classes |