ShiftExpression ::= AdditiveExpression ( ShiftOperator AdditiveExpression ) RelationalExpression ::= ShiftExpression ( RelationalOperator ShiftExpression ) EqualityExpression ::= RelationalExpression ( EqualityOperator RelationalExpression ) BitwiseANDExpression ::= EqualityExpression ( BitwiseANDOperator EqualityExpression ) BitwiseXORExpression ::= BitwiseANDExpression ( BitwiseXOROperator Bitw
(&mut self)
| 314 | /// AssignmentExpression ::= ( LeftHandSideExpression AssignmentOperator AssignmentExpression |
| 315 | /// | ConditionalExpression ) |
| 316 | fn assignment_expression(&mut self) -> Option<Rc<Node>> { |
| 317 | let expr = self.additive_expression(); |
| 318 | |
| 319 | let t = match self.t.peek() { |
| 320 | Some(token) => token, |
| 321 | None => return expr, |
| 322 | }; |
| 323 | |
| 324 | match t { |
| 325 | Token::Punctuator('=') => { |
| 326 | // consume '=' |
| 327 | assert!(self.t.next().is_some()); |
| 328 | Node::new_assignment_expression('=', expr, self.assignment_expression()) |
| 329 | } |
| 330 | _ => expr, |
| 331 | } |
| 332 | } |
| 333 | |
| 334 | /// Identifier ::= <IDENTIFIER_NAME> |
| 335 | fn identifier(&mut self) -> Option<Rc<Node>> { |
no test coverage detected