]> git.saurik.com Git - cycript.git/blobdiff - Syntax.hpp
Move all "regular" LexPushInOff/LexPopIn to lexer.
[cycript.git] / Syntax.hpp
index ec94441cce74905a40cefb31567253aceb063e00..f11c2f29b8632c5363e28d176ed3d358492aa2ca 100644 (file)
@@ -896,6 +896,12 @@ struct CYThis :
 struct CYBoolean :
     CYTrivial
 {
+    CYPrecedence(4)
+
+    virtual bool RightHand() const {
+        return true;
+    }
+
     virtual bool Value() const = 0;
     virtual void Output(CYOutput &out, CYFlags flags) const;
 };
@@ -1021,8 +1027,8 @@ struct CYAssignment :
     {
     }
 
-    void SetLeft(CYTarget *lhs) {
-        lhs_ = lhs;
+    void SetRight(CYExpression *rhs) {
+        rhs_ = rhs;
     }
 
     virtual const char *Operator() const = 0;
@@ -1261,6 +1267,8 @@ struct CYProperty :
     {
     }
 
+    virtual bool Update() const;
+
     CYProperty *ReplaceAll(CYContext &context, CYBuilder &builder, CYExpression *self, bool update);
     void Replace(CYContext &context, CYBuilder &builder, CYExpression *self, bool protect);
 
@@ -1715,6 +1723,8 @@ struct CYPropertyMethod :
     {
     }
 
+    bool Update() const override;
+
     virtual CYFunctionExpression *Constructor();
 
     virtual void Replace(CYContext &context, CYBuilder &builder, CYExpression *self, CYExpression *name, bool protect);