diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/op.cc | 12 | ||||
-rw-r--r-- | src/op.h | 1 | ||||
-rw-r--r-- | src/token.cc | 8 | ||||
-rw-r--r-- | src/token.h | 1 |
4 files changed, 9 insertions, 13 deletions
@@ -117,8 +117,6 @@ value_t expr_t::op_t::calc(scope_t& scope) break; } - case O_NEQ: - return left()->calc(scope) != right()->calc(scope); case O_EQ: return left()->calc(scope) == right()->calc(scope); case O_LT: @@ -260,15 +258,6 @@ bool expr_t::op_t::print(std::ostream& out, print_context_t& context) const out << ")"; break; - case O_NEQ: - out << "("; - if (left() && left()->print(out, context)) - found = true; - out << " != "; - if (right() && right()->print(out, context)) - found = true; - out << ")"; - break; case O_EQ: out << "("; if (left() && left()->print(out, context)) @@ -415,7 +404,6 @@ void expr_t::op_t::dump(std::ostream& out, const int depth) const case O_MUL: out << "O_MUL"; break; case O_DIV: out << "O_DIV"; break; - case O_NEQ: out << "O_NEQ"; break; case O_EQ: out << "O_EQ"; break; case O_LT: out << "O_LT"; break; case O_LTE: out << "O_LTE"; break; @@ -78,7 +78,6 @@ public: UNARY_OPERATORS, O_EQ, - O_NEQ, O_LT, O_LTE, O_GT, diff --git a/src/token.cc b/src/token.cc index 5c950d6d..66125b93 100644 --- a/src/token.cc +++ b/src/token.cc @@ -172,6 +172,14 @@ void expr_t::token_t::next(std::istream& in, const uint_least8_t pflags) length = 2; break; } + else if (c == '~') { + in.get(c); + symbol[1] = c; + symbol[2] = '\0'; + kind = NMATCH; + length = 2; + break; + } kind = EXCLAM; break; diff --git a/src/token.h b/src/token.h index 7516a87b..3663c104 100644 --- a/src/token.h +++ b/src/token.h @@ -55,6 +55,7 @@ struct expr_t::token_t : public noncopyable ASSIGN, // = MATCH, // =~ + NMATCH, // !~ MINUS, // - PLUS, // + STAR, // * |