CYBoolean *boolean_;
CYClause *clause_;
CYCatch *catch_;
- CYClass *class_;
CYClassName *className_;
CYComprehension *comprehension_;
CYCompound *compound_;
%type <clause_> CaseClausesOpt
%type <catch_> CatchOpt
%type <statement_> CategoryStatement
-%type <class_> ClassDefinition
+%type <expression_> ClassExpression
%type <message_> ClassMessageDeclaration
%type <message_> ClassMessageDeclarationListOpt
%type <className_> ClassName
%type <className_> ClassNameOpt
+%type <statement_> ClassStatement
%type <expression_> ClassSuperOpt
%type <field_> ClassFieldList
%type <comprehension_> ComprehensionList
/* 13 Function Definition {{{ */
FunctionDeclaration
- : "function" Identifier "(" FormalParameterList ")" "{" FunctionBody "}" { $$ = new(driver.pool_) CYFunction($2, $4, $7); }
+ : "function" Identifier "(" FormalParameterList ")" "{" FunctionBody "}" { $$ = new(driver.pool_) CYFunctionStatement($2, $4, $7); }
;
FunctionExpression
- : "function" IdentifierOpt "(" FormalParameterList ")" "{" FunctionBody "}" { $$ = new(driver.pool_) CYLambda($2, $4, $7); }
+ : "function" IdentifierOpt "(" FormalParameterList ")" "{" FunctionBody "}" { $$ = new(driver.pool_) CYFunctionExpression($2, $4, $7); }
;
FormalParameterList_
| { $$ = NULL; }
;
-ClassDefinition
- : "@class" ClassNameOpt ClassSuperOpt ClassFieldList ClassMessageDeclarationListOpt "@end" { $$ = new(driver.pool_) CYClass($2, $3, $4, $5); }
+ClassExpression
+ : "@class" ClassNameOpt ClassSuperOpt ClassFieldList ClassMessageDeclarationListOpt "@end" { $$ = new(driver.pool_) CYClassExpression($2, $3, $4, $5); }
+ ;
+
+ClassStatement
+ : "@class" ClassName ClassSuperOpt ClassFieldList ClassMessageDeclarationListOpt "@end" { $$ = new(driver.pool_) CYClassStatement($2, $3, $4, $5); }
;
CategoryStatement
;
PrimaryExpression
- : ClassDefinition { $$ = $1; }
+ : ClassExpression { $$ = $1; }
;
Statement_
- : ClassDefinition { $$ = $1; }
+ : ClassStatement { $$ = $1; }
| CategoryStatement { $$ = $1; }
;
/* }}} */