interactive_t now takes an "X" for expressions

This commit is contained in:
John Wiegley 2010-05-08 02:01:59 -04:00
parent 8acdb85a91
commit 713f308d0f
2 changed files with 17 additions and 0 deletions

View file

@ -122,6 +122,10 @@ void interactive_t::verify_arguments() const
label = _("a scope");
wrong_arg = ! next_arg->is_scope();
break;
case 'X':
label = _("an expression");
wrong_arg = ! next_arg->is_expr();
break;
case 'S':
label = _("a sequence");
wrong_arg = false;

View file

@ -120,6 +120,19 @@ inline const value_t::sequence_t&
interactive_t::get<const value_t::sequence_t&>(std::size_t index) {
return value_at(index).as_sequence();
}
template <>
inline scope_t *
interactive_t::get<scope_t *>(std::size_t index) {
return value_at(index).as_scope();
}
template <>
inline expr_t& interactive_t::get<expr_t&>(std::size_t index) {
return value_at(index).as_expr_lval();
}
template <>
inline const expr_t& interactive_t::get<const expr_t&>(std::size_t index) {
return value_at(index).as_expr();
}
template <typename T>
class in_context_t : public interactive_t