- debugmsg("relational duplicate",LOGLEVEL_DUPLICATE);
- return new relational(*this);
+ debugmsg("relational print",LOGLEVEL_PRINT);
+
+ if (is_of_type(c, print_tree)) {
+
+ inherited::print(c, level);
+
+ } else {
+
+ if (precedence <= level)
+ c.s << "(";
+ lh.print(c, precedence);
+ switch (o) {
+ case equal:
+ c.s << "==";
+ break;
+ case not_equal:
+ c.s << "!=";
+ break;
+ case less:
+ c.s << "<";
+ break;
+ case less_or_equal:
+ c.s << "<=";
+ break;
+ case greater:
+ c.s << ">";
+ break;
+ case greater_or_equal:
+ c.s << ">=";
+ break;
+ default:
+ c.s << "(INVALID RELATIONAL OPERATOR)";
+ }
+ rh.print(c, precedence);
+ if (precedence <= level)
+ c.s << ")";
+ }