mago_syntax/ast/ast/
unset.rs

1use serde::Deserialize;
2use serde::Serialize;
3
4use mago_span::HasSpan;
5use mago_span::Span;
6
7use crate::ast::ast::expression::Expression;
8use crate::ast::ast::keyword::Keyword;
9use crate::ast::ast::terminator::Terminator;
10use crate::ast::sequence::TokenSeparatedSequence;
11
12#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Deserialize, PartialOrd, Ord)]
13#[repr(C)]
14pub struct Unset {
15    pub unset: Keyword,
16    pub left_parenthesis: Span,
17    pub values: TokenSeparatedSequence<Expression>,
18    pub right_parenthesis: Span,
19    pub terminator: Terminator,
20}
21
22impl HasSpan for Unset {
23    fn span(&self) -> Span {
24        self.unset.span().join(self.terminator.span())
25    }
26}