MCPcopy Index your code
hub / github.com/microsoft/typescript-go / parseExpression

Method parseExpression

internal/parser/parser.go:4058–4077  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

4056}
4057
4058func (p *Parser) parseExpression() *ast.Expression {
4059 // Expression[in]:
4060 // AssignmentExpression[in]
4061 // Expression[in] , AssignmentExpression[in]
4062
4063 // clear the decorator context when parsing Expression, as it should be unambiguous when parsing a decorator
4064 saveContextFlags := p.contextFlags
4065 p.contextFlags &^= ast.NodeFlagsDecoratorContext
4066 pos := p.nodePos()
4067 expr := p.parseAssignmentExpressionOrHigher()
4068 for {
4069 operatorToken := p.parseOptionalToken(ast.KindCommaToken)
4070 if operatorToken == nil {
4071 break
4072 }
4073 expr = p.makeBinaryExpression(expr, operatorToken, p.parseAssignmentExpressionOrHigher(), pos)
4074 }
4075 p.contextFlags = saveContextFlags
4076 return expr
4077}
4078
4079func (p *Parser) parseExpressionAllowIn() *ast.Expression {
4080 return doInContext(p, ast.NodeFlagsDisallowInContext, false, (*Parser).parseExpression)

Calls 4

nodePosMethod · 0.95
parseOptionalTokenMethod · 0.95
makeBinaryExpressionMethod · 0.95

Tested by

no test coverage detected