(idx file.Idx, initializer ast.ForLoopInitializer)
| 629 | } |
| 630 | |
| 631 | func (self *_parser) parseFor(idx file.Idx, initializer ast.ForLoopInitializer) *ast.ForStatement { |
| 632 | |
| 633 | // Already have consumed "<initializer> ;" |
| 634 | |
| 635 | var test, update ast.Expression |
| 636 | |
| 637 | if self.token != token.SEMICOLON { |
| 638 | test = self.parseExpression() |
| 639 | } |
| 640 | self.expect(token.SEMICOLON) |
| 641 | |
| 642 | if self.token != token.RIGHT_PARENTHESIS { |
| 643 | update = self.parseExpression() |
| 644 | } |
| 645 | self.expect(token.RIGHT_PARENTHESIS) |
| 646 | |
| 647 | return &ast.ForStatement{ |
| 648 | For: idx, |
| 649 | Initializer: initializer, |
| 650 | Test: test, |
| 651 | Update: update, |
| 652 | Body: self.parseIterationStatement(), |
| 653 | } |
| 654 | } |
| 655 | |
| 656 | func (self *_parser) parseForOrForInStatement() ast.Statement { |
| 657 | idx := self.expect(token.FOR) |
no test coverage detected