Added valexpr vars for accessing item position

- filename
 - beg_line
 - beg_pos
 - end_line
 - end_pos
This commit is contained in:
John Wiegley 2009-02-19 16:22:31 -04:00
parent 1c616f8626
commit d67c9fee0f

View file

@ -209,6 +209,10 @@ namespace {
return false;
}
value_t get_pathname(item_t& item) {
return string_value(item.pathname.string());
}
value_t get_beg_pos(item_t& item) {
return long(item.beg_pos);
}
@ -261,6 +265,13 @@ value_t get_comment(item_t& item)
expr_t::ptr_op_t item_t::lookup(const string& name)
{
switch (name[0]) {
case 'b':
if (name == "beg_line")
return WRAP_FUNCTOR(get_wrapper<&get_beg_line>);
else if (name == "beg_pos")
return WRAP_FUNCTOR(get_wrapper<&get_beg_pos>);
break;
case 'c':
if (name == "cleared")
return WRAP_FUNCTOR(get_wrapper<&get_cleared>);
@ -275,6 +286,18 @@ expr_t::ptr_op_t item_t::lookup(const string& name)
return WRAP_FUNCTOR(get_wrapper<&get_depth>);
break;
case 'e':
if (name == "end_line")
return WRAP_FUNCTOR(get_wrapper<&get_end_line>);
else if (name == "end_pos")
return WRAP_FUNCTOR(get_wrapper<&get_end_pos>);
break;
case 'f':
if (name == "filename")
return WRAP_FUNCTOR(get_wrapper<&get_pathname>);
break;
case 'h':
if (name == "has_tag")
return WRAP_FUNCTOR(ledger::has_tag);