struct CYBoolean :
CYTrivial
{
+ CYPrecedence(4)
+
+ virtual bool RightHand() const {
+ return true;
+ }
+
virtual bool Value() const = 0;
virtual void Output(CYOutput &out, CYFlags flags) const;
};
{
}
- void SetLeft(CYTarget *lhs) {
- lhs_ = lhs;
+ void SetRight(CYExpression *rhs) {
+ rhs_ = rhs;
}
virtual const char *Operator() const = 0;
{
}
+ virtual bool Update() const;
+
CYProperty *ReplaceAll(CYContext &context, CYBuilder &builder, CYExpression *self, bool update);
void Replace(CYContext &context, CYBuilder &builder, CYExpression *self, bool protect);
virtual void Output(CYOutput &out, CYFlags flags) const;
};
+struct CYForInitialized :
+ CYStatement
+{
+ CYDeclaration *declaration_;
+ CYExpression *set_;
+ CYStatement *code_;
+
+ CYForInitialized(CYDeclaration *declaration, CYExpression *set, CYStatement *code) :
+ declaration_(declaration),
+ set_(set),
+ code_(code)
+ {
+ }
+
+ CYCompact(Long)
+
+ virtual CYStatement *Replace(CYContext &context);
+ virtual void Output(CYOutput &out, CYFlags flags) const;
+};
+
struct CYForOf :
CYStatement
{
{
}
+ bool Update() const override;
+
virtual CYFunctionExpression *Constructor();
virtual void Replace(CYContext &context, CYBuilder &builder, CYExpression *self, CYExpression *name, bool protect);