+struct CYForLexical :
+ CYForInInitializer
+{
+ bool constant_;
+ CYDeclaration *declaration_;
+
+ CYForLexical(bool constant, CYDeclaration *declaration) :
+ constant_(constant),
+ declaration_(declaration)
+ {
+ }
+
+ virtual CYStatement *Initialize(CYContext &context, CYExpression *value);
+
+ virtual CYTarget *Replace(CYContext &context);
+ virtual void Output(CYOutput &out, CYFlags flags) const;
+};
+
+struct CYForVariable :
+ CYForInInitializer
+{
+ CYDeclaration *declaration_;