(left ast.Expression)
| 643 | } |
| 644 | |
| 645 | func (self *_parser) parseDotMember(left ast.Expression) ast.Expression { |
| 646 | period := self.idx |
| 647 | self.next() |
| 648 | |
| 649 | literal := self.parsedLiteral |
| 650 | idx := self.idx |
| 651 | |
| 652 | if self.token == token.PRIVATE_IDENTIFIER { |
| 653 | self.next() |
| 654 | return &ast.PrivateDotExpression{ |
| 655 | Left: left, |
| 656 | Identifier: ast.PrivateIdentifier{ |
| 657 | Identifier: ast.Identifier{ |
| 658 | Idx: idx, |
| 659 | Name: literal, |
| 660 | }, |
| 661 | }, |
| 662 | } |
| 663 | } |
| 664 | |
| 665 | if !token.IsId(self.token) { |
| 666 | self.expect(token.IDENTIFIER) |
| 667 | self.nextStatement() |
| 668 | return &ast.BadExpression{From: period, To: self.idx} |
| 669 | } |
| 670 | |
| 671 | self.next() |
| 672 | |
| 673 | return &ast.DotExpression{ |
| 674 | Left: left, |
| 675 | Identifier: ast.Identifier{ |
| 676 | Idx: idx, |
| 677 | Name: literal, |
| 678 | }, |
| 679 | } |
| 680 | } |
| 681 | |
| 682 | func (self *_parser) parseBracketMember(left ast.Expression) ast.Expression { |
| 683 | idx0 := self.expect(token.LEFT_BRACKET) |
no test coverage detected