;
ClassFieldListOpt
- : Expression Identifier ";" ClassFieldListOpt { $$ = CYNew CYField($1, $2, $4); }
+ : TypedIdentifier ";" ClassFieldListOpt { $$ = CYNew CYField($1, $3); }
| LexSetRegExp { $$ = NULL; }
;
CYVariable *cyn($V("$cyn"));
CYVariable *cyt($V("$cyt"));
- CYExpression *type($C0($M(type_, $S("toString"))));
+ CYExpression *type($C0($M(typed_->Replace(context), $S("toString"))));
return $ CYBlock($$->*
next_->Replace(context)->*
$E($ CYAssign(cyt, type))->*
$E($ CYAssign(cyn, $N1($V("Type"), cyt)))->*
- $E($C5($V("class_addIvar"), $V("$cyc"), $S(name_->Word()), $M(cyn, $S("size")), $M(cyn, $S("alignment")), cyt))
+ $E($C5($V("class_addIvar"), $V("$cyc"), $S(typed_->identifier_->Word()), $M(cyn, $S("size")), $M(cyn, $S("alignment")), cyt))
);
}
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)
{
}