Changeset 5314 in webkit for trunk/JavaScriptCore/kjs/grammar.y
- Timestamp:
- Oct 30, 2003, 10:42:38 AM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/grammar.y
r4739 r5314 168 168 | FALSETOKEN { $$ = new BooleanNode(false); } 169 169 | NUMBER { $$ = new NumberNode($1); } 170 | STRING { $$ = new StringNode($1); delete $1;}170 | STRING { $$ = new StringNode($1); } 171 171 | '/' /* a RegExp ? */ { Lexer *l = Lexer::curr(); 172 172 if (!l->scanRegExp()) YYABORT; … … 180 180 PrimaryExpr: 181 181 THIS { $$ = new ThisNode(); } 182 | IDENT { $$ = new ResolveNode(*$1); 183 delete $1; } 182 | IDENT { $$ = new ResolveNode(*$1); } 184 183 | Literal 185 184 | ArrayLiteral … … 218 217 219 218 PropertyName: 220 IDENT { $$ = new PropertyNode(*$1); delete $1;}221 | STRING { $$ = new PropertyNode(Identifier(*$1)); delete $1;}219 IDENT { $$ = new PropertyNode(*$1); } 220 | STRING { $$ = new PropertyNode(Identifier(*$1)); } 222 221 | NUMBER { $$ = new PropertyNode($1); } 223 222 ; … … 227 226 | FunctionExpr 228 227 | MemberExpr '[' Expr ']' { $$ = new AccessorNode1($1, $3); } 229 | MemberExpr '.' IDENT { $$ = new AccessorNode2($1, *$3); delete $3;}228 | MemberExpr '.' IDENT { $$ = new AccessorNode2($1, *$3); } 230 229 | NEW MemberExpr Arguments { $$ = new NewExprNode($2, $3); } 231 230 ; … … 240 239 | CallExpr Arguments { $$ = new FunctionCallNode($1, $2); } 241 240 | CallExpr '[' Expr ']' { $$ = new AccessorNode1($1, $3); } 242 | CallExpr '.' IDENT { $$ = new AccessorNode2($1, *$3); 243 delete $3; } 241 | CallExpr '.' IDENT { $$ = new AccessorNode2($1, *$3); } 244 242 ; 245 243 … … 429 427 430 428 VariableDeclaration: 431 IDENT { $$ = new VarDeclNode(*$1, 0); delete $1;}432 | IDENT Initializer { $$ = new VarDeclNode(*$1, $2); delete $1;}429 IDENT { $$ = new VarDeclNode(*$1, 0); } 430 | IDENT Initializer { $$ = new VarDeclNode(*$1, $2); } 433 431 ; 434 432 … … 471 469 | FOR '(' VAR IDENT IN Expr ')' 472 470 Statement { $$ = new ForInNode(*$4,0L,$6,$8); 473 DBG($$,@1,@7); 474 delete $4; } 471 DBG($$,@1,@7); } 475 472 | FOR '(' VAR IDENT Initializer IN Expr ')' 476 473 Statement { $$ = new ForInNode(*$4,$5,$7,$9); 477 DBG($$,@1,@8); 478 delete $4; } 474 DBG($$,@1,@8); } 479 475 ; 480 476 … … 490 486 } else 491 487 YYABORT; } 492 | CONTINUE IDENT ';' { $$ = new ContinueNode(*$2); DBG($$,@1,@3); 493 delete $2; } 488 | CONTINUE IDENT ';' { $$ = new ContinueNode(*$2); DBG($$,@1,@3); } 494 489 | CONTINUE IDENT error { if (automatic()) { 495 490 $$ = new ContinueNode(*$2);DBG($$,@1,@2); 496 delete $2;497 491 } else 498 492 YYABORT; } … … 505 499 } else 506 500 YYABORT; } 507 | BREAK IDENT ';' { $$ = new BreakNode(*$2); DBG($$,@1,@3); 508 delete $2; } 501 | BREAK IDENT ';' { $$ = new BreakNode(*$2); DBG($$,@1,@3); } 509 502 | BREAK IDENT error { if (automatic()) { 510 503 $$ = new BreakNode(*$2); DBG($$,@1,@2); 511 delete $2;512 504 } else 513 505 YYABORT; … … 566 558 LabelledStatement: 567 559 IDENT ':' Statement { $3->pushLabel(*$1); 568 $$ = new LabelNode(*$1, $3); 569 delete $1; } 560 $$ = new LabelNode(*$1, $3); } 570 561 ; 571 562 … … 581 572 582 573 Catch: 583 CATCH '(' IDENT ')' Block { $$ = new CatchNode(*$3, $5); delete $3;}574 CATCH '(' IDENT ')' Block { $$ = new CatchNode(*$3, $5); } 584 575 ; 585 576 … … 589 580 590 581 FunctionDeclaration: 591 FUNCTION IDENT '(' ')' FunctionBody { $$ = new FuncDeclNode(*$2, 0L, $5); 592 delete $2; } 582 FUNCTION IDENT '(' ')' FunctionBody { $$ = new FuncDeclNode(*$2, 0L, $5); } 593 583 | FUNCTION IDENT '(' FormalParameterList ')' FunctionBody 594 { $$ = new FuncDeclNode(*$2, $4, $6); 595 delete $2; } 584 { $$ = new FuncDeclNode(*$2, $4, $6); } 596 585 597 586 FunctionExpr: … … 603 592 604 593 FormalParameterList: 605 IDENT { $$ = new ParameterNode(*$1); delete $1;}606 | FormalParameterList ',' IDENT { $$ = new ParameterNode($1, *$3); delete $3;}594 IDENT { $$ = new ParameterNode(*$1); } 595 | FormalParameterList ',' IDENT { $$ = new ParameterNode($1, *$3); } 607 596 ; 608 597 … … 633 622 %% 634 623 635 int yyerror (const char * ) /* Called by yyparse on error */624 int yyerror (const char * /* s */) /* Called by yyparse on error */ 636 625 { 637 //fprintf(stderr, "ERROR: %s at line %d\n",638 // s, KJScript::lexer()->lineNo());626 // fprintf(stderr, "ERROR: %s at line %d\n", 627 // s, KJS::Lexer::curr()->lineNo()); 639 628 return 1; 640 629 }
Note:
See TracChangeset
for help on using the changeset viewer.