jetcrab\parser\expressions/
assignment.rs1use crate::ast::{AssignmentExpression, Node};
2use crate::parser::error::ParseResult;
3use crate::parser::Parser;
4
5impl Parser {
6 pub fn parse_assignment_expression(&mut self) -> ParseResult<Node> {
7 let mut left = self.parse_logical_or_expression()?;
8
9 if self.is_assignment_operator() {
10 let operator = self.current_token_string();
11 self.advance();
12 let right = Box::new(self.parse_assignment_expression()?);
13
14 let span = self.create_span_from_tokens();
15 left = Node::AssignmentExpression(AssignmentExpression {
16 left: Box::new(left),
17 operator,
18 right,
19 span: Some(span),
20 });
21 }
22
23 Ok(left)
24 }
25}