Implemented expr_context.
This commit is contained in:
parent
19694cf2a2
commit
011f35b730
4 changed files with 12 additions and 6 deletions
|
|
@ -190,4 +190,9 @@ std::ostream& operator<<(std::ostream& out, const expr_t& expr) {
|
|||
return out;
|
||||
}
|
||||
|
||||
string expr_context(const expr_t& expr)
|
||||
{
|
||||
return expr ? op_context(expr.ptr) : "<empty expression>";
|
||||
}
|
||||
|
||||
} // namespace ledger
|
||||
|
|
|
|||
|
|
@ -70,6 +70,8 @@ class expr_t
|
|||
struct token_t;
|
||||
class parser_t;
|
||||
|
||||
friend string expr_context(const expr_t& expr);
|
||||
|
||||
public:
|
||||
class op_t;
|
||||
typedef intrusive_ptr<op_t> ptr_op_t;
|
||||
|
|
@ -141,10 +143,7 @@ public:
|
|||
|
||||
std::ostream& operator<<(std::ostream& out, const expr_t& expr);
|
||||
|
||||
inline string expr_context(const expr_t& expr) {
|
||||
// jww (2009-02-01): NYI
|
||||
return "EXPR";
|
||||
}
|
||||
string expr_context(const expr_t& expr);
|
||||
|
||||
} // namespace ledger
|
||||
|
||||
|
|
|
|||
|
|
@ -490,7 +490,8 @@ void expr_t::op_t::dump(std::ostream& out, const int depth) const
|
|||
}
|
||||
}
|
||||
|
||||
string op_context(const expr_t::ptr_op_t op, const expr_t::ptr_op_t goal)
|
||||
string op_context(const expr_t::ptr_op_t op,
|
||||
const expr_t::ptr_op_t goal)
|
||||
{
|
||||
ostream_pos_type start_pos, end_pos;
|
||||
expr_t::op_t::context_t context(op, goal, &start_pos, &end_pos);
|
||||
|
|
|
|||
3
src/op.h
3
src/op.h
|
|
@ -328,7 +328,8 @@ inline expr_t::ptr_op_t expr_t::op_t::wrap_functor(const function_t& fobj) {
|
|||
#define MAKE_FUNCTOR(x) expr_t::op_t::wrap_functor(bind(&x, this, _1))
|
||||
#define WRAP_FUNCTOR(x) expr_t::op_t::wrap_functor(x)
|
||||
|
||||
string op_context(const expr_t::ptr_op_t op, const expr_t::ptr_op_t goal);
|
||||
string op_context(const expr_t::ptr_op_t op,
|
||||
const expr_t::ptr_op_t goal = NULL);
|
||||
|
||||
} // namespace ledger
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue