MCPcopy Create free account
hub / github.com/dop251/goja / parseExponentiationExpression

Method parseExponentiationExpression

parser/expression.go:891–916  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

889}
890
891func (self *_parser) parseExponentiationExpression() ast.Expression {
892 parenthesis := self.token == token.LEFT_PARENTHESIS
893
894 left := self.parseUnaryExpression()
895
896 if self.token == token.EXPONENT {
897 if !parenthesis {
898 if u, isUnary := left.(*ast.UnaryExpression); isUnary && u.Operator != token.INCREMENT && u.Operator != token.DECREMENT {
899 self.error(self.idx, "Unary operator used immediately before exponentiation expression. Parenthesis must be used to disambiguate operator precedence")
900 }
901 }
902 for {
903 self.next()
904 left = &ast.BinaryExpression{
905 Operator: token.EXPONENT,
906 Left: left,
907 Right: self.parseExponentiationExpression(),
908 }
909 if self.token != token.EXPONENT {
910 break
911 }
912 }
913 }
914
915 return left
916}
917
918func (self *_parser) parseMultiplicativeExpression() ast.Expression {
919 left := self.parseExponentiationExpression()

Callers 1

Calls 3

parseUnaryExpressionMethod · 0.95
errorMethod · 0.95
nextMethod · 0.95

Tested by

no test coverage detected