-enum class UnaryOperatorType {\r
- Plus, Minus, IncrementPre, DecrementPre, IncrementPost, DecrementPost, LogicalNot, BitwiseNot, Dereference, AddressOf\r
+enum class PrefixOperatorType\r
+{\r
+ Plus, Minus, Increment, Decrement,\r
+ LogicalNot, BitwiseNot, Dereference, AddressOf,\r
+ COUNT\r
+};\r
+static std::string PrefixOperatorTypeStrings[] =\r
+{\r
+ "+", "-", "++", "--", "!", "~", "*", "&" };\r
+\r
+struct PrefixOperatorExpr\r
+{\r
+ PrefixOperatorType type;\r
+ std::shared_ptr<Expr> expr;\r
+};\r
+\r
+enum class PostfixOperatorType\r
+{\r
+ Increment, Decrement,\r
+ COUNT\r
+};\r
+static std::string PostfixOperatorTypeStrings[] =\r
+{\r
+ "++", "--" };\r
+\r
+struct PostfixOperatorExpr\r
+{\r
+ PostfixOperatorType type;\r
+ std::shared_ptr<Expr> expr;\r