()
| 4056 | } |
| 4057 | |
| 4058 | func (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 | |
| 4079 | func (p *Parser) parseExpressionAllowIn() *ast.Expression { |
| 4080 | return doInContext(p, ast.NodeFlagsDisallowInContext, false, (*Parser).parseExpression) |
no test coverage detected