- statements_(statements)
- {
- }
-
- virtual void Output(std::ostream &out) const;
-};
-
-struct CYField :
- CYNext<CYField>
-{
- virtual void Output(std::ostream &out) const;
-};
-
-struct CYMessageParameter :
- CYNext<CYMessageParameter>
-{
- CYWord *tag_;
- CYExpression *type_;
- CYIdentifier *name_;
-
- CYMessageParameter(CYWord *tag, CYExpression *type, CYIdentifier *name) :
- tag_(tag),
- type_(type),
- name_(name)
- {
- }
-};
-
-struct CYMessage :
- CYNext<CYMessage>
-{
- bool instance_;
- CYExpression *type_;
- CYMessageParameter *parameter_;
- CYSource *body_;
-
- CYMessage(bool instance, CYExpression *type, CYMessageParameter *parameter, CYSource *body) :
- instance_(instance),
- type_(type),
- parameter_(parameter),
- body_(body)
- {
- }
-
- virtual void Output(std::ostream &out, bool replace) const;
-};
-
-struct CYClass :
- CYExpression,
- CYStatement
-{
- CYClassName *name_;
- CYExpression *super_;
- CYField *fields_;
- CYMessage *messages_;
-
- CYClass(CYClassName *name, CYExpression *super, CYField *fields, CYMessage *messages) :
- name_(name),
- super_(super),
- fields_(fields),
- messages_(messages)
- {
- }
-
- CYPrecedence(0)
-
- virtual void Output(std::ostream &out) const;
- virtual void Output(std::ostream &out, CYFlags flags) const;
-};
-
-struct CYCategory :
- CYStatement
-{
- CYClassName *name_;
- CYMessage *messages_;
-
- CYCategory(CYClassName *name, CYMessage *messages) :
- name_(name),
- messages_(messages)
- {
- }
-
- virtual void Output(std::ostream &out) const;
-};
-
-struct CYFunctionParameter :
- CYNext<CYFunctionParameter>,
- CYThing
-{
- CYIdentifier *name_;
-
- CYFunctionParameter(CYIdentifier *name, CYFunctionParameter *next) :
- CYNext<CYFunctionParameter>(next),
- name_(name)