mago_syntax/ast/ast/loop/
do_while.rs1use serde::Serialize;
2
3use mago_span::HasSpan;
4use mago_span::Span;
5
6use crate::ast::ast::expression::Expression;
7use crate::ast::ast::keyword::Keyword;
8use crate::ast::ast::statement::Statement;
9use crate::ast::ast::terminator::Terminator;
10
11#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, PartialOrd, Ord)]
25pub struct DoWhile<'arena> {
26 pub r#do: Keyword<'arena>,
27 pub statement: &'arena Statement<'arena>,
28 pub r#while: Keyword<'arena>,
29 pub left_parenthesis: Span,
30 pub condition: &'arena Expression<'arena>,
31 pub right_parenthesis: Span,
32 pub terminator: Terminator<'arena>,
33}
34
35impl HasSpan for DoWhile<'_> {
36 fn span(&self) -> Span {
37 Span::between(self.r#do.span(), self.terminator.span())
38 }
39}