#include "Parser.hpp"
-struct CYObjCBlock :
+struct CYInstanceLiteral :
CYExpression
{
- CYTypeModifier *type_;
- CYTypedParameter *parameters_;
- CYStatement *statements_;
+ CYNumber *number_;
- CYObjCBlock(CYTypeModifier *type, CYTypedParameter *parameters, CYStatement *statements) :
- type_(type),
- parameters_(parameters),
- statements_(statements)
+ CYInstanceLiteral(CYNumber *number) :
+ number_(number)
{
}
virtual void Output(CYOutput &out, CYFlags flags) const;
};
-struct CYEncodedType :
+struct CYObjCBlock :
CYExpression
{
- CYTypeModifier *type_;
+ CYTypedIdentifier *typed_;
+ CYTypedParameter *parameters_;
+ CYStatement *statements_;
- CYEncodedType(CYTypeModifier *type) :
- type_(type)
+ CYObjCBlock(CYTypedIdentifier *typed, CYTypedParameter *parameters, CYStatement *statements) :
+ typed_(typed),
+ parameters_(parameters),
+ statements_(statements)
{
}
struct CYField :
CYNext<CYField>
{
- CYExpression *type_;
- CYIdentifier *name_;
+ CYTypedIdentifier *typed_;
- CYField(CYExpression *type, CYIdentifier *name, CYField *next = NULL) :
+ CYField(CYTypedIdentifier *typed, CYField *next = NULL) :
CYNext<CYField>(next),
- type_(type),
- name_(name)
+ typed_(typed)
{
}
void Output(CYOutput &out) const;
};
+struct CYModule :
+ CYNext<CYModule>,
+ CYThing
+{
+ CYWord *part_;
+
+ CYModule(CYWord *part, CYModule *next = NULL) :
+ CYNext<CYModule>(next),
+ part_(part)
+ {
+ }
+
+ CYString *Replace(CYContext &context, const char *separator) const;
+ void Output(CYOutput &out) const;
+};
+
struct CYImport :
CYStatement
{
+ CYModule *module_;
+
+ CYImport(CYModule *module) :
+ module_(module)
+ {
+ }
+
virtual CYStatement *Replace(CYContext &context);
virtual void Output(CYOutput &out, CYFlags flags) const;
};