mxmlextrema_as3parser/tree/
optional_chaining_expression.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use crate::ns::*;
use serde::{Serialize, Deserialize};

/// An expression followed by optional chaining operations.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OptionalChainingExpression {
    pub location: Location,
    pub base: Rc<Expression>,
    /// Optional chaining operations.
    /// 
    /// An `OptionalChainingPlaceholder` node is is the topmost expression
    /// in the `expression` field.
    pub expression: Rc<Expression>,
}

/// Internal expression used as the topmost expression
/// of a sequence of optional chaining operations.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OptionalChainingPlaceholder {
    pub location: Location,
}