MCPcopy Create free account
hub / github.com/microsoft/typescript-go / parseUpdateExpression

Method parseUpdateExpression

internal/parser/parser.go:4722–4739  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

4720}
4721
4722func (p *Parser) parseUpdateExpression() *ast.Expression {
4723 pos := p.nodePos()
4724 if p.token == ast.KindPlusPlusToken || p.token == ast.KindMinusMinusToken {
4725 operator := p.token
4726 p.nextToken()
4727 return p.finishNode(p.factory.NewPrefixUnaryExpression(operator, p.parseLeftHandSideExpressionOrHigher()), pos)
4728 } else if p.languageVariant == core.LanguageVariantJSX && p.token == ast.KindLessThanToken && p.lookAhead((*Parser).nextTokenIsIdentifierOrKeywordOrGreaterThan) {
4729 // JSXElement is part of primaryExpression
4730 return p.parseJsxElementOrSelfClosingElementOrFragment(true /*inExpressionContext*/, -1 /*topInvalidNodePosition*/, nil /*openingTag*/, false /*mustBeUnary*/)
4731 }
4732 expression := p.parseLeftHandSideExpressionOrHigher()
4733 if (p.token == ast.KindPlusPlusToken || p.token == ast.KindMinusMinusToken) && !p.hasPrecedingLineBreak() {
4734 operator := p.token
4735 p.nextToken()
4736 return p.finishNode(p.factory.NewPostfixUnaryExpression(expression, operator), pos)
4737 }
4738 return expression
4739}
4740
4741func (p *Parser) parseJsxElementOrSelfClosingElementOrFragment(inExpressionContext bool, topInvalidNodePosition int, openingTag *ast.Node, mustBeUnary bool) *ast.Expression {
4742 pos := p.nodePos()

Callers 2

Calls 9

nodePosMethod · 0.95
nextTokenMethod · 0.95
finishNodeMethod · 0.95
lookAheadMethod · 0.95
hasPrecedingLineBreakMethod · 0.95

Tested by

no test coverage detected