1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
use crate::Class; use crate::Else; use crate::Expression; use crate::Function; use crate::If; use crate::Property; use serde::Serialize; #[derive(Serialize, Debug, Clone, PartialEq)] pub enum Statement { OpenTag, Break, Continue(Option<Expression>), DocBlock(String), Echo(Expression), Return(Expression), Expression(Expression), Function(Function), Class(Class), Property(Property), If(If), ElseIf(If), Else(Else), While { condition: Expression, body: Vec<Statement>, }, DoWhile { condition: Expression, body: Vec<Statement> }, Foreach { expression: Expression, key_var: Option<Expression>, value_var: Expression, body: Vec<Statement>, }, Use(Expression), UseTrait(Expression), }