+static std::string BinaryOperatorTypeStrings[] =\r
+{\r
+ "+", "-", "*", "/", "%", "&", "|", "^", "<", ">",\r
+ "<<",">>","&&","||","==","!=","<=",">=","&=","|=","^=",\r
+ "+=","-=","*=","/=","%=",\r
+ "<<=",">>=" };\r
+\r
+struct UnaryOperatorExpr\r
+{\r
+ UnaryOperatorType type;\r
+ std::shared_ptr<Expr> expr;\r
+};\r
+\r
+struct BinaryOperatorExpr\r
+{\r
+ BinaryOperatorType type;\r
+ std::shared_ptr<Expr> lexpr;\r
+ std::shared_ptr<Expr> rexpr;\r
+};\r
+\r
+struct TernaryOperatorExpr\r
+{\r
+ std::shared_ptr<Expr> lexpr;\r
+ std::shared_ptr<Expr> rexprTrue;\r
+ std::shared_ptr<Expr> rexprFalse;\r