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