From 0c8970584e2b3a09673c60f6a32c2f0ac51db230 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 7 Feb 2009 18:42:12 -0400 Subject: Removed handling of the unnused INDEX operator. --- src/op.cc | 18 ------------------ src/op.h | 22 +++------------------- 2 files changed, 3 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/op.cc b/src/op.cc index 53f5b9e6..dc17bce2 100644 --- a/src/op.cc +++ b/src/op.cc @@ -140,16 +140,6 @@ value_t expr_t::op_t::calc(scope_t& scope, ptr_op_t * context) return (right()->calc(scope, context).as_mask() .match(left()->calc(scope, context).to_string())); - case INDEX: { - const call_scope_t& args(downcast(scope)); - - if (as_index() < args.size()) - return args[as_index()]; - else - throw_(calc_error, "Reference to non-existing argument " << as_index()); - break; - } - case O_EQ: return left()->calc(scope, context) == right()->calc(scope, context); case O_LT: @@ -246,10 +236,6 @@ bool expr_t::op_t::print(std::ostream& out, const context_t& context) const out << ""; break; - case INDEX: - out << '@' << as_index(); - break; - case O_NOT: out << "!("; if (left() && left()->print(out, context)) @@ -437,10 +423,6 @@ void expr_t::op_t::dump(std::ostream& out, const int depth) const out << "IDENT: " << as_ident(); break; - case INDEX: - out << "INDEX: " << as_index(); - break; - case FUNCTION: out << "FUNCTION"; break; diff --git a/src/op.h b/src/op.h index ad900cc5..344c752f 100644 --- a/src/op.h +++ b/src/op.h @@ -67,19 +67,17 @@ private: mutable short refc; ptr_op_t left_; - variant // used by all binary operators - data; + function_t // used by terminal FUNCTION + > data; public: enum kind_t { // Constants VALUE, IDENT, - INDEX, CONSTANTS, @@ -138,20 +136,6 @@ public: assert(refc == 0); } - bool is_index() const { - return data.type() == typeid(std::size_t); - } - std::size_t& as_index_lval() { - assert(kind == INDEX); - return boost::get(data); - } - const std::size_t& as_index() const { - return const_cast(this)->as_index_lval(); - } - void set_index(std::size_t val) { - data = val; - } - bool is_value() const { if (kind == VALUE) { assert(data.type() == typeid(value_t)); -- cgit v1.2.3