- out << *e._dot.expr << "." << e._dot.ident.name; break;\r
- case ExprType::UnaryOperator:\r
- out << e._unaryOperator; break;\r
- case ExprType::BinaryOperator:\r
- out << e._binaryOperator; break;\r
- case ExprType::TernaryOperator:\r
- out << e._ternaryOperator; break;\r
+ out << *e._dot.expr << "." << e._dot.identifier; break;\r
+ case ExprType::PrefixOp:\r
+ out << PrefixOperatorTypeStrings[(int)e._prefixOp.type] << *e._prefixOp.expr; break;\r
+ case ExprType::PostfixOp:\r
+ out << *e._postfixOp.expr << PostfixOperatorTypeStrings[(int)e._postfixOp.type]; break;\r
+ case ExprType::BinaryOp:\r
+ out << *e._binaryOp.lexpr <<\r
+ " " << BinaryOperatorTypeStrings[(int)e._binaryOp.type] << " " <<\r
+ *e._binaryOp.rexpr; break;\r
+ case ExprType::TernaryOp:\r
+ out << *e._ternaryOp.lexpr <<\r
+ " ? " << *e._ternaryOp.rexprTrue <<\r
+ " : " << *e._ternaryOp.rexprFalse; break;\r
+ case ExprType::Bracket:\r
+ out << *e._brackets.lexpr << "[" << *e._brackets.rexpr << "]"; break;\r
+ case ExprType::Identifier:\r
+ out << vectorStr(e._identifier.namespacePrefixes, "_", true) << e._identifier.identifier; break;\r