()
| 35641 | return !isStartOfExpression(); |
| 35642 | } |
| 35643 | function parsePrimaryExpression() { |
| 35644 | switch (token()) { |
| 35645 | case 8 /* SyntaxKind.NumericLiteral */: |
| 35646 | case 9 /* SyntaxKind.BigIntLiteral */: |
| 35647 | case 10 /* SyntaxKind.StringLiteral */: |
| 35648 | case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */: |
| 35649 | return parseLiteralNode(); |
| 35650 | case 108 /* SyntaxKind.ThisKeyword */: |
| 35651 | case 106 /* SyntaxKind.SuperKeyword */: |
| 35652 | case 104 /* SyntaxKind.NullKeyword */: |
| 35653 | case 110 /* SyntaxKind.TrueKeyword */: |
| 35654 | case 95 /* SyntaxKind.FalseKeyword */: |
| 35655 | return parseTokenNode(); |
| 35656 | case 20 /* SyntaxKind.OpenParenToken */: |
| 35657 | return parseParenthesizedExpression(); |
| 35658 | case 22 /* SyntaxKind.OpenBracketToken */: |
| 35659 | return parseArrayLiteralExpression(); |
| 35660 | case 18 /* SyntaxKind.OpenBraceToken */: |
| 35661 | return parseObjectLiteralExpression(); |
| 35662 | case 131 /* SyntaxKind.AsyncKeyword */: |
| 35663 | // Async arrow functions are parsed earlier in parseAssignmentExpressionOrHigher. |
| 35664 | // If we encounter `async [no LineTerminator here] function` then this is an async |
| 35665 | // function; otherwise, its an identifier. |
| 35666 | if (!lookAhead(nextTokenIsFunctionKeywordOnSameLine)) { |
| 35667 | break; |
| 35668 | } |
| 35669 | return parseFunctionExpression(); |
| 35670 | case 84 /* SyntaxKind.ClassKeyword */: |
| 35671 | return parseClassExpression(); |
| 35672 | case 98 /* SyntaxKind.FunctionKeyword */: |
| 35673 | return parseFunctionExpression(); |
| 35674 | case 103 /* SyntaxKind.NewKeyword */: |
| 35675 | return parseNewExpressionOrNewDotTarget(); |
| 35676 | case 43 /* SyntaxKind.SlashToken */: |
| 35677 | case 68 /* SyntaxKind.SlashEqualsToken */: |
| 35678 | if (reScanSlashToken() === 13 /* SyntaxKind.RegularExpressionLiteral */) { |
| 35679 | return parseLiteralNode(); |
| 35680 | } |
| 35681 | break; |
| 35682 | case 15 /* SyntaxKind.TemplateHead */: |
| 35683 | return parseTemplateExpression(/* isTaggedTemplate */ false); |
| 35684 | case 80 /* SyntaxKind.PrivateIdentifier */: |
| 35685 | return parsePrivateIdentifier(); |
| 35686 | } |
| 35687 | return parseIdentifier(ts.Diagnostics.Expression_expected); |
| 35688 | } |
| 35689 | function parseParenthesizedExpression() { |
| 35690 | var pos = getNodePos(); |
| 35691 | var hasJSDoc = hasPrecedingJSDocComment(); |
no test coverage detected