summaryrefslogtreecommitdiff
path: root/src/op.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/op.h')
-rw-r--r--src/op.h22
1 files changed, 3 insertions, 19 deletions
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<std::size_t, // used by constant INDEX
+ variant<ptr_op_t, // used by all binary operators
value_t, // used by constant VALUE
string, // used by constant IDENT
- function_t, // used by terminal FUNCTION
- ptr_op_t> // 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<std::size_t>(data);
- }
- const std::size_t& as_index() const {
- return const_cast<op_t *>(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));