ifndef SASS_OPERATORS_H define SASS_OPERATORS_H

include “values.hpp” include “sass/values.h”

namespace Sass {

namespace Operators {

  // equality operator using AST Node operator==
  bool eq(ExpressionObj, ExpressionObj);
  bool neq(ExpressionObj, ExpressionObj);
  // specific operators based on cmp and eq
  bool lt(ExpressionObj, ExpressionObj);
  bool gt(ExpressionObj, ExpressionObj);
  bool lte(ExpressionObj, ExpressionObj);
  bool gte(ExpressionObj, ExpressionObj);
  // arithmetic for all the combinations that matter
  Value* op_strings(Sass::Operand, Value&, Value&, struct Sass_Inspect_Options opt, const SourceSpan& pstate, bool delayed = false);
  Value* op_colors(enum Sass_OP, const Color_RGBA&, const Color_RGBA&, struct Sass_Inspect_Options opt, const SourceSpan& pstate, bool delayed = false);
  Value* op_numbers(enum Sass_OP, const Number&, const Number&, struct Sass_Inspect_Options opt, const SourceSpan& pstate, bool delayed = false);
  Value* op_number_color(enum Sass_OP, const Number&, const Color_RGBA&, struct Sass_Inspect_Options opt, const SourceSpan& pstate, bool delayed = false);
  Value* op_color_number(enum Sass_OP, const Color_RGBA&, const Number&, struct Sass_Inspect_Options opt, const SourceSpan& pstate, bool delayed = false);

};

}

endif