| 536 | } |
| 537 | |
| 538 | pair<value, token> parser:: |
| 539 | parse_variable_value (lexer& l, |
| 540 | scope& s, |
| 541 | const dir_path* b, |
| 542 | const variable& var) |
| 543 | { |
| 544 | path_ = &l.name (); |
| 545 | lexer_ = &l; |
| 546 | |
| 547 | root_ = nullptr; |
| 548 | scope_ = &s; |
| 549 | target_ = nullptr; |
| 550 | prerequisite_ = nullptr; |
| 551 | |
| 552 | pbase_ = b; |
| 553 | |
| 554 | token t; |
| 555 | type tt; |
| 556 | value rhs (parse_variable_value (t, tt)); |
| 557 | |
| 558 | value lhs; |
| 559 | apply_value_attributes (&var, lhs, move (rhs), type::assign); |
| 560 | |
| 561 | return make_pair (move (lhs), move (t)); |
| 562 | } |
| 563 | |
| 564 | names parser:: |
| 565 | parse_names (lexer& l, |